MCP(Model Context Protocol)是一个开源标准,用于 AI 工具集成。通过 MCP 服务器,Claude Code 可以连接到外部工具和数据源,包括数据库、API 和各种服务。
本文基于 Claude的官方文档 介绍如何在 Claude Code 中配置和管理 MCP 服务器。
MCP 能做什么
配置 MCP 服务器后,可以让 Claude Code 执行:
- 从问题跟踪器实现功能:“添加 JIRA 问题 ENG-4521 中描述的功能并在 GitHub 上创建 PR”
- 分析监控数据:“检查 Sentry 查看 ENG-4521 功能的错误情况”
- 查询数据库:“根据 PostgreSQL 数据库查找 10 个使用该功能的用户邮箱”
- 集成设计:“根据 Slack 中发布的新 Figma 设计更新邮件模板”
安装 MCP 服务器
方法一:添加远程 HTTP 服务器(推荐)
HTTP 服务器是连接远程 MCP 服务器的推荐选项。
# 基本语法
claude mcp add --transport http <name> <url>
# 示例:连接到 Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp
# 带 Bearer token 的示例
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"方法二:添加本地 stdio 服务器
stdio 服务器作为本地进程运行,适合需要直接系统访问或自定义脚本的工具。
# 基本语法
claude mcp add --transport stdio <name> -- <command> [args...]
# 示例:添加时间服务器
claude mcp add --transport stdio time -- npx -y @anthropic/mcp-server-time
# 带环境变量的示例
claude mcp add --transport stdio airtable --env AIRTABLE_API_KEY=YOUR_KEY \
-- npx -y airtable-mcp-server关于
-- 参数:双破折号分隔 Claude 的 CLI 标志和传递给 MCP 服务器的命令。-- 之前的是 Claude 的选项(如 --env、--scope),之后的是运行 MCP 服务器的实际命令。Windows 用户注意:在原生 Windows(非 WSL)上,使用 npx 的本地 MCP 服务器需要 cmd /c 包装器:
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package方法三:从 JSON 配置添加
# 添加 HTTP 服务器
claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp"}'
# 添加 stdio 服务器
claude mcp add-json local-tool '{"type":"stdio","command":"/path/to/tool","args":["--config","config.json"]}'管理命令
# 列出所有配置的服务器
claude mcp list
# 获取特定服务器的详细信息
claude mcp get github
# 移除服务器
claude mcp remove github配置作用域(Scope)
MCP 服务器可以在三个不同的作用域级别配置:
Local 作用域(默认)
- 存储位置:
~/.claude.json(在项目路径下) - 访问范围:仅对在当前项目目录中可见
- 适用场景:个人开发服务器、实验性配置或包含敏感凭据的服务器
# 添加 local 作用域服务器(默认)
claude mcp add --transport http stripe https://mcp.stripe.com
# 显式指定
claude mcp add --transport http stripe --scope local https://mcp.stripe.comProject 作用域
- 存储位置:项目根目录的
.mcp.json文件 - 版本控制:可以提交到版本控制系统
- 安全性:使用前需要用户批准
claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp.mcp.json 文件格式:
{
"mcpServers": {
"shared-server": {
"command": "/path/to/server",
"args": [],
"env": {}
}
}
}重置项目批准选择:
claude mcp reset-project-choicesUser 作用域
- 存储位置:
~/.claude.json - 访问范围:跨所有项目可用,但仅当前用户账户私有
- 适用场景:跨项目频繁使用的个人工具
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic作用域优先级
当同名服务器存在于多个作用域时,优先级为:
- Local 作用域(最高)
- Project 作用域
- User 作用域(最低)
环境变量扩展
Claude Code 在 .mcp.json 文件中支持环境变量扩展:
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
}
}
}
}支持的语法:
${VAR}- 扩展为环境变量 VAR 的值${VAR:-default}- 如果 VAR 未设置,则使用默认值
可扩展的位置:command、args、env、url、headers
OAuth 2.0 认证
许多云端 MCP 服务器需要认证:
# 1. 添加需要认证的服务器
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# 2. 在 Claude Code 中使用 /mcp 命令进行认证
> /mcp认证令牌会安全存储并自动刷新。使用 /mcp 菜单中的 “Clear authentication” 可撤销访问。
MCP 资源引用
使用 @ 提及引用 MCP 服务器提供的资源:
# 分析 GitHub 问题
> Can you analyze @github:issue://123 and suggest a fix?
# 查看 API 文档
> Please review the API documentation at @docs:file://api/authentication
# 比较多个资源
> Compare @postgres:schema://users with @docs:file://database/user-modelMCP 提示词(prompts)作为斜杠命令
MCP 服务器可以暴露提示词,这些提示词会成为 Claude Code 中的斜杠命令:
# 无参数执行
> /mcp__github__list_prs
# 带参数执行
> /mcp__github__pr_review 456
> /mcp__jira__create_issue "Bug in login flow" high将 Claude Code 用作 MCP 服务器
Claude Code 本身也可以作为 MCP 服务器供其他应用使用:
claude mcp serve在其他使用MCP服务器的工具中,例如 Claude Desktop 中配置(claude_desktop_config.json):
{
"mcpServers": {
"claude-code": {
"type": "stdio",
"command": "claude",
"args": ["mcp", "serve"],
"env": {}
}
}
}MCP 输出限制
- 输出警告阈值:10,000 tokens
- 默认最大限制:25,000 tokens
配置更高限制:
export MAX_MCP_OUTPUT_TOKENS=50000
claude配置MCP服务器启动超时:
MCP_TIMEOUT=10000 claude实用示例
示例 1:使用 Sentry 监控错误
# 1. 添加 Sentry MCP 服务器
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# 2. 使用 /mcp 进行认证
> /mcp
# 3. 调试生产问题
> "What are the most common errors in the last 24 hours?"
> "Show me the stack trace for error ID abc123"示例 2:查询 PostgreSQL 数据库
# 1. 添加数据库服务器
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://readonly:password@host:5432/analytics"
# 2. 自然语言查询
> "What's our total revenue this month?"
> "Show me the schema for the orders table"安全警告
使用 MCP 服务器时需注意以下安全事项:
- 来源可信:仅安装来自可信来源的 MCP 服务器
- 权限最小化:为数据库等敏感服务使用只读凭据,避免授予不必要的权限
- 提示词注入:处理外部内容的 MCP 服务器可能被用于注入恶意指令,需保持警惕