返回市场
快速服务-MCP

快速服务-MCP

作者:haroldadmin21 星标更新:2025-09-14

项目介绍

fastify-mcp

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} 已终止`);
});

贡献

如果您在使用此包时遇到问题,请提交一个问题。我们也欢迎针对新功能或错误修复的拉取请求。