MCP服务器构建技能 mcp-builder

这个技能是关于如何开发MCP服务器的详细指南,帮助构建工具使大型语言模型能够与外部API和服务交互。适用于Python和TypeScript开发,涉及工具设计、API集成和AI应用部署。关键词:MCP开发, 服务器编程, 工具集成, AI交互, 类型安全, API设计, 模型上下文协议。

AI应用 0 次安装 0 次浏览 更新于 3/8/2026

name: mcp-builder description: 创建高质量MCP(模型上下文协议)服务器的指南,使LLM能够通过设计良好的工具与外部服务交互。在构建MCP服务器以集成外部API或服务时使用,无论是在Python(FastMCP)还是Node/TypeScript(MCP SDK)中。 source: anthropics/skills license: Apache-2.0

MCP 服务器开发指南

创建MCP服务器,使LLM能够通过设计良好的工具与外部服务交互。

高级工作流程

第一阶段:研究与规划

理解现代MCP设计:

  • 平衡全面的API覆盖与专业化的工作流程工具
  • 使用清晰、描述性的工具名称,带有一致的前缀(例如,github_create_issue
  • 设计返回聚焦、相关数据的工具
  • 提供可操作的错误消息

学习MCP协议:

  • 从站点地图开始:https://modelcontextprotocol.io/sitemap.xml
  • 关键页面:规范、传输机制、工具定义

第二阶段:实施

推荐技术栈:

  • 语言:TypeScript(最佳SDK支持)
  • 传输:用于远程的Streamable HTTP,用于本地的stdio

项目结构:

my-mcp-server/
├── src/
│   ├── index.ts      # 服务器入口点
│   ├── tools/        # 工具实现
│   └── utils/        # 共享工具
├── package.json
└── tsconfig.json

工具实现模式:

server.registerTool({
  name: "github_create_issue",
  description: "创建新的GitHub问题",
  inputSchema: z.object({
    repo: z.string().describe("仓库名称(所有者/仓库)"),
    title: z.string().describe("问题标题"),
    body: z.string().optional().describe("问题正文")
  }),
  outputSchema: z.object({
    id: z.number(),
    url: z.string()
  }),
  annotations: {
    readOnlyHint: false,
    destructiveHint: false,
    idempotentHint: false
  },
  handler: async (input) => {
    // 实现
    return { id: 123, url: "https://..." };
  }
});

第三阶段:测试

# TypeScript
npm run build
npx @modelcontextprotocol/inspector

# Python
python -m py_compile your_server.py

第四阶段:创建评估

创建10个复杂、现实的问题来测试你的MCP服务器:

<evaluation>
  <qa_pair>
    <question>在仓库中查找所有标记为'bug'的开放问题</question>
    <answer>5</answer>
  </qa_pair>
</evaluation>

工具设计最佳实践

  • 使用Zod(TS)或Pydantic(Python)进行模式定义
  • 在字段描述中包含约束和示例
  • 定义outputSchema以获取结构化数据
  • 在适用时支持分页
  • 添加工具注释(只读、破坏性、幂等)