# MCP Builder

> MCP Server 开发指南 - 帮助创建高质量的 MCP (Model Context Protocol) 服务器。 当需要构建 MCP 服务器来集成外部 API 或服务时使用，支持 Python (FastMCP) 和 Node/TypeScript (MCP SDK)。 触发关键词: mcp开发, mcp服务器, model context protocol, 构建mcp, 创建mcp

- Skill: `gabrielmoreira/mcp-builder-6` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gabrielmoreira/mcp-builder-6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gabrielmoreira/mcp-builder-6/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: gabrielmoreira (https://skillmd.com/u/gabrielmoreira)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/gabrielmoreira/mcp-builder-6

---


# MCP Server 开发指南

## 执行声明规范

**每次使用本 Skill 时，必须向用户明确告知：**

### 开始执行时
```
🔧 **正在执行: MCP Builder** (`#mcp-builder`)

✅ 已加载 Skill 指引
⭕ 当前步骤: [步骤描述]
```

### 执行完成时
```
✅ **执行完成**: MCP Builder

参考来源:
- Skill: `#mcp-builder`
- 参考文档: [使用的参考文档]

产出物: [MCP Server 代码/配置]
```

---

## 概述

创建 MCP (Model Context Protocol) 服务器，使 LLM 能够通过精心设计的工具与外部服务交互。
MCP 服务器的质量取决于它如何有效地帮助 LLM 完成实际任务。

---

## 高层工作流

创建高质量 MCP 服务器涉及四个主要阶段：

### 阶段1: 深度研究和规划

#### 1.1 理解现代 MCP 设计

**API 覆盖 vs 工作流工具**:
平衡全面的 API 端点覆盖与专业工作流工具。当不确定时，优先考虑全面的 API 覆盖。

**工具命名和可发现性**:
清晰、描述性的工具名称帮助代理快速找到正确的工具。使用一致的前缀（如 `github_create_issue`、`github_list_repos`）和面向动作的命名。

**可操作的错误消息**:
错误消息应引导代理找到解决方案，包含具体建议和后续步骤。

#### 1.2 研究 MCP 协议文档

**导航 MCP 规范**:
- 站点地图: `https://modelcontextprotocol.io/sitemap.xml`
- 使用 `.md` 后缀获取 Markdown 格式页面

**关键页面**:
- 规范概述和架构
- 传输机制 (streamable HTTP, stdio)
- 工具、资源和提示定义

#### 1.3 研究框架文档

**推荐技术栈**:
- **语言**: TypeScript（高质量 SDK 支持，良好的执行环境兼容性）
- **传输**: 远程服务器使用 Streamable HTTP，本地服务器使用 stdio

**框架文档**:
- [MCP 最佳实践](reference/mcp_best_practices.md)
- [TypeScript 指南](reference/node_mcp_server.md)
- [Python 指南](reference/python_mcp_server.md)

#### 1.4 规划实现

**理解 API**: 查看服务的 API 文档，识别关键端点、认证要求和数据模型。

**工具选择**: 优先考虑全面的 API 覆盖。列出要实现的端点，从最常见的操作开始。

---

### 阶段2: 实现

#### 2.1 设置项目结构

详见语言特定指南：
- [TypeScript 指南](reference/node_mcp_server.md) - 项目结构、package.json、tsconfig.json
- [Python 指南](reference/python_mcp_server.md) - 模块组织、依赖项

#### 2.2 实现核心基础设施

创建共享工具：
- 带认证的 API 客户端
- 错误处理助手
- 响应格式化 (JSON/Markdown)
- 分页支持

#### 2.3 实现工具

对于每个工具：

**输入 Schema**:
- 使用 Zod (TypeScript) 或 Pydantic (Python)
- 包含约束和清晰的描述
- 在字段描述中添加示例

**输出 Schema**:
- 尽可能定义 `outputSchema`
- 在工具响应中使用 `structuredContent`

**工具描述**:
- 功能的简洁摘要
- 参数描述
- 返回类型 schema

**注解**:
- `readOnlyHint`: true/false
- `destructiveHint`: true/false
- `idempotentHint`: true/false
- `openWorldHint`: true/false

---

### 阶段3: 审查和测试

#### 3.1 代码质量

审查：
- 无重复代码 (DRY 原则)
- 一致的错误处理
- 完整的类型覆盖
- 清晰的工具描述

#### 3.2 构建和测试

**TypeScript**:
```bash
npm run build
npx @modelcontextprotocol/inspector
```

**Python**:
```bash
python -m py_compile your_server.py
```

---

### 阶段4: 创建评估

实现 MCP 服务器后，创建全面的评估来测试其有效性。

详见 [评估指南](reference/evaluation.md)。

---

## 快速参考

### 服务器命名
- **Python**: `{service}_mcp` (如 `slack_mcp`)
- **Node/TypeScript**: `{service}-mcp-server` (如 `slack-mcp-server`)

### 工具命名
- 使用 snake_case 加服务前缀
- 格式: `{service}_{action}_{resource}`
- 示例: `slack_send_message`, `github_create_issue`

### 响应格式
- 支持 JSON 和 Markdown 两种格式
- JSON 用于程序化处理
- Markdown 用于人类可读性

### 分页
- 始终尊重 `limit` 参数
- 返回 `has_more`, `next_offset`, `total_count`
- 默认 20-50 项

### 传输选择

| 标准 | stdio | Streamable HTTP |
|------|-------|-----------------|
| **部署** | 本地 | 远程 |
| **客户端** | 单个 | 多个 |
| **复杂度** | 低 | 中 |
| **实时** | 否 | 是 |

---

## 参考文档

加载这些资源以获取详细指导：

### 核心 MCP 文档
- [MCP 最佳实践](reference/mcp_best_practices.md) - 通用 MCP 指南

### 语言特定实现指南
- [Python 实现指南](reference/python_mcp_server.md) - FastMCP 完整指南
- [TypeScript 实现指南](reference/node_mcp_server.md) - TypeScript SDK 完整指南

### 评估指南
- [评估指南](reference/evaluation.md) - 完整的评估创建指南

---

## Azure DevOps MCP 示例

当前项目使用 Azure DevOps MCP，以下是配置示例：

### VS Code 配置 (.vscode/mcp.json)

```json
{
  "mcpServers": {
    "azuredevops": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-azure-devops"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_AUTH_METHOD": "pat",
        "AZURE_DEVOPS_PAT": "${env:AZURE_DEVOPS_PAT}"
      }
    }
  }
}
```

### 工具调用示例

```typescript
// 搜索代码 - 必须指定仓库过滤器
mcp_azuredevops_search_code({
  searchText: "IDataLoadService",
  filters: { Repository: ["{{PLATFORM_REPO}}"] }
});

// 获取文件内容 - 必须指定版本
mcp_azuredevops_get_file_content({
  repositoryId: "{{PLATFORM_REPO}}",
  path: "/DataLoad/src/Service.cs",
  versionType: "branch",
  version: "{{PLATFORM_BRANCH}}"
});

// 获取工作项
mcp_azuredevops_get_work_item({
  id: 1073716
});
```

---

## 参考来源声明

使用本 Skill 时，必须声明参考来源：

```markdown
📚 **参考来源**:
- Skill: `#mcp-builder`
- 参考文档: [使用的参考文档名称]
- 外部资源: [MCP 官方文档等]
```

