diff --git a/index.ts b/index.ts index e64ab57..8c7cd49 100644 --- a/index.ts +++ b/index.ts @@ -5,6 +5,9 @@ * SPDX-License-Identifier: Apache-2.0 */ +import "@elastic/opentelemetry-node"; +import "./telemetry.js"; + import { z } from "zod"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { diff --git a/package.json b/package.json index d7268fd..c3d7095 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "README.md" ], "scripts": { - "build": "tsc && shx chmod +x dist/*.js", + "build": "tsc && shx chmod +x dist/index.js", "prepare": "npm run build", "watch": "tsc --watch", "start": "node dist/index.js", @@ -38,7 +38,9 @@ "generate-notice": "node ./scripts/generate-notice.js" }, "dependencies": { + "@arizeai/openinference-instrumentation-mcp": "^0.2.0", "@elastic/elasticsearch": "^9.0.0", + "@elastic/opentelemetry-node": "^1.0.0", "@modelcontextprotocol/sdk": "1.12.1" }, "engines": { diff --git a/telemetry.ts b/telemetry.ts new file mode 100644 index 0000000..af7300d --- /dev/null +++ b/telemetry.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { MCPInstrumentation } from "@arizeai/openinference-instrumentation-mcp"; +import * as MCPServerStdioModule from "@modelcontextprotocol/sdk/server/stdio.js"; + +const mcpInstrumentation = new MCPInstrumentation(); +mcpInstrumentation.manuallyInstrument({ + serverStdioModule: MCPServerStdioModule, +});