通过 Model Context Protocol (MCP) 将 Claude Code 连接到外部数据源和服务,扩展其能力边界。
什么是 MCP
Model Context Protocol (MCP) 是 Anthropic 推出的开放标准,用于将 AI 工具连接到外部数据源。通过 MCP,Claude Code 可以:
- 读取 Google Drive 中的设计文档
- 更新 Jira 中的工单
- 从 Slack 拉取消息和数据
- 访问自定义的内部工具和数据
MCP 的工作原理
MCP 使用客户端-服务器架构:
- MCP 服务器:运行在后台的服务,提供特定的工具或数据源
- MCP 客户端:Claude Code 内置,连接 MCP 服务器
Claude 通过 MCP 协议发现可用的工具,并在需要时调用它们。
配置 MCP
配置文件位置
MCP 配置在 .claude/mcp.json 中:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/data"]
}
}
}
添加新的 MCP 服务器
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-..."
}
}
}
}
常用的 MCP 服务器
| MCP 服务器 | 功能 |
|---|---|
| GitHub | 搜索仓库、查看 issue、创建 PR |
| Slack | 搜索消息、发送通知 |
| Google Drive | 搜索和读取文档 |
| PostgreSQL | 查询数据库 |
| 文件系统 | 读写特定目录的文件 |
MCP 上下文成本
每个 MCP 服务器都会向 Claude 注册一组工具定义,这些定义会占用上下文窗口。对于有多个服务器的情况:
- MCP 工具定义默认延迟加载——只有工具名称出现在上下文中
- 当 Claude 决定使用某个工具时,完整定义才会加载
- 运行
/mcp可以查看每个服务器的上下文占用
管理多个 MCP 服务器
如果你有多个 MCP 服务器,上下文成本可能会累积。建议:
- 只安装真正需要的服务器
- 定期运行
/mcp检查上下文占用 - 移除不再使用的服务器
创建自定义 MCP 服务器
你可以创建自己的 MCP 服务器来连接内部工具:
- 实现 MCP 协议的服务器端
- 定义可用的工具及其输入 schema
- 在
mcp.json中配置启动命令
详见插件开发了解如何创建自定义工具。
安全注意事项
- MCP 服务器有 Claude 相同的权限——确保只授予必要的访问权限
- 不要在配置文件中硬编码密钥——使用环境变量
- 审查第三方 MCP 服务器的代码,确保它不会执行危险操作