fastify-mcp
fastify-mcp is a plugin for integrating Model Context Protocol (MCP) servers with Fastify applications. It supports both Streamable HTTP and HTTP+SSE transports, simplifying the creation and configuration of MCP servers. This enables real-time data streaming capabilities.
GitHub Stars
16
User Rating
Not Rated
Favorites
0
Views
27
Forks
3
Issues
3
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.
201
Followers
62
Repositories
5
Gists
0
Total Contributions
The AniList MCP Server is a Model Context Protocol (MCP) server that interfaces with the AniList API, allowing users to access and interact with data related to anime, manga, characters, staff, and users. It provides detailed information retrieval, search capabilities, and advanced filtering options for effective data management.