返回市场
MCP服务器模板

MCP服务器模板

作者:stevennevins4 星标更新:2025-02-10

项目介绍

MCP 服务器模板

用于在 TypeScript 中创建模型上下文协议(MCP)服务器的模板。此模板提供了一个坚实的基础,用于构建具有适当工具、类型安全性和最佳实践的 MCP 兼容服务器。

特性

  • 🚀 完整的 TypeScript 支持
  • 🏗️ 基于容器的依赖注入
  • 📦 基于服务架构的数据处理器接口
  • 🛠️ 带有测试的示例工具实现
  • 🧪 Vitest 测试框架
  • 📝 类型定义
  • 🔌 MCP SDK 集成

开始使用

开发

  1. 安装依赖项:

    npm install
    
  2. 启动带有热重载的开发服务器:

    npm run dev
    
  3. 构建项目:

    npm run build
    
  4. 运行测试:

    npm test
    
  5. 启动生产服务器:

    npm start
    

项目结构

src/
├── index.ts          # 入口点
├── interfaces/       # 接口定义
│   └── tool.ts      # 数据处理器接口
└── tools/           # 工具实现
    └── example.ts   # 示例工具

创建工具

  1. 根据 src/tools/example.ts 中的示例导出你的工具和处理程序:

    // 在 your-tool.ts 中
    export const YOUR_TOOLS = [
      {
        name: "your-tool-name",
        description: "Your tool description",
        parameters: {
          // 你的工具参数模式
        },
      },
    ];
    
    export const YOUR_HANDLERS = {
      "your-tool-name": async (request) => {
        // 你的工具处理程序实现
        return {
          toolResult: {
            content: [{ type: "text", text: "结果" }],
          },
        };
      },
    };
    
  2. src/index.ts 中的 ALL_TOOLSALL_HANDLERS 常量中注册你的工具:

    // 在 src/index.ts 中
    import { YOUR_TOOLS, YOUR_HANDLERS } from "./tools/your-tool.js";
    
    // 组合所有工具
    const ALL_TOOLS = [...EXAMPLE_TOOLS, ...YOUR_TOOLS];
    const ALL_HANDLERS = { ...EXAMPLE_HANDLERS, ...YOUR_HANDLERS };
    

服务器将自动:

  • 列出你的工具在可用工具中
  • 处理输入验证
  • 处理对你的工具的请求
  • 根据 MCP 协议格式化响应

测试

模板包括一个内置的 TestClient 用于本地测试和 MCP Inspector 用于可视化调试。

使用 TestClient

TestClient 提供了一种简单的方式来测试你的工具:

import { TestClient } from "./utils/TestClient";

describe("YourTool", () => {
  const client = new TestClient();

  it("应该正确处理数据", async () => {
    await client.assertToolCall(
      "your-tool-name",
      { input: "test" },
      (result) => {
        expect(result.toolResult.content).toBeDefined();
      }
    );
  });
});

使用 MCP Inspector

模板包括 MCP Inspector 用于你的工具的可视化调试:

  1. 启动 inspector:

    npx @modelcontextprotocol/inspector node dist/index.js
    
  2. http://localhost:5173 打开 inspector UI

Inspector 提供了:

  • 测试工具的可视化界面
  • 实时请求/响应监控
  • 工具元数据检查
  • 交互式测试环境

使用 Cursor 进行本地测试

要使用 Cursor 进行本地 MCP 服务器测试:

  1. 构建并链接包:

    npm run build
    npm run link
    
  2. 验证二进制文件是否工作:

    npx example-mcp-tool
    
  3. 将服务器添加到 Cursor:

    • 打开 Cursor 设置
    • 导航到功能标签
    • 滚动到 MCP 服务器部分
    • 点击“添加服务器”
    • 选择“命令”类型
    • 给它命名(例如,“本地示例工具”)
    • 输入命令:npx example-mcp-tool
    • 点击确认
  4. 通过检查 MCP 服务器部分显示你的服务器正在运行来验证 Cursor 中的服务器是否启动正确。

注意:如果你修改了代码,请记得重新构建和重新链接:

npm run build
npm run link

完成测试后,你可以取消链接包:

npm run unlink

这将删除开发期间创建的全局符号链接。 </中文翻译>