MCP服务器模板

一个用于创建Model Context Protocol (MCP)服务器的TypeScript模板,提供类型安全、依赖注入和最佳实践支持。

  • by stevennevins
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 stevennevins/mcp-server-template

使用说明

MCP服务器模板

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

特性

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

入门指南

发展

  1. 安装依赖项:

    npm install
    
  2. 使用热重载启动开发服务器:

    npm run dev
    
  3. 构建项目:

    npm run build
    
  4. 运行测试:

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

    npm start
    

项目结构

src/
├── index.ts          # Entry point
├── interfaces/       # Interface definitions
│   └── tool.ts      # DataProcessor interface
└── tools/           # Tool implementations
    └── example.ts   # Example tool

创建工具

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

    // In your-tool.ts
    export const YOUR_TOOLS = [
      {
        name: "your-tool-name",
        description: "Your tool description",
        parameters: {
          // Your tool parameters schema
        },
      },
    ];
    
    export const YOUR_HANDLERS = {
      "your-tool-name": async (request) => {
        // Your tool handler implementation
        return {
          toolResult: {
            content: [{ type: "text", text: "Result" }],
          },
        };
      },
    };
    
  2. 在中注册您的工具 ALL_TOOLS 和 ALL_HANDLERS 常数在 src/index.ts:

    // In src/index.ts
    import { YOUR_TOOLS, YOUR_HANDLERS } from "./tools/your-tool.js";
    
    // Combine all tools
    const ALL_TOOLS = [...EXAMPLE_TOOLS, ...YOUR_TOOLS];
    const ALL_HANDLERS = { ...EXAMPLE_HANDLERS, ...YOUR_HANDLERS };
    

服务器将自动:

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

测试

该模板包括用于本地测试的内置TestClient和用于可视化调试的MCP检查器。

使用测试客户端

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

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

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

  it("should process data correctly", async () => {
    await client.assertToolCall(
      "your-tool-name",
      { input: "test" },
      (result) => {
        expect(result.toolResult.content).toBeDefined();
      }
    );
  });
});

使用MCP检查器

该模板包括用于工具可视化调试的MCP检查器:

  1. 启动检查器:

    npx @modelcontextprotocol/inspector node dist/index.js
    
  2. 打开检查器UIhttp://localhost:5173

检查员提供:

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

使用游标进行本地测试

要使用Cursor在本地测试MCP服务器,请执行以下操作:

  1. 构建并链接包:

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

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

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

注意:如果您对代码进行了更改,请记住重建并重新链接:

npm run build
npm run link

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

npm run unlink

这将删除开发过程中创建的全局符号链接。