关于 fastify-mcp
fastify-mcp 是一个 Fastify 插件,用于在 Fastify 应用中运行 MCP 服务。它同时支持 Streamable HTTP 传输与旧版 HTTP+SSE 传输,适合已使用 Fastify 的 Node.js 开发者。
主要功能
- 01支持 Streamable HTTP 传输
- 02支持旧版 HTTP+SSE 传输
- 03以 Fastify 插件形式注册
- 04内存中管理多个会话
- 05提供 connected、terminated、error 会话事件
适用场景
- 01在现有 Fastify 应用中提供 MCP 端点
- 02需要管理多个 MCP 会话的服务端开发
MCP 相关
该插件将 MCP 服务器挂载到 Fastify 路由上,使 MCP 客户端可以通过 HTTP 连接。会话 ID 与会话实例的映射由插件在内存中维护。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
fastify-mcp
将 Model Context Protocol 服务集成到你的 Fastify 应用中。
支持 Streamable HTTP transport 和旧版 HTTP+SSE transport。
用法
首先,定义你的 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, {
// Set to `true` if you want a stateful server
stateful: false,
mcpEndpoint: "/mcp",
sessions: new Sessions<StreamableHTTPServerTransport>()
createServer,
});
app.listen({ port: 8080 });
如需更详细的示例,请参阅 examples 目录。
安装
# 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(`Session ${sessionId} connected`);
});
sessions.on("terminated", (sessionId) => {
console.log(`Session ${sessionId} terminated`);
});
贡献
如果你在使用此软件包时遇到问题,请提交 issue。也欢迎提交实现新功能或修复错误的拉取请求。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。