npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@askturret/mcp-adapters-fastify

v0.2.0

Published

Fastify framework adapter

Downloads

487

Readme

@askturret/mcp-adapters-fastify

Register an MCP server as a Fastify plugin. Same runtime and the same two entry points as the Express adapter — what differs is the plugin shape Fastify expects.

Registering it

npm install fastify @askturret/mcp-adapters-fastify
import Fastify from 'fastify';
import { mcpFromOpenApi } from '@askturret/mcp-adapters-fastify';

const app = Fastify();
await app.register(mcpFromOpenApi('./openapi.yaml'), { prefix: '/mcp' });
await app.listen({ port: 7078 });

Note the prefix: unlike Express, where the mount path is an argument to app.use, a Fastify plugin takes it as a registration option. Forgetting it mounts MCP at the root.

The composable form

fastifyMcp is the explicit counterpart, for when you are supplying sources, an executor or policy yourself:

import { fastifyMcp } from '@askturret/mcp-adapters-fastify';

await app.register(fastifyMcp({ sources: [...] }), { prefix: '/mcp' });

Defaults you are opting into

The one-call form applies the Light preset, identical to the Express adapter's: read-only operations exposed automatically when their schemas validate, mutating operations only when explicitly included, stateless HTTP transport, 1 MiB payload bound, 30-second deadline, and the Explorer mounted only outside production.

Requirements and scope

Fastify is a peer dependency, ^4.0.0 || ^5.0.0 — install it yourself. Node 20+.

CI currently exercises Fastify 5; the 4.x range is declared and expected to work but is not covered by a job, so treat it as best-effort until it is. The compatibility matrix is the authority on that and says so explicitly.

Everything framework-neutral — discovery, compilation, the include filter, the user-context allowlist — lives in @askturret/mcp-core. What remains here is the Fastify-shaped part, and it is deliberately short: none of it is policy.

There is no fromFastify export and there never has been. The entry points are mcpFromOpenApi and fastifyMcp. If you are porting from material that names fromFastify, there is nothing to port to.


Full documentation is in the main README.