{"_id":"@askturret/mcp-core","_rev":"4-74712dc9a95efc2628a1d8ed64fe4838","name":"@askturret/mcp-core","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@askturret/mcp-core","version":"0.1.0","license":"Apache-2.0","_id":"@askturret/mcp-core@0.1.0","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"f8be232d5a7c0a5a0120cf43e1bed8bd4ef038b9","tarball":"https://registry.npmjs.org/@askturret/mcp-core/-/mcp-core-0.1.0.tgz","fileCount":445,"integrity":"sha512-sDIvmnIw8opO77usCsXlk/9nKSd6eYY/Y4vxMQyor6oAeh/OWFlsdP0G91Ay5+GRyPu2FLPxeR1XP1hS3ICDmQ==","signatures":[{"sig":"MEQCIGT665weHCdz598uR/Th0bLKMzA+m2G0brFZFrK7c6YVAiA6+x0E8GQu2D5FkHFdscRDeVnhQhb+4nrPFTZPvQqirg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228496},"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","test:watch":"npm test -- --watch"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"_npmVersion":"11.8.0","description":"Core runtime - canonical model, compiler, registry, policies, execution","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.1.0_1788200229423_0.1389150354102282","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@askturret/mcp-core","version":"0.1.1","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-core@0.1.1","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"ed377ab793635f6347f836c5dab50a9788a4cd7f","tarball":"https://registry.npmjs.org/@askturret/mcp-core/-/mcp-core-0.1.1.tgz","fileCount":448,"integrity":"sha512-3EGyMEqGF/KjogUD8I8JsJHBvtgaIwnTkj7gHABUe3dZKIUmqStCMPA9GDuhfVdi5YBFcjVujerGM5CB3N+U5g==","signatures":[{"sig":"MEYCIQC9/IaIbWyWNNY4mB69H+rurUvwQxtIfwVEp4I2DqYqawIhALlEHwSFV2by3zStgi9KdKCygx1M26RFZ6RyhKswyUd3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1250283},"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","test:watch":"npm test -- --watch"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"_npmVersion":"11.8.0","description":"Core runtime - canonical model, compiler, registry, policies, execution","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.1.1_1788458641383_0.9700612711252083","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@askturret/mcp-core","version":"0.1.2","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-core@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":"9fde4dc304cfd8da9af371e67b9a6920ccb80926","tarball":"https://registry.npmjs.org/@askturret/mcp-core/-/mcp-core-0.1.2.tgz","fileCount":448,"integrity":"sha512-vpGcrQpdjoOHMRhLxSc+JlDBAnE59iqHLLWAMCezkAtEfVTESp9zl4V/x3WU+zcTqx6Mb+EzHsf4+tefsNiDyA==","signatures":[{"sig":"MEYCIQDzj9Jj7/6Y0K3DdRlkrB1IXl78sf+AUv88Rpwn1UJdHwIhANqo2pg0a48yBmjxZacQ+nx5TxvZjHkkTbf3Ea1Vc0bK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-core@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1250560},"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","test:watch":"npm test -- --watch"},"_npmUser":{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},"repository":{"url":"git+https://github.com/askturret/mcp.git","type":"git","directory":"packages/core"},"_npmVersion":"10.8.2","description":"Core runtime - canonical model, compiler, registry, policies, execution","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*","@types/jest":"^29.5.0","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-core_0.1.2_1788607216468_0.47428238230388087","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@askturret/mcp-core","version":"0.2.0","description":"Core runtime - canonical model, compiler, registry, policies, execution","type":"module","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/askturret/mcp.git","directory":"packages/core"},"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","test:watch":"npm test -- --watch","lint":"echo \"Linting not yet configured\""},"dependencies":{},"devDependencies":{"typescript":"*","@types/node":"^20.14.0","@jest/globals":"^29.7.0","@types/jest":"^29.5.0","jest":"^29.7.0","ts-jest":"^29.1.0"},"keywords":["askturret","mcp","server","client"],"_id":"@askturret/mcp-core@0.2.0","gitHead":"01db00fa88fb96dac636f82fc70bd248e834c9c7","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lRa9QMjctEHPP5qa+rMEmZZ68zBAdm3ExJOtFYCwkPpJ2gNHcuKhT3nvQIJxg3GOicsT6+WgLn57hOGvpobMng==","shasum":"3d78b2ff637cda1be03f446854a0c2ad49a53350","tarball":"https://registry.npmjs.org/@askturret/mcp-core/-/mcp-core-0.2.0.tgz","fileCount":448,"unpackedSize":1264505,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-core@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCIEYDSVcysCa8v+HnepPLEXSIXx4263UGWeYH+qxnwPirAh9ETdTqFx3jHlU9pJbTpaNbinM5QXV5oYnk1lH+8o0y"}]},"_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-core_0.2.0_1789133925008_0.33576922564451017"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-31T18:17:09.261Z","modified":"2026-09-11T13:38:45.548Z","0.1.0":"2026-08-31T18:17:09.653Z","0.1.1":"2026-09-03T18:04:01.511Z","0.1.2":"2026-09-05T11:20:16.630Z","0.2.0":"2026-09-11T13:38:45.194Z"},"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/core"},"description":"Core runtime - canonical model, compiler, registry, policies, execution","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"readme":"# @askturret/mcp-core\n\nThe runtime every other AskTurret package is built on: the canonical operation\nmodel, the compiler that produces it, and the execution path that runs it under\npolicy.\n\nIf you are adding MCP to an Express or Fastify app, you probably want\n[`@askturret/mcp-adapters-express`](https://www.npmjs.com/package/@askturret/mcp-adapters-express)\nor [`@askturret/mcp-adapters-fastify`](https://www.npmjs.com/package/@askturret/mcp-adapters-fastify)\ninstead — they depend on this package and give you a mountable handler in one\ncall. Reach for `mcp-core` directly when you are composing the pieces yourself,\nwriting a plugin, or building an adapter of your own.\n\n## What it is for\n\nOne model, compiled once, executed under policy:\n\n- **Canonical model and compiler** — sources produce `OperationDefinition`s; the\n  compiler validates them, applies overlays and presets, and yields a registry.\n  Tool shape is derived from operations you already have rather than written a\n  second time.\n- **Dispatcher and executors** — `createDispatcher` routes an MCP call;\n  `viaHandler` runs an in-process function and `viaHttp` proxies to an upstream\n  HTTP API, both behind one `OperationExecutor` interface.\n- **Policy** — `allOf`, `authenticated`, `confirmationForEffects` and their\n  siblings, evaluated at call time rather than baked into tool definitions.\n- **Resilience** — bulkheads, retry and circuit breakers, with a shutdown\n  lifecycle that drains in a defined order rather than dropping work.\n- **Extension points** — plugins, overlays that carry provenance, and telemetry\n  *ports* an observability package binds to.\n\n## Installing\n\n```bash\nnpm install @askturret/mcp-core\n```\n\nNode 20+. TypeScript types ship with the package; there is no `@types` install.\n\n## What it does not do\n\nThis package is deliberately transport-, framework- and vendor-neutral. It opens\nno socket and has no opinion about your HTTP stack:\n\n| You want | Package |\n|---|---|\n| Serve MCP over Streamable HTTP | `@askturret/mcp-transports` |\n| Mount into Express or Fastify | `@askturret/mcp-adapters-express` / `-fastify` |\n| Import an OpenAPI spec | `@askturret/mcp-sources-openapi` |\n| Export traces and metrics | `@askturret/mcp-observability` |\n\nIt defines the telemetry *ports*; it does not depend on the OpenTelemetry SDK.\nThat separation is why adding observability changes what you can see without\nchanging what the runtime executes.\n\n---\n\nThe quick start, the compatibility matrix and the full documentation live in the\n[main README](https://github.com/askturret/mcp#readme).\n","readmeFilename":"README.md"}