{"_id":"@askturret/mcp-adapters-fastify","_rev":"4-7ccf6499870d15d253152af1cc10dcb5","name":"@askturret/mcp-adapters-fastify","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@askturret/mcp-adapters-fastify","version":"0.1.0","license":"Apache-2.0","_id":"@askturret/mcp-adapters-fastify@0.1.0","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"7e0e836cd0195fa05648e39bd8c9847c071b48fc","tarball":"https://registry.npmjs.org/@askturret/mcp-adapters-fastify/-/mcp-adapters-fastify-0.1.0.tgz","fileCount":9,"integrity":"sha512-f3KO9a3+3NMWD7ghsXLJ6J1kCaq/RAIKJk2EEQEtcOXGqT5sky2g3EcrG7xrEg1bNVBqs9MkbsPCjDN7P+gkcw==","signatures":[{"sig":"MEUCIFYUDrN27LGqp8Re2Ad+1ULRYX6amACiufIdxYgHvLn6AiEA9ikUaM+75KI46BLGVwLvD4ZYG3QOP08Ms8kEPE3j33s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24000},"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":"Fastify framework adapter","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@askturret/mcp-core":"^0.1.0","@askturret/mcp-explorer":"^0.1.0","@askturret/mcp-transports":"^0.1.0","@askturret/mcp-sources-openapi":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","fastify":"^5.0.0","ts-jest":"^29.1.0","typescript":"*","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"peerDependencies":{"fastify":"^4.0.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-adapters-fastify_0.1.0_1788200468127_0.05219522885665118","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@askturret/mcp-adapters-fastify","version":"0.1.1","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-adapters-fastify@0.1.1","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"dist":{"shasum":"fa64176df66b1a9bbf25ba64fd43e30a0ae82777","tarball":"https://registry.npmjs.org/@askturret/mcp-adapters-fastify/-/mcp-adapters-fastify-0.1.1.tgz","fileCount":12,"integrity":"sha512-itiCQlTsJ7tmlyXjv3PLYxaXYeJ6OPDuZu4v/nC29h/Ht+8sPY7+gpER9EcwxHi/goEY7PakFgkNv0qN3rieEg==","signatures":[{"sig":"MEQCIBM1urVSTHtaAfUD/m+SSn23GT91+SSW0peHsSXGheS4AiBZz+uA3qvDh9rRAFXjnoToZBtLy0eTSuOSD1ORIK+Drw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45799},"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":"Fastify framework adapter","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@askturret/mcp-core":"^0.1.0","@askturret/mcp-explorer":"^0.1.0","@askturret/mcp-transports":"^0.1.0","@askturret/mcp-sources-openapi":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","fastify":"^5.0.0","ts-jest":"^29.1.0","typescript":"*","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"peerDependencies":{"fastify":"^4.0.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-adapters-fastify_0.1.1_1788458636241_0.8957535475764169","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@askturret/mcp-adapters-fastify","version":"0.1.2","keywords":["askturret","mcp","server","client"],"license":"Apache-2.0","_id":"@askturret/mcp-adapters-fastify@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":"b0e5430fce2744f0c8bb07777d5f7bb21f3d49b0","tarball":"https://registry.npmjs.org/@askturret/mcp-adapters-fastify/-/mcp-adapters-fastify-0.1.2.tgz","fileCount":12,"integrity":"sha512-f3ywNIsqKNMwkyWbAYbibyIihyiEo4Xqj+vkvoHmkPif1l1oy3bjYhzjh9d30+pRCdkMIto1NAFiqdxfwkVocg==","signatures":[{"sig":"MEYCIQDhkW0EVr0/IxQtPKJtC59ds4QR3qNtxoCoKN8qzDeejQIhAI9tMgqHp/vOB9kuGwXK3XtFuCJ0zFN9moPK4E6oXI7u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-adapters-fastify@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46088},"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/adapters-fastify"},"_npmVersion":"10.8.2","description":"Fastify framework adapter","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@askturret/mcp-core":"^0.1.0","@askturret/mcp-explorer":"^0.1.0","@askturret/mcp-transports":"^0.1.0","@askturret/mcp-sources-openapi":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","fastify":"^5.0.0","ts-jest":"^29.1.0","typescript":"*","@types/node":"^20.14.0","@jest/globals":"^29.7.0"},"peerDependencies":{"fastify":"^4.0.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-adapters-fastify_0.1.2_1788607210051_0.002508959700788349","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@askturret/mcp-adapters-fastify","version":"0.2.0","description":"Fastify framework adapter","type":"module","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/askturret/mcp.git","directory":"packages/adapters-fastify"},"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","@askturret/mcp-explorer":"^0.2.0","@askturret/mcp-sources-openapi":"^0.2.0","@askturret/mcp-transports":"^0.2.0"},"peerDependencies":{"fastify":"^4.0.0 || ^5.0.0"},"devDependencies":{"@jest/globals":"^29.7.0","@types/node":"^20.14.0","fastify":"^5.0.0","jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"*"},"keywords":["askturret","mcp","server","client"],"_id":"@askturret/mcp-adapters-fastify@0.2.0","gitHead":"01db00fa88fb96dac636f82fc70bd248e834c9c7","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-oamquNUkioK/0wXmwX7B5AFKva4gtVmY2NrIryT59VE3cWjU+B8kcF1sPlsDsAtqd9uxQ2qJPx2wUbzftQ7kPw==","shasum":"4f9ae1b029a7988d1051ba599f9163ab4942d40e","tarball":"https://registry.npmjs.org/@askturret/mcp-adapters-fastify/-/mcp-adapters-fastify-0.2.0.tgz","fileCount":12,"unpackedSize":46987,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askturret%2fmcp-adapters-fastify@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC5pM7KUyfkVQbMPeq7hguhY2v9kd7WdS8I3Km340PuHwIhALOmSxVuw0C0uHO/SzvwkuBWzqyE0k1kNf8nz9vV/iEz"}]},"_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-adapters-fastify_0.2.0_1789133920588_0.25216578039626625"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-31T18:21:07.906Z","modified":"2026-09-11T13:38:41.044Z","0.1.0":"2026-08-31T18:21:08.262Z","0.1.1":"2026-09-03T18:03:56.398Z","0.1.2":"2026-09-05T11:20:10.190Z","0.2.0":"2026-09-11T13:38:40.719Z"},"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/adapters-fastify"},"description":"Fastify framework adapter","maintainers":[{"name":"didi178","email":"dmitry.stepanov37@gmail.com"},{"name":"alprimak","email":"alprimak@gmail.com"}],"readme":"# @askturret/mcp-adapters-fastify\n\nRegister an MCP server as a Fastify plugin. Same runtime and the same two entry\npoints as the Express adapter — what differs is the plugin shape Fastify expects.\n\n## Registering it\n\n```bash\nnpm install fastify @askturret/mcp-adapters-fastify\n```\n\n```js\nimport Fastify from 'fastify';\nimport { mcpFromOpenApi } from '@askturret/mcp-adapters-fastify';\n\nconst app = Fastify();\nawait app.register(mcpFromOpenApi('./openapi.yaml'), { prefix: '/mcp' });\nawait app.listen({ port: 7078 });\n```\n\nNote the `prefix`: unlike Express, where the mount path is an argument to\n`app.use`, a Fastify plugin takes it as a registration option. Forgetting it\nmounts MCP at the root.\n\n## The composable form\n\n`fastifyMcp` is the explicit counterpart, for when you are supplying sources,\nan executor or policy yourself:\n\n```js\nimport { fastifyMcp } from '@askturret/mcp-adapters-fastify';\n\nawait app.register(fastifyMcp({ sources: [...] }), { prefix: '/mcp' });\n```\n\n## Defaults you are opting into\n\nThe one-call form applies the **Light preset**, identical to the Express\nadapter's: read-only operations exposed automatically when their schemas\nvalidate, **mutating operations only when explicitly included**, stateless HTTP\ntransport, 1 MiB payload bound, 30-second deadline, and the Explorer mounted\nonly outside production.\n\n## Requirements and scope\n\nFastify is a **peer dependency**, `^4.0.0 || ^5.0.0` — install it yourself.\nNode 20+.\n\nCI currently exercises **Fastify 5**; the 4.x range is declared and expected to\nwork but is not covered by a job, so treat it as best-effort until it is. The\n[compatibility matrix](https://github.com/askturret/mcp/blob/main/docs/compatibility.md)\nis the authority on that and says so explicitly.\n\nEverything framework-neutral — discovery, compilation, the include filter, the\nuser-context allowlist — lives in\n[`@askturret/mcp-core`](https://www.npmjs.com/package/@askturret/mcp-core).\nWhat remains here is the Fastify-shaped part, and it is deliberately short:\nnone of it is policy.\n\nThere is **no `fromFastify` export** and there never has been. The entry points\nare `mcpFromOpenApi` and `fastifyMcp`. If you are porting from material that\nnames `fromFastify`, there is nothing to port to.\n\n---\n\nFull documentation is in the [main README](https://github.com/askturret/mcp#readme).\n","readmeFilename":"README.md"}