MCP工具集成
MCP(Model Context Protocol)是Claude Code连接外部工具和数据的桥梁。通过MCP,Claude可以获得实时数据、操作外部系统、扩展其能力边界。
什么是MCP?
概念解释
Claude Code ──── MCP协议 ──── 外部工具/服务
│ │
│ 标准化接口 │ GitHub、数据库、
│ 双向通信 │ Figma、Slack...
↓ ↓MCP是一个开源标准协议,类似于"AI的USB-C接口",让AI能够:
- 读取外部数据源
- 调用外部API
- 执行外部操作
为什么需要MCP?
| 没有MCP | 有MCP |
|---|---|
| Claude知识截止于训练时间 | 可获取实时信息 |
| 无法访问私有数据 | 可连接数据库、内部系统 |
| 只能生成代码 | 可以直接执行操作 |
| 隔离的工具 | 统一的工具生态 |
添加MCP服务器
方式一:CLI向导(推荐新手)
bash
claude mcp add <server-name>示例:
bash
# 添加GitHub MCP
claude mcp add github
# 添加PostgreSQL MCP
claude mcp add postgres
# 添加文件系统MCP
claude mcp add filesystem方式二:JSON配置(高级用户)
直接编辑配置文件:
json
// .claude.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
}
}
}方式三:add-json命令
bash
claude mcp add-json custom-server '{
"command": "node",
"args": ["./custom-mcp-server.js"],
"env": {
"API_KEY": "your-api-key"
}
}'配置作用域
MCP服务器可以配置在三个层级:
| 作用域 | 位置 | 适用场景 |
|---|---|---|
| User | ~/.claude.json | 个人工具,所有项目可用 |
| Local | ./.claude.json | 仅当前项目 |
| Project | ./.claude.json(提交到Git) | 团队共享 |
指定作用域
bash
# 用户级(全局)
claude mcp add github -s user
# 本地级(当前项目)
claude mcp add postgres -s local
# 项目级(团队共享)
claude mcp add figma -s project常用MCP服务器
GitHub集成
bash
claude mcp add github功能:
- 查看和管理Issues
- 创建和管理Pull Requests
- 搜索代码仓库
- 查看提交历史
使用示例:
你:列出我的开源项目中待处理的Issues
Claude:我来查询你的GitHub仓库...
[调用GitHub MCP]
找到以下待处理Issues:
1. Issue #42: 添加暗黑模式支持
2. Issue #38: 性能优化建议
...PostgreSQL数据库
bash
claude mcp add postgres配置环境变量:
bash
export DATABASE_URL="postgresql://user:password@localhost:5432/mydb"使用示例:
你:查询最近一周注册的用户
Claude:执行数据库查询...
[调用Postgres MCP]
查询结果:
| id | username | email | created_at |
|----|----------|-------|------------|
| 101 | user_a | a@example.com | 2024-01-15 |
| 102 | user_b | b@example.com | 2024-01-16 |Figma设计集成
bash
claude mcp add figma使用示例:
你:根据Figma中的登录页面设计,更新我们的Login组件
Claude:让我获取Figma设计...
[调用Figma MCP]
设计规格:
- 主色:#3B82F6
- 按钮圆角:8px
- 输入框高度:48px
正在更新 src/components/Login.tsx...Puppeteer浏览器自动化
bash
claude mcp add puppeteer使用示例:
你:访问localhost:3000并截图登录页面
Claude:启动浏览器...
[调用Puppeteer MCP]
导航到 localhost:3000...
截图已保存到 screenshots/login.pngSlack集成
bash
claude mcp add slack使用示例:
你:发送今天的部署总结到#engineering频道
Claude:准备发送消息...
[调用Slack MCP]
消息已发送到 #engineering:
"今日部署完成 ✅
- 修复了3个bug
- 新增用户导出功能
- 性能提升15%"文件系统扩展
bash
claude mcp add filesystem扩展文件操作能力,支持:
- 搜索文件内容
- 批量文件操作
- 文件监控
MCP服务器列表
官方服务器
| 服务器 | 功能 | 安装命令 |
|---|---|---|
| github | GitHub操作 | claude mcp add github |
| postgres | PostgreSQL查询 | claude mcp add postgres |
| sqlite | SQLite查询 | claude mcp add sqlite |
| filesystem | 文件系统操作 | claude mcp add filesystem |
| puppeteer | 浏览器自动化 | claude mcp add puppeteer |
| brave-search | 网页搜索 | claude mcp add brave-search |
社区服务器
| 服务器 | 功能 |
|---|---|
| figma | Figma设计集成 |
| slack | Slack消息发送 |
| jira | Jira项目管理 |
| sentry | 错误监控集成 |
| notion | Notion文档操作 |
更多服务器:github.com/modelcontextprotocol/servers
管理MCP服务器
查看已配置的服务器
bash
claude mcp list查看服务器详情
bash
claude mcp get github删除服务器
bash
claude mcp remove github从Claude Desktop导入
如果你在Claude Desktop中配置过MCP:
bash
claude mcp add-from-claude-desktop调试MCP
启用调试模式
bash
claude --mcp-debug常见问题
问题:MCP服务器无法连接
bash
# 检查服务器状态
claude mcp get <server-name>
# 查看详细日志
claude --mcp-debug
# 检查环境变量
echo $GITHUB_TOKEN问题:Token限制
bash
# 增加MCP输出Token限制
export MAX_MCP_OUTPUT_TOKENS=50000
claude问题:超时
bash
# 设置超时时间
export MCP_TIMEOUT=60
claude创建自定义MCP服务器
如果你需要连接自定义系统,可以创建自己的MCP服务器:
typescript
// custom-mcp-server.ts
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new Server({
name: 'custom-server',
version: '1.0.0'
}, {
capabilities: {
tools: {}
}
});
// 定义工具
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{
name: 'custom_query',
description: '执行自定义查询',
inputSchema: {
type: 'object',
properties: {
query: { type: 'string', description: '查询语句' }
},
required: ['query']
}
}]
}));
// 处理工具调用
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'custom_query') {
// 实现你的逻辑
return { content: [{ type: 'text', text: '结果...' }] };
}
});
// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);最佳实践
1. 安全管理凭证
bash
# 不要硬编码API密钥
# 使用环境变量
export GITHUB_TOKEN=$(cat ~/.secrets/github-token)
# 或使用密钥管理工具
export API_KEY=$(op read "op://vault/api-key")2. 合理配置作用域
个人工具 → User作用域
项目专用 → Local作用域
团队共享 → Project作用域3. 控制服务器数量
建议同时启用的MCP服务器不超过10个
过多的服务器会增加上下文消耗下一步
学会了MCP集成后,继续学习 Hooks自动化机制。