MCP整合基礎
MCP(Model Context Protocol,模型上下文協議)是Claude Code最強大的擴充套件機制。
透過MCP,Claude Code能連線上百個外部工具和資料來源:GitHub、網路搜尋、資料庫、監控系統等等。
今天詳細介紹MCP的概念、工作原理和實際整合方法。
什麼是MCP
核心概念
Model Context Protocol(MCP)是Anthropic於2024年11月推出的開放標準和開源框架,旨在標準化AI系統(如大型語言模型)與外部工具、系統和資料來源的整合與資料共享方式。
簡單來說,MCP就像是一座橋樑:
- 一端連線著AI助手(如Claude Code)
- 另一端連線著各種外部服務和資料來源
- 透過這座橋樑,AI可以安全、高效地訪問和操作外部資源
MCP的價值
MCP出現前,每個AI工具都要為每個服務寫定製程式碼,導致:
- 大量重複工作
- 質量參差不齊
- 難維護、難擴充套件
MCP用標準化解決這些問題:
传统方式:
AI工具A → 定制集成 → GitHub
AI工具A → 定制集成 → Slack
AI工具B → 定制集成 → GitHub
AI工具B → 定制集成 → Slack
MCP方式:
AI工具A → MCP客户端 → MCP标准 → GitHub MCP服务器
AI工具B → MCP客户端 → MCP标准 → GitHub MCP服务器
AI工具C → MCP客户端 → MCP标准 → Slack MCP服务器
好處:
- 一次開發,處處可用: MCP伺服器能被所有支援MCP的AI工具用
- 更安全: 統一的認證和授權機制
- 生態好: 社羣可以一起開發和維護
- 擴充套件快: 新工具快速接入現有的MCP伺服器網路
行業採用情況
MCP已經獲得了廣泛的行業支援:
- 2025年3月:OpenAI正式採用MCP,整合到ChatGPT桌面應用、Agents SDK和Responses API
- 2025年4月:Google DeepMind CEO Demis Hassabis確認即將在Gemini模型中支援MCP
- 2025年12月:Anthropic將MCP捐贈給Linux基金會下的Agentic AI Foundation(AAIF),由Anthropic、Block、OpenAI共同創立,獲得Google、Microsoft、AWS、Cloudflare和Bloomberg支援
這使得MCP成為2025年AI工具整合的事實標準。
MCP工作原理
架構概覽
MCP採用客戶端-伺服器架構,包含兩個主要層次:
┌─────────────────────────────────────────────────────────┐
│ 应用层(Host) │
│ (如Claude Code、ChatGPT等) │
└────────────────────┬────────────────────────────────────┘
│
┌────────────────────▼────────────────────────────────────┐
│ MCP客户端层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │客户端1 │ │客户端2 │ │客户端3 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└─────────┼─────────────┼─────────────┼───────────────────┘
│ │ │
│ MCP协议 │ MCP协议 │ MCP协议
│ (JSON-RPC) │ (JSON-RPC) │ (JSON-RPC)
│ │ │
┌─────────▼─────────────▼─────────────▼───────────────────┐
│ MCP服务器层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │GitHub │ │Sentry │ │Filesystem│ │
│ │服务器 │ │服务器 │ │服务器 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└─────────┼─────────────┼─────────────┼───────────────────┘
│ │ │
┌─────────▼─────────────▼─────────────▼───────────────────┐
│ 外部服务层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │GitHub │ │Sentry │ │本地文件 │ │
│ │API │ │API │ │系统 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────┘
核心元件
1. 資料層(Data Layer)
資料層定義了基於JSON-RPC的協議,包括:
生命週期管理:
- 連線建立和斷開
- 會話管理
- 錯誤處理
核心原語:
- Tools(工具):可被AI呼叫的函式或操作
- Resources(資源):可被AI讀取的資料或內容
- Prompts(提示):預定義的提示模板
- Notifications(通知):伺服器向客戶端傳送的事件
2. 傳輸層(Transport Layer)
傳輸層定義了資料交換機制:
STDIO傳輸(本地):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
}
}
}
HTTP/SSE傳輸(遠端):
{
"mcpServers": {
"sentry": {
"url": "https://mcp.sentry.dev/mcp",
"transport": "http"
}
}
}
通訊流程
讓我們看一個完整的互動流程:
1. 连接建立
Claude Code → [初始化请求] → MCP服务器
Claude Code ← [服务器能力] ← MCP服务器
2. 工具发现
Claude Code → [列出工具] → MCP服务器
Claude Code ← [工具列表+描述] ← MCP服务器
3. 工具调用
用户: "查看我的GitHub仓库"
Claude Code → [调用list_repos工具] → GitHub MCP服务器
GitHub MCP服务器 → [查询GitHub API] → GitHub
GitHub → [返回仓库列表] → GitHub MCP服务器
GitHub MCP服务器 → [格式化结果] → Claude Code
Claude Code → [展示结果] → 用户
4. 资源读取
Claude Code → [获取README内容] → GitHub MCP服务器
GitHub MCP服务器 → [读取文件] → GitHub API
GitHub MCP服务器 ← [文件内容] ← GitHub API
Claude Code ← [返回内容] ← GitHub MCP服务器
為什麼MCP對Claude Code很重要
突破能力邊界
Claude Code本身已經很強大,但受限於:
- 只能訪問本地檔案系統
- 無法直接查詢外部API
- 不能訪問需要認證的服務
- 無法獲取實時資料
MCP打破了這些限制:
没有MCP的Claude Code:
用户: "帮我查看Sentry中最近的错误"
Claude: 抱歉,我无法直接访问Sentry。请您手动查看。
有MCP的Claude Code:
用户: "帮我查看Sentry中最近的错误"
Claude: [通过Sentry MCP服务器查询]
这是最近24小时的错误列表:
1. TypeError in payment.js (23次)
2. Network timeout in api.js (15次)
3. Null reference in user-profile.js (8次)
需要我帮您分析这些错误吗?
工作流整合
MCP使Claude Code能夠真正融入你的開發工作流:
從問題到程式碼,一氣呵成:
1. 从Linear/Jira获取任务详情
↓
2. 从GitHub拉取相关代码
↓
3. 分析Sentry中的错误日志
↓
4. 修改代码解决问题
↓
5. 运行测试验证
↓
6. 提交代码并更新任务状态
所有這些步驟都可以在Claude Code中完成,無需切換工具。
知識增強
透過MCP,Claude Code可以訪問:
- 企業內部知識庫
- 專案文件和Wiki
- 監控和日誌系統
- 資料庫和資料倉儲
這讓AI助手具備了企業特定的上下文知識。
內建MCP伺服器介紹
Claude Code團隊和社羣提供了豐富的MCP伺服器,涵蓋各種常見需求。
開發工具類
GitHub MCP伺服器
功能:
- 列出倉庫和分支
- 讀取檔案內容
- 搜尋程式碼
- 檢視Issues和Pull Requests
- 建立Issues和評論
使用場景:
用户: "查看我的react-app仓库中所有开放的issues"
Claude: [通过GitHub MCP查询]
你的react-app仓库有5个开放的issues:
#23 - 修复移动端布局问题
#21 - 添加暗色模式支持
#19 - 优化首页加载速度
#17 - 实现用户头像上传
#15 - 修复表单验证bug
Git MCP伺服器
功能:
- 讀取Git歷史
- 檢視提交資訊
- 比較分支差異
- 操作Git倉庫
使用場景:
用户: "查看最近5次提交修改了哪些文件"
Claude: [通过Git MCP查询]
最近5次提交的文件变更:
commit abc1234 - "优化性能"
- src/utils/cache.js
- src/components/ProductList.js
commit def5678 - "修复bug"
- src/api/auth.js
搜尋與資訊類
Brave Search MCP伺服器
功能:
- 網路搜尋
- 本地商戶搜尋
- 圖片搜尋
- 影片搜尋
- 新聞搜尋
- AI摘要
配置示例:
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server"],
"env": {
"BRAVE_API_KEY": "your-api-key"
}
}
}
}
使用場景:
用户: "搜索React 19的新特性"
Claude: [通过Brave Search查询最新信息]
React 19的主要新特性包括:
1. Actions - 简化表单处理
2. useOptimistic - 优化用户体验
3. use API - 简化异步操作
4. Server Components改进
来源:react.dev官方博客
檔案系統類
Filesystem MCP伺服器
功能:
- 安全的檔案讀寫
- 可配置的訪問控制
- 目錄瀏覽
- 檔案搜尋
安全配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/projects",
"/Users/username/documents"
]
}
}
}
只有配置的目錄可被訪問,確保安全性。
監控與錯誤追蹤類
Sentry MCP伺服器
功能:
- 獲取專案資訊
- 分析錯誤
- 檢視Issue詳情
- 觸發Seer AI進行根因分析
- 支援16種不同的工具呼叫
使用場景:
用户: "分析Sentry中最严重的3个错误"
Claude: [通过Sentry MCP查询和分析]
最严重的3个错误:
1. PaymentError (影响1,234用户)
- 原因:第三方支付API超时
- 建议:添加重试机制和超时处理
2. DatabaseConnectionError (影响856用户)
- 原因:连接池耗尽
- 建议:增加连接池大小
3. NullReferenceError (影响423用户)
- 原因:用户数据未正确初始化
- 建议:添加空值检查
資料庫類
PostgreSQL MCP伺服器
功能:
- 執行查詢
- 檢視錶結構
- 分析資料
- 生成報表
配置示例:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_URL": "postgresql://user:password@localhost:5432/mydb"
}
}
}
}
如何連線MCP伺服器
方法一:CLI嚮導(推薦)
Claude Code提供了友好的CLI嚮導來新增MCP伺服器:
# 基本添加命令
claude mcp add github --scope user
# 带环境变量的添加
claude mcp add brave-search \
-e BRAVE_API_KEY=your-api-key \
--scope user
# 添加远程服务器
claude mcp add sentry \
--transport http \
--url https://mcp.sentry.dev/mcp \
--scope project
互動流程:
$ claude mcp add github --scope user
? Select server type:
❯ Official Server
Community Server
Custom Server
? Enter configuration:
Command: npx
Args: -y @modelcontextprotocol/server-github
? Environment variables (optional):
GITHUB_TOKEN: ghp_xxxxxxxxxxxxxxxxxxxx
✓ GitHub MCP server added successfully!
✓ Configuration saved to user scope
Restart Claude Code to apply changes.
方法二:直接編輯配置檔案
對於複雜配置,可以直接編輯配置檔案:
配置檔案位置:
# macOS
~/Library/Application Support/Claude/claude_desktop_config.json
# Linux
~/.config/Claude/claude_desktop_config.json
# Windows
%APPDATA%/Claude/claude_desktop_config.json
完整配置示例:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_your_github_token"
}
},
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server"],
"env": {
"BRAVE_API_KEY": "your_brave_api_key"
}
},
"sentry": {
"url": "https://mcp.sentry.dev/mcp",
"transport": "http"
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/projects",
"/Users/username/documents"
]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_URL": "postgresql://user:pass@localhost:5432/db"
}
}
}
}
配置作用域
MCP伺服器可以在三個不同的作用域配置:
Local(本地)作用域
- 位置:專案根目錄的
.claude/mcp.json - 用途:專案特定的配置、實驗性配置、敏感憑證
- 特點:不會被Git追蹤,僅當前專案可用
claude mcp add database --scope local
Project(專案)作用域
- 位置:專案根目錄的
mcp.json - 用途:團隊共享的伺服器、專案必需的工具
- 特點:可以提交到Git,團隊成員共享
claude mcp add github --scope project
User(使用者)作用域
- 位置:使用者配置目錄
- 用途:個人常用工具、跨專案的開發工具
- 特點:所有專案可用
claude mcp add brave-search --scope user
優先順序:Local > Project > User
驗證配置
配置完成後,驗證MCP伺服器:
# 列出所有已配置的MCP服务器
claude mcp list
# 输出示例:
# MCP Servers (5):
# ✓ github (user)
# ✓ brave-search (user)
# ✓ sentry (project)
# ✓ filesystem (local)
# ✓ postgres (local)
# 测试特定服务器
claude mcp test github
在Claude Code中測試:
claude
# 输入测试命令
> 列出我配置的所有MCP服务器
Claude会显示已连接的服务器列表和可用功能
MCP安全認證和OAuth
為什麼需要認證
許多MCP伺服器需要訪問受保護的資源:
- GitHub需要Personal Access Token
- Sentry需要使用者授權
- 資料庫需要連線憑證
MCP支援多種認證方式,其中OAuth 2.1是最安全和標準化的方式。
OAuth 2.1規範
2025年3月,MCP規範引入了OAuth 2.1支援,包括:
關鍵安全特性:
- 強制PKCE:保護所有客戶端免受攻擊
- 後設資料發現:自動發現OAuth端點
- 動態客戶端註冊(DCR):自動註冊新客戶端
OAuth認證流程
1. 用户添加需要OAuth的MCP服务器
↓
2. Claude Code检测到需要OAuth
↓
3. 打开浏览器进行授权
┌──────────────────────────────┐
│ Login to Sentry │
│ ┌────────────────────────┐ │
│ │ Email: user@example.com│ │
│ │ Password: ************ │ │
│ └────────────────────────┘ │
│ │
│ [Continue] │
└──────────────────────────────┘
↓
4. 用户同意授权
┌──────────────────────────────┐
│ Claude Code requests access │
│ │
│ This app wants to: │
│ ✓ Read your projects │
│ ✓ View error information │
│ ✓ Trigger Seer AI analysis │
│ │
│ [Deny] [Allow] │
└──────────────────────────────┘
↓
5. 获取访问令牌
↓
6. 令牌安全存储
↓
7. 自动刷新令牌
Sentry OAuth配置例項
新增Sentry MCP伺服器:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
首次使用時會觸發OAuth流程:
$ claude
> 查看Sentry中的错误
🔐 Authentication Required
Sentry MCP server requires OAuth authentication.
Opening browser for authorization...
✓ Authorization successful!
✓ Access token saved securely
Now fetching Sentry errors...
配置檔案(自動生成):
{
"mcpServers": {
"sentry": {
"url": "https://mcp.sentry.dev/mcp",
"transport": "http",
"oauth": {
"authorizationUrl": "https://sentry.io/oauth/authorize",
"tokenUrl": "https://sentry.io/oauth/token",
"clientId": "auto-registered-client-id",
"scopes": ["project:read", "event:read", "event:write"]
}
}
}
}
API金鑰認證
對於不支援OAuth的伺服器,使用API金鑰:
GitHub Personal Access Token:
# 1. 在GitHub创建Personal Access Token
# Settings → Developer settings → Personal access tokens → Generate new token
# 2. 添加到环境变量
claude mcp add github \
-e GITHUB_TOKEN=ghp_your_token_here \
--scope user
Brave Search API Key:
# 1. 在Brave获取API Key
# https://brave.com/search/api/
# 2. 配置到MCP
claude mcp add brave-search \
-e BRAVE_API_KEY=your_api_key \
--scope user
安全最佳實踐
- 使用環境變數而非硬編碼:
// ❌ 不好
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_hardcoded_token_here"
}
}
}
}
// ✅ 好
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
然後在shell配置中設定:
# ~/.bashrc 或 ~/.zshrc
export GITHUB_TOKEN="ghp_your_token_here"
- 使用最小許可權原則:
- GitHub Token只授予必需的許可權
- 資料庫賬號使用只讀許可權
- API金鑰限制訪問範圍
- 定期輪換憑證:
- 定期更新API金鑰
- 使用短期訪問令牌
- 監控異常訪問
- 不要提交敏感資訊到Git:
# .gitignore
.claude/mcp.json
.env
*.key
*.token
實際整合案例
讓我們透過幾個真實案例來看MCP如何提升開發效率。
案例1:使用Sentry MCP除錯生產問題
場景:生產環境出現高頻錯誤,需要快速定位和修復。
步驟1:配置Sentry MCP
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
步驟2:啟動Claude Code並查詢錯誤
用户: 查看production项目中最近24小时错误率最高的3个问题
Claude: [通过Sentry MCP查询]
查询到production项目的高频错误:
1. TypeError: Cannot read property 'user' of undefined
- 文件: src/middleware/auth.js:45
- 发生次数: 1,234次
- 影响用户: 456人
- 首次出现: 18小时前
2. ReferenceError: calculateDiscount is not defined
- 文件: src/services/pricing.js:89
- 发生次数: 678次
- 影响用户: 234人
- 首次出现: 12小时前
3. NetworkError: Request timeout
- 文件: src/api/payment.js:123
- 发生次数: 432次
- 影响用户: 156人
- 首次出现: 6小时前
步驟3:深入分析第一個錯誤
用户: 分析第一个错误的根因
Claude: [调用Sentry Seer AI进行根因分析]
根因分析结果:
问题原因:
auth.js中间件在某些情况下没有正确处理session对象为null的情况。
当用户的session过期但cookie仍然存在时,会触发此错误。
错误堆栈:
1. auth.js:45 - req.session.user访问
2. session.js:23 - session已过期返回null
3. cookie-parser:34 - 解析到过期的session cookie
建议修复:
添加空值检查和session有效性验证
步驟4:檢視相關程式碼並修復
用户: 读取src/middleware/auth.js的内容并修复这个问题
Claude: [读取文件内容并生成修复]
我已经读取了auth.js的代码,问题在第45行:
当前代码:
```javascript
const userId = req.session.user.id;
修复后:
// 檢查session和user物件是否存在
if (!req.session || !req.session.user) {
return res.status(401).json({
error: 'Session expired. Please login again.'
});
}
const userId = req.session.user.id;
是否应用这个修复?
**步驟5:應用修復並驗證**
用户: 是的,请应用修复
Claude: ✓ 已应用修复到src/middleware/auth.js ✓ 添加了session有效性检查 ✓ 添加了友好的错误响应
建议:
- 运行单元测试验证修复
- 在staging环境测试
- 部署后监控Sentry确认错误消失
### 案例2:使用Linear MCP管理開發任務
**場景**:從Linear任務直接生成實現程式碼。
**配置Linear MCP**:
```json
{
"mcpServers": {
"linear": {
"url": "https://mcp.linear.app",
"transport": "http"
}
}
}
工作流演示:
用户: 查看分配给我的高优先级任务
Claude: [通过Linear MCP查询]
你有3个高优先级任务:
1. [PROJ-123] 实现用户头像上传功能
优先级: High
状态: In Progress
描述: 允许用户上传和更新个人头像,支持裁剪和压缩
2. [PROJ-124] 优化首页加载速度
优先级: High
状态: Todo
描述: 首页加载时间超过3秒,需要优化到1秒内
3. [PROJ-125] 修复移动端表单验证
优先级: High
状态: Todo
描述: 移动端表单验证不生效,需要修复
────────────────────────────────────────
用户: 开始实现PROJ-123
Claude: [获取任务详情]
任务PROJ-123详情:
标题: 实现用户头像上传功能
详细需求:
- 支持JPG、PNG格式
- 文件大小限制5MB
- 前端裁剪为正方形
- 自动压缩为200x200
- 上传到S3存储
- 更新用户profile
技术栈:
- React前端
- Node.js后端
- AWS S3存储
我建议按以下步骤实现:
1. 创建前端上传组件
2. 实现图片裁剪和压缩
3. 创建后端API端点
4. 实现S3上传逻辑
5. 更新数据库
开始实现第一步吗?
────────────────────────────────────────
用户: 是的,开始实现
Claude: [创建Avatar上传组件]
✓ 创建 src/components/AvatarUpload.jsx
✓ 添加图片选择功能
✓ 集成react-image-crop裁剪库
✓ 实现预览功能
代码已创建,包含:
- 文件选择和验证
- 图片裁剪界面
- 实时预览
- 上传按钮
下一步创建后端API?
────────────────────────────────────────
[继续实现...]
────────────────────────────────────────
用户: 实现完成,更新Linear任务状态
Claude: [通过Linear MCP更新任务]
✓ PROJ-123状态已更新为 "Done"
✓ 添加了实现说明
✓ 标记为已完成
任务完成摘要:
- 创建了5个新文件
- 修改了3个现有文件
- 添加了单元测试
- 更新了API文档
案例3:結合多個MCP伺服器的綜合工作流
場景:從Figma設計到完整實現的全流程。
用户: 根据Figma设计实现新的产品展示页面
Claude: [检测到需要多个MCP服务器]
这个任务需要:
✓ Figma MCP - 获取设计
✓ GitHub MCP - 访问代码库
✓ Brave Search MCP - 查找最佳实践
✓ Filesystem MCP - 创建文件
开始执行...
步骤1: 从Figma获取设计
[通过Figma MCP读取设计规范]
✓ 获取到布局规范
✓ 提取颜色方案
✓ 导出图标资源
步骤2: 查找React最佳实践
[通过Brave Search查询]
✓ 找到产品展示页面的最佳实践
✓ 了解最新的性能优化技巧
步骤3: 创建组件文件
[通过Filesystem MCP创建]
✓ src/pages/ProductShowcase.jsx
✓ src/components/ProductCard.jsx
✓ src/styles/showcase.css
步骤4: 实现响应式布局
✓ 桌面端布局 (1200px+)
✓ 平板端布局 (768px-1199px)
✓ 移动端布局 (<768px)
步骤5: 优化性能
✓ 图片懒加载
✓ 代码分割
✓ CSS优化
步骤6: 提交代码
[通过GitHub MCP]
✓ 创建feature分支
✓ 提交代码
✓ 创建Pull Request
Pull Request已创建: #234
标题: "实现产品展示页面"
链接: https://github.com/yourorg/repo/pull/234
所有完成!需要我做什么其他的吗?
MCP的實際應用場景
1. 全棧開發
適用工具組合:
- GitHub/Git MCP - 程式碼管理
- PostgreSQL/MongoDB MCP - 資料庫操作
- Sentry MCP - 錯誤監控
- Brave Search MCP - 技術查詢
典型工作流:
需求 → Linear任务
↓
设计 → Figma MCP获取
↓
开发 → Claude Code + 多个MCP
↓
测试 → 自动化测试
↓
部署 → GitHub MCP提交
↓
监控 → Sentry MCP追踪
2. 資料分析
適用工具組合:
- PostgreSQL MCP - 資料查詢
- Brave Search MCP - 外部資料
- Filesystem MCP - 本地資料檔案
應用示例:
用户: 分析最近30天的用户增长趋势
Claude: [通过PostgreSQL MCP查询]
执行查询:
SELECT DATE(created_at) as date,
COUNT(*) as new_users
FROM users
WHERE created_at >= NOW() - INTERVAL '30 days'
GROUP BY DATE(created_at)
ORDER BY date;
结果分析:
- 总新增用户: 1,234
- 日均增长: 41.1人
- 增长趋势: 上升13%
- 峰值日期: 2025-12-15 (89人)
需要我生成可视化图表吗?
3. DevOps自動化
適用工具組合:
- Sentry MCP - 監控告警
- GitHub MCP - 自動修復
- Slack MCP - 通知團隊
自動化流程:
Sentry检测到错误
↓
Claude Code通过Sentry MCP获取详情
↓
分析根因
↓
通过GitHub MCP创建修复PR
↓
通过Slack MCP通知团队
4. 知識管理
適用工具組合:
- Notion MCP - 文件管理
- GitHub MCP - 程式碼文件
- Brave Search MCP - 外部知識
應用示例:
用户: 为新员工创建React开发入门文档
Claude: 我会整合多个来源创建全面的文档:
1. [Brave Search] 最新React最佳实践
2. [GitHub MCP] 我们项目的代码规范
3. [Notion MCP] 现有团队文档
正在生成文档...
✓ 创建了完整的入门指南
✓ 包含代码示例
✓ 添加了项目特定的注意事项
✓ 已保存到Notion
文档链接: notion.so/react-onboarding
常見問題排查
問題1:MCP伺服器無法連線
症狀:
Error: Failed to connect to MCP server "github"
Connection timeout after 30s
排查步驟:
- 檢查配置:
# 查看配置
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 验证JSON格式
python3 -m json.tool claude_desktop_config.json
- 檢查網路:
# 对于HTTP传输,测试URL可访问性
curl https://mcp.sentry.dev/mcp
# 检查代理设置
echo $HTTP_PROXY
echo $HTTPS_PROXY
- 檢查依賴:
# 确保npx可用
npx --version
# 手动运行MCP服务器测试
npx -y @modelcontextprotocol/server-github
- 檢視詳細日誌:
# 启用调试模式
claude --verbose
# 或设置环境变量
export DEBUG=mcp:*
claude
問題2:認證失敗
症狀:
Error: Authentication failed for GitHub MCP server
401 Unauthorized
解決方案:
- 驗證Token有效性:
# 测试GitHub token
curl -H "Authorization: token YOUR_TOKEN" \
https://api.github.com/user
# 测试Brave API key
curl -H "X-Subscription-Token: YOUR_KEY" \
https://api.search.brave.com/res/v1/web/search?q=test
- 檢查Token許可權:
- GitHub需要
repo和read:user許可權 - 確保Token未過期
- 檢查組織訪問許可權
- 重新授權OAuth:
# 删除已保存的token
claude mcp remove sentry
# 重新添加触发新的OAuth流程
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
問題3:環境變數未載入
症狀:
Error: GITHUB_TOKEN is not defined
解決方案:
- 檢查環境變數:
# 查看当前环境变量
echo $GITHUB_TOKEN
# 检查shell配置
cat ~/.bashrc | grep GITHUB_TOKEN
cat ~/.zshrc | grep GITHUB_TOKEN
- 正確設定環境變數:
# 添加到shell配置
echo 'export GITHUB_TOKEN="ghp_your_token"' >> ~/.zshrc
# 重新加载配置
source ~/.zshrc
# 验证
echo $GITHUB_TOKEN
- 在配置中直接設定(僅用於測試):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_actual_token_here"
}
}
}
}
注意:生產環境應使用環境變數而非硬編碼。
問題4:MCP伺服器響應慢
症狀:
MCP server response time: 15s (expected < 3s)
最佳化方案:
- 使用本地快取:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"CACHE_TTL": "300"
}
}
}
}
- 選擇合適的傳輸方式:
- 本地伺服器:使用STDIO(更快)
- 遠端伺服器:使用HTTP + SSE(支援流式)
- 限制查詢範圍:
❌ "分析所有仓库的所有issues"
✅ "分析react-app仓库最近7天的issues"
問題5:許可權錯誤
症狀:
Error: Permission denied: /path/to/file
Filesystem MCP server cannot access this location
解決方案:
- 檢查檔案系統配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/allowed/path1",
"/allowed/path2"
]
}
}
}
- 新增訪問路徑:
# 重新配置包含需要的路径
claude mcp remove filesystem
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path1 /path2 /path3
- 檢查檔案許可權:
# 确保文件可读
ls -la /path/to/file
# 修改权限(如需要)
chmod +r /path/to/file
問題6:版本不相容
症狀:
Error: MCP protocol version mismatch
Server: v1.0, Client: v0.9
解決方案:
- 更新Claude Code:
# 检查版本
claude --version
# 更新到最新版
npm install -g @anthropic/claude-code@latest
- 更新MCP伺服器:
# 清除npx缓存
npx clear-npx-cache
# 强制使用最新版本
npx -y @modelcontextprotocol/server-github@latest
- 鎖定版本(如需要):
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github@1.0.0"
]
}
}
}
除錯技巧
- 啟用詳細日誌:
export DEBUG=mcp:*
export MCP_LOG_LEVEL=debug
claude --verbose
- 單獨測試MCP伺服器:
# 直接运行服务器
npx -y @modelcontextprotocol/server-github
# 应该看到服务器启动信息
- 使用MCP Inspector(即將推出):
# MCP调试工具
claude mcp inspect github
- 檢視Claude Code日誌:
# macOS
tail -f ~/Library/Logs/Claude/mcp.log
# Linux
tail -f ~/.local/share/Claude/logs/mcp.log
最佳實踐建議
1. 合理組織MCP伺服器
按使用頻率和作用域組織:
使用者級(常用工具):
claude mcp add brave-search --scope user
claude mcp add github --scope user
專案級(團隊共享):
claude mcp add sentry --scope project
claude mcp add postgres --scope project
本地級(敏感配置):
claude mcp add database --scope local
2. 安全管理憑證
# 使用密钥管理工具
# macOS Keychain
security add-generic-password \
-a "$USER" \
-s "github_token" \
-w "ghp_your_token"
# 在配置中引用
export GITHUB_TOKEN=$(security find-generic-password \
-a "$USER" \
-s "github_token" \
-w)
3. 監控MCP使用情況
# 定期审查配置
claude mcp list
# 删除不用的服务器
claude mcp remove unused-server
4. 文件化團隊配置
在專案的 README.md 中記錄:
## MCP服务器配置
本项目使用以下MCP服务器:
1. **Sentry** - 错误监控
```bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
- PostgreSQL - 数据库访问
claude mcp add postgres \
-e POSTGRES_URL="postgresql://localhost:5432/db" \
--scope project
## 下一步探索
掌握MCP整合後,你可以:
1. **探索更多MCP伺服器**
- [官方MCP伺服器倉庫](https://github.com/modelcontextprotocol/servers)
- [社羣MCP伺服器列表](https://github.com/punkpeye/awesome-mcp-servers)
2. **開發自定義MCP伺服器**
- 檢視 [MCP協議規範](https://modelcontextprotocol.io/specification)
- 學習 [開發自定義伺服器](/claude-code/03-高階特性/custom-mcp)
3. **深入實戰應用**
- [使用MCP構建AI工作流](/claude-code/04-實戰案例/mcp-workflows)
- [企業級MCP部署](/claude-code/05-最佳實踐/enterprise-mcp)
## 總結
MCP是Claude Code生態的核心擴充套件機制:
✅ **標準化整合** - 統一協議,廣泛相容
✅ **安全認證** - OAuth 2.1支援,保護資料
✅ **豐富生態** - 數百個現成MCP伺服器
✅ **易於配置** - CLI嚮導和配置檔案
✅ **實際價值** - 顯著提升開發效率
合理配置和使用MCP伺服器,Claude Code就能成為連線整個開發工具鏈的智慧中樞。
## 參考資源
### 官方文件
- [Model Context Protocol官方網站](https://modelcontextprotocol.io/)
- [Claude Code MCP文件](https://code.claude.com/docs/en/mcp)
- [MCP規範](https://modelcontextprotocol.io/specification)
### MCP伺服器
- [官方MCP伺服器集合](https://github.com/modelcontextprotocol/servers)
- [Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers)
- [Sentry MCP文件](https://docs.sentry.io/product/sentry-mcp/)
- [Brave Search MCP](https://github.com/brave/brave-search-mcp-server)
### 教程和指南
- [MCP配置最佳實踐](https://scottspence.com/posts/configuring-mcp-tools-in-claude-code)
- [新增MCP伺服器到Claude Code](https://mcpcat.io/guides/adding-an-mcp-server-to-claude-code/)
- [MCP與OAuth整合](https://stytch.com/blog/oauth-for-mcp-explained-with-a-real-world-example/)
---
**延伸閱讀**:
- [CLAUDE.md配置](/claude-code/03-高階特性/claude-md)
- [自定義MCP伺服器開發](/claude-code/03-高階特性/custom-mcp)
- [Slash命令系統](/claude-code/02-核心功能/slash-commands)