- Explore MCP Servers
- fastify-mcp
Fastify Mcp
What is Fastify Mcp
fastify-mcp is a plugin that allows you to integrate Model Context Protocol (MCP) servers with your Fastify application using Server-Sent Events (SSE) connections.
Use cases
Use cases for fastify-mcp include building interactive web applications that need to push updates to clients in real-time, such as dashboards, collaborative tools, and live data feeds.
How to use
To use fastify-mcp, first define your MCP server by creating an instance of McpServer. Then, create a Fastify app and register the fastify-mcp plugin, passing the MCP server to it. Finally, start the Fastify server on your desired port.
Key features
Key features of fastify-mcp include easy integration with Fastify, support for managing multiple SSE sessions, and session event handling for connected and terminated sessions.
Where to use
fastify-mcp can be used in web applications that require real-time data streaming, such as chat applications, live notifications, or any scenario that benefits from server-sent events.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Fastify Mcp
fastify-mcp is a plugin that allows you to integrate Model Context Protocol (MCP) servers with your Fastify application using Server-Sent Events (SSE) connections.
Use cases
Use cases for fastify-mcp include building interactive web applications that need to push updates to clients in real-time, such as dashboards, collaborative tools, and live data feeds.
How to use
To use fastify-mcp, first define your MCP server by creating an instance of McpServer. Then, create a Fastify app and register the fastify-mcp plugin, passing the MCP server to it. Finally, start the Fastify server on your desired port.
Key features
Key features of fastify-mcp include easy integration with Fastify, support for managing multiple SSE sessions, and session event handling for connected and terminated sessions.
Where to use
fastify-mcp can be used in web applications that require real-time data streaming, such as chat applications, live notifications, or any scenario that benefits from server-sent events.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
fastify-mcp
Integrate Model Context Protocol servers with your Fastify app.
Supports the Streamable HTTP transport as well as the legacy HTTP+SSE transport.
Usage
First, define your MCP server.
function createServer() {
const mcpServer = new McpServer({
name: "...",
version: "...",
});
mcpServer.tool("...");
mcpServer.resource("...");
return mcpServer.server;
}
Create a Fastify app and register the plugin.
import { fastify } from "fastify";
import { streamableHttp } from "fastify-mcp";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const app = fastify();
app.register(streamableHttp, {
// Set to `true` if you want a stateful server
stateful: false,
mcpEndpoint: "/mcp",
sessions: new Sessions<StreamableHTTPServerTransport>()
createServer,
});
app.listen({ port: 8080 });
See the examples directory for more detailed examples.
Installation
# npm
npm install fastify-mcp
# yarn
yarn add fastify-mcp
Session Management
The official MCP TypeScript SDK does not support managing multiple sessions out of the box, and therefore it’s the host server’s responsibility to do so.
This package uses an in-memory mapping of each active session against its session ID to manage multiple sessions, as recommended by the MCP SDK examples.
Session Events
The Sessions class emits the following events:
connected: Emitted when a new session is added.terminated: Emitted when a session is removed.error: Emitted when an asynchronous event handler throws an error.
const sessions = new Sessions<StreamableHTTPServerTransport>();
sessions.on("connected", (sessionId) => {
console.log(`Session ${sessionId} connected`);
});
sessions.on("terminated", (sessionId) => {
console.log(`Session ${sessionId} terminated`);
});
Contributing
Please file an issue if you encounter a problem when using this package. Pull requests for new features or bug fixes are also welcome.
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










