Skip to content

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 | [email protected] | 2024-01-15 |
| 102 | user_b | [email protected] | 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.png

Slack集成

bash
claude mcp add slack

使用示例:

你:发送今天的部署总结到#engineering频道

Claude:准备发送消息...
[调用Slack MCP]

消息已发送到 #engineering:
"今日部署完成 ✅
- 修复了3个bug
- 新增用户导出功能
- 性能提升15%"

文件系统扩展

bash
claude mcp add filesystem

扩展文件操作能力,支持:

  • 搜索文件内容
  • 批量文件操作
  • 文件监控

MCP服务器列表

官方服务器

服务器功能安装命令
githubGitHub操作claude mcp add github
postgresPostgreSQL查询claude mcp add postgres
sqliteSQLite查询claude mcp add sqlite
filesystem文件系统操作claude mcp add filesystem
puppeteer浏览器自动化claude mcp add puppeteer
brave-search网页搜索claude mcp add brave-search

社区服务器

服务器功能
figmaFigma设计集成
slackSlack消息发送
jiraJira项目管理
sentry错误监控集成
notionNotion文档操作

更多服务器: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自动化机制