{"_id":"@askturret/mcp-observability","_rev":"4-9abb95a7a05beb2d3c9ef5397dbed973","name":"@askturret/mcp-observability","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@askturret/mcp-observability","version":"0.1.0","license":"Apache-2.0","_id":"@askturret/mcp-observability@0.1.0","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"cfd90bb6c534ff6335746ec4de8c7d8fdfb50e4d","tarball":"https://registry.npmjs.org/@askturret/mcp-observability/-/mcp-observability-0.1.0.tgz","fileCount":21,"integrity":"sha512-U8Up+M9ylBXZkMB+KUMFZJXrkwXSK22s+yDdTC7adF1OIGPqsQc537+ybA3TNqbaQheNCyvPArkIaC3z5TPo/g==","signatures":[{"sig":"MEUCIQCj7Os2Sx2HtK0lc+vbD+TGsmbSWOJRm/ATT+Q2PZXM6AIgWIESQL4bpeR2LjTZDA+ooZjkWztfjq9JjjxyohGlmig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37124},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c54b62a19421ed3bc620807cfc871e2c94b76576","scripts":{"lint":"echo \"Linting not yet configured\"","test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"_npmVersion":"11.8.0","description":"Telemetry and audit hooks - OpenTelemetry integration","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@askturret/mcp-core":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-observability_0.1.0_1788200418416_0.9255700789022248","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@askturret/mcp-observability","version":"0.1.1","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-observability@0.1.1","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"c7ab703fd6dff19c48eec32f5ce64a304d01113f","tarball":"https://registry.npmjs.org/@askturret/mcp-observability/-/mcp-observability-0.1.1.tgz","fileCount":24,"integrity":"sha512-OYda7Aprm4IMs7OnyB1Kfcb2DxaNKvCMsYb3ijUjpy5P0P3Y/ajbt3OLZbrdY4ljJKMS0AK/K8yng/YHq6uHhA==","signatures":[{"sig":"MEYCIQDHfOjv30HX/45zILsxautoYhxZBDXJoZ4Y1INp/DXhRAIhAMEH+v+5PhDydEIPZ0AS8iyxrNvnAGghG6OGV0n5fdtN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58920},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"69d35f79c070c6322357902e786a527261463d3f","scripts":{"lint":"echo \"Linting not yet configured\"","test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"_npmVersion":"11.8.0","description":"Telemetry and audit hooks - OpenTelemetry integration","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@askturret/mcp-core":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-observability_0.1.1_1788458648959_0.9655901749561417","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@askturret/mcp-observability","version":"0.1.2","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-observability@0.1.2","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"homepage":"https://github.com/askturret/mcp#readme","bugs":{"url":"https://github.com/askturret/mcp/issues"},"dist":{"shasum":"5d6c1f6fc129ff031055527b4b3ab98dc1c45f08","tarball":"https://registry.npmjs.org/@askturret/mcp-observability/-/mcp-observability-0.1.2.tgz","fileCount":24,"integrity":"sha512-2tXxUifvYvp1r9VZBadH9TLIwRY18HTR+sZBI++y1jZpRyMvhP58hAQJOkUD0vs8jPCOOwnmedXP5m9sSG1ahA==","signatures":[{"sig":"MEUCIEDBZa9cgxUeTEl/0SMcUBf89HL0VU5FGbUJTFsFK9ntAiEA5UgN4WwrVDUs1EtgGAlHl9jn3qe+sV7quTEwUch/Df4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-observability@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59206},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ec334b34d1a55df0d4f8c2d5f69c7e80679476e5","scripts":{"lint":"echo \"Linting not yet configured\"","test":"NODE_OPTIONS=--experimental-vm-modules jest","build":"tsc"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"repository":{"url":"git+https://github.com/askturret/mcp.git","type":"git","directory":"packages/observability"},"_npmVersion":"10.8.2","description":"Telemetry and audit hooks - OpenTelemetry integration","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@askturret/mcp-core":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-observability_0.1.2_1788607230344_0.10847573488224227","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@askturret/mcp-observability","version":"0.2.0","description":"Telemetry and audit hooks - OpenTelemetry integration","type":"module","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/askturret/mcp.git","directory":"packages/observability"},"homepage":"https://github.com/askturret/mcp#readme","bugs":{"url":"https://github.com/askturret/mcp/issues"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsc","test":"NODE_OPTIONS=--experimental-vm-modules jest","lint":"echo \"Linting not yet configured\""},"dependencies":{"@askturret/mcp-core":"^0.2.0"},"devDependencies":{"@jest/globals":"^29.7.0","@types/jest":"^29.5.0","jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*"},"keywords":["askturret","mcp","server","client"],"_id":"@askturret/mcp-observability@0.2.0","gitHead":"01db00fa88fb96dac636f82fc70bd248e834c9c7","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CoiLCKyIWjLAoknEyTkCq4HXGJvfqK2+erXdmlK/8Ng+RAuKg0oQYz0p3nqIdzfRXBORIJc9kcsEDrlDLDbu7A==","shasum":"2f3cfd0c6919045abe88e3671803a5c6fab9a817","tarball":"https://registry.npmjs.org/@askturret/mcp-observability/-/mcp-observability-0.2.0.tgz","fileCount":24,"unpackedSize":59869,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-observability@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuH6x6oFfne2Ich8y5bYq0ThNykN1Y5wVBpagcnhSSmwIhAMiuuP38eX3EPR6/Kd7TOUh6Wrc2woaMLSIVD3N98iBT"}]},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"directories":{},"maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-observability_0.2.0_1789133931293_0.919198834209753"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-31T18:20:18.204Z","modified":"2026-09-11T13:38:51.753Z","0.1.0":"2026-08-31T18:20:18.569Z","0.1.1":"2026-09-03T18:04:09.101Z","0.1.2":"2026-09-05T11:20:30.494Z","0.2.0":"2026-09-11T13:38:51.425Z"},"bugs":{"url":"https://github.com/askturret/mcp/issues"},"license":"Apache-2.0","homepage":"https://github.com/askturret/mcp#readme","keywords":["askturret","mcp","server","client"],"repository":{"type":"git","url":"git+https://github.com/askturret/mcp.git","directory":"packages/observability"},"description":"Telemetry and audit hooks - OpenTelemetry integration","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"readme":"# @askturret/mcp-observability\n\nBinds AskTurret's telemetry ports to OpenTelemetry, so every MCP call produces\nspans and metrics in whatever backend you already run.\n\nThe runtime defines *what* is worth recording; this package decides *where* it\ngoes. Nothing in `@askturret/mcp-core` depends on the OpenTelemetry SDK, which\nis why adding observability changes what you can see without changing what\nexecutes.\n\n## Turning it on\n\n```bash\nnpm install @askturret/mcp-observability\n```\n\n```js\nimport { openTelemetry } from '@askturret/mcp-observability';\n\nconst server = createMcpServer({\n  sources: [...],\n  observability: openTelemetry({ tracerProvider: myTracerProvider }),\n});\n```\n\nCalled with **no configuration, `openTelemetry()` returns an inert\n`Observability`** rather than throwing. That is deliberate: no exporter is the\ndocumented default, and a default that throws is not a default. You can wire the\ncall site first and supply a provider later.\n\n## Also exported\n\n- **`otelExporterPlugin`** — the exporter as a runtime plugin, when you would\n  rather configure telemetry through the plugin system than at construction.\n- **`createSpanBuffer`** and **`recordingTracer`** — an in-memory tracer and a\n  bounded buffer. Useful in tests and for the Explorer's diagnostic panels,\n  where you want to assert on the span tree without standing up a collector.\n\n## Requirements\n\nNode 20+. Bring your own `TracerProvider` and `MeterProvider` — this package\ndoes not configure the OpenTelemetry SDK, choose an exporter, or start a\ncollector for you. That stays your deployment's decision.\n\n## What it does not do\n\nIt does not define the span tree or the metric set: those are the telemetry\n*ports* in `@askturret/mcp-core`, and this package implements them. If a span\nyou expect is missing, the question is usually whether the runtime emits it, not\nwhether this package exported it.\n\nIt is also not an audit log. Policy decisions and redaction are core's, and they\nhappen whether or not any exporter is attached.\n\n---\n\nFull documentation is in the [main README](https://github.com/askturret/mcp#readme).\n","readmeFilename":"README.md"}