Skip to content

Commit f25aa02

Browse files
PaulJPhilpclaude
andcommitted
feat(mcp-transport): add Effect.fn + OTEL instrumentation
Convert MCP transport from plain async/await to Effect services with automatic OTEL span creation. Extract duplicated callApi logic (~200 lines) from both entry points into shared api-fetch.ts module. New services: MCPTracingService, MCPLoggerService, MCPCacheService, MCPApiService (with Effect.withSpan), otel-init (NodeSDK), layers. Each tool handler gets an Effect.fn export (searchPatternsEffect, etc.) alongside the existing async wrapper for backward compatibility. All 231 existing tests pass unchanged; 11 new service tests added. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent dac0026 commit f25aa02

19 files changed

Lines changed: 1194 additions & 599 deletions

bun.lock

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/mcp-transport/package.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@
3333
"typecheck": "tsc --noEmit"
3434
},
3535
"dependencies": {
36+
"@effect/opentelemetry": "^0.61.0",
3637
"@modelcontextprotocol/sdk": "^1.25.2",
38+
"@opentelemetry/api": "^1.9.0",
39+
"@opentelemetry/exporter-trace-otlp-http": "^0.212.0",
40+
"@opentelemetry/resources": "^2.2.0",
41+
"@opentelemetry/sdk-node": "^0.212.0",
42+
"@opentelemetry/sdk-trace-base": "^2.0.0",
43+
"@opentelemetry/sdk-trace-node": "^2.2.0",
44+
"@opentelemetry/semantic-conventions": "^1.38.0",
45+
"effect": "3.19.19",
3746
"zod": "^4.3.6"
3847
},
3948
"devDependencies": {

0 commit comments

Comments
 (0)