使用说明

项目简介

fastify-mcp 插件旨在帮助开发者在 Fastify 框架中轻松搭建 MCP 服务器。它基于官方 MCP TypeScript SDK,提供了 Server-Sent Events (SSE) 传输协议的实现,并处理了会话管理等底层细节,让开发者可以专注于 MCP 服务器的核心业务逻辑,如资源、工具和 Prompt 模板的定义。

主要功能点

  • MCP 服务器集成: 提供 Fastify 插件,无缝集成 MCP 服务器功能。
  • SSE 传输支持: 基于 Server-Sent Events 实现 MCP 协议的实时通信。
  • 会话管理: 自动管理客户端 SSE 连接会话,处理会话的创建和关闭。
  • 简化开发: 开发者无需关注底层的 SSE 和会话管理细节,专注于 MCP 核心功能的实现。
  • 示例代码: 提供简单的示例,展示如何快速创建一个基本的 MCP 服务器。

安装步骤

  1. 确保已安装 Node.js 和 npm 或 yarn。
  2. 在你的 Fastify 项目中,通过 npm 或 yarn 安装 'fastify-mcp' 插件:
    # npm
    npm install fastify-mcp
    
    # yarn
    yarn add fastify-mcp

服务器配置

MCP 客户端需要配置以下信息以连接到使用 'fastify-mcp' 插件构建的 MCP 服务器。

{
  "serverName": "basic-mcp-server",
  "command": "node",
  "args": ["path/to/your/server.js"]
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,由 'McpServer' 实例初始化时定义 (例如示例中的 "basic-mcp-server")。
  • 'command': 启动 MCP 服务器的命令,通常为 'node'。
  • 'args': 启动命令的参数,指向你的 Fastify 服务器入口文件路径 (例如 'path/to/your/server.js')。 请根据你的项目实际文件路径进行修改。

注意: 'path/to/your/server.js' 需要替换为实际运行包含 'fastify-mcp' 插件的 Fastify 应用的 JavaScript 文件路径。

基本使用方法

  1. 创建 MCP 服务器实例: 在你的 Fastify 项目中,首先使用 '@modelcontextprotocol/sdk' 创建 'McpServer' 实例,定义服务器的名称和版本,并注册你的工具 (tools)。

    import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
    import { fastifyMCPSSE } from "fastify-mcp";
    import { fastify } from "fastify";
    
    const mcpServer = new McpServer({
      name: "basic-mcp-server", // MCP 服务器名称,客户端配置需要
      version: "0.0.1", // MCP 服务器版本
    });
    
    mcpServer.tool("greet", () => { // 注册一个名为 "greet" 的工具
      return {
        content: [{ type: "text", text: "Hello, world!" }],
      };
    });
  2. 注册 'fastifyMCPSSE' 插件: 将 'fastifyMCPSSE' 插件注册到你的 Fastify 应用中,并将 'mcpServer.server' 传递给插件。

    const app = fastify();
    
    app.register(fastifyMCPSSE, {
      server: mcpServer.server, // 传递 McpServer 实例的 server 属性
    });
  3. 启动 Fastify 服务器: 启动你的 Fastify 应用,监听指定的端口。

    app.listen({ port: 3000 })
      .then(() => {
        console.log("Server is running on port 3000");
      })
      .catch(err => {
        console.error(err);
        process.exit(1);
      });
  4. 运行服务器: 使用 Node.js 运行你的服务器文件 (例如 'node your-server.js')。

  5. 连接 MCP 客户端: 配置你的 MCP 客户端,使用上述 服务器配置 中生成的 JSON 配置信息连接到运行中的 MCP 服务器。客户端将通过 SSE 与服务器进行通信,调用注册的工具等功能。

示例代码: 仓库的 'examples/simple-server.ts' 文件提供了一个更完整的示例,可以参考该示例进行开发。

信息

分类

开发者工具