将Model Context Protocol服务器集成到您的Fastify应用程序中。
支持可流式传输的HTTP传输,以及传统的HTTP+SSE传输。
首先,定义您的MCP服务器。
function createServer() {
const mcpServer = new McpServer({
name: "...",
version: "...",
});
mcpServer.tool("...");
mcpServer.resource("...");
return mcpServer.server;
}
创建一个Fastify应用并注册插件。
import { fastify } from "fastify";
import { streamableHttp } from "fastify-mcp";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const app = fastify();
app.register(streamableHttp, {
// 如果需要有状态的服务器,请设置为`true`
stateful: false,
mcpEndpoint: "/mcp",
sessions: new Sessions<StreamableHTTPServerTransport>(),
createServer,
});
app.listen({ port: 8080 });
请参阅示例目录以获取更多详细示例。
# npm
npm install fastify-mcp
# yarn
yarn add fastify-mcp
官方MCP TypeScript SDK不支持开箱即用的多会话管理,因此主机服务器负责进行会话管理。
此包使用内存映射每个活动会话及其会话ID来管理多个会话,这符合MCP SDK示例中的建议。
Sessions类发出以下事件:
connected:当添加新会话时发出。terminated:当移除会话时发出。error:当异步事件处理器抛出错误时发出。const sessions = new Sessions<StreamableHTTPServerTransport>();
sessions.on("connected", (sessionId) => {
console.log(`会话 ${sessionId} 已连接`);
});
sessions.on("terminated", (sessionId) => {
console.log(`会话 ${sessionId} 已终止`);
});
如果您在使用此包时遇到问题,请提交一个问题。我们也欢迎针对新功能或错误修复的拉取请求。