mcpField
F
fastify-mcp

fastify-mcp

本地服务
npmjs.com开发工具2724 周前更新

关于 fastify-mcp

fastify-mcp 是一个 Fastify 插件,用于在 Fastify 应用中运行 MCP 服务。它同时支持 Streamable HTTP 传输与旧版 HTTP+SSE 传输,适合已使用 Fastify 的 Node.js 开发者。

主要功能

  1. 01支持 Streamable HTTP 传输
  2. 02支持旧版 HTTP+SSE 传输
  3. 03以 Fastify 插件形式注册
  4. 04内存中管理多个会话
  5. 05提供 connected、terminated、error 会话事件

适用场景

  1. 01在现有 Fastify 应用中提供 MCP 端点
  2. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。