通过 MCP 将 Claude Code 连接到工具
了解如何使用 Model Context Protocol 将 Claude Code 连接到您的工具。
Claude Code 可以通过 Model Context Protocol (MCP) 连接到数百个外部工具和数据源,这是一个用于 AI 工具集成的开源标准。MCP 服务器为 Claude Code 提供对您的工具、数据库和 API 的访问。
您可以使用 MCP 做什么
连接 MCP 服务器后,您可以要求 Claude Code:
- 从问题跟踪器实现功能:"添加 JIRA 问题 ENG-4521 中描述的功能,并在 GitHub 上创建 PR。"
- 分析监控数据:"检查 Sentry 和 Statsig 以查看 ENG-4521 中描述功能的使用情况。"
- 查询数据库:"根据我们的 Postgres 数据库,找到 10 个使用功能 ENG-4521 的随机用户的电子邮件。"
- 集成设计:"根据在 Slack 中发布的新 Figma 设计更新我们的标准电子邮件模板"
- 自动化工作流程:"创建 Gmail 草稿,邀请这 10 个用户参加关于新功能的反馈会议。"
热门 MCP 服务器
以下是一些您可以连接到 Claude Code 的常用 MCP 服务器:
⚠️ 警告: 使用第三方 MCP 服务器需要您自担风险 - Anthropic 未验证 所有这些服务器的正确性或安全性。 确保您信任正在安装的 MCP 服务器。 在使用可能获取不受信任内容的 MCP 服务器时要特别小心, 因为这些可能会使您面临提示注入风险。
ℹ️ 注意: 需要特定集成? 在 GitHub 上找到数百个更多的 MCP 服务器,或使用 MCP SDK 构建您自己的。
安装 MCP 服务器
根据您的需求,MCP 服务器可以通过三种不同的方式配置:
选项 1:添加本地 stdio 服务器
Stdio 服务器作为本地进程在您的机器上运行。它们非常适合需要直接系统访问或自定义脚本的工具。
# 基本语法
claude mcp add <name> <command> [args...]
# 实际示例:添加 Airtable 服务器
claude mcp add airtable --env AIRTABLE_API_KEY=YOUR_KEY \
-- npx -y airtable-mcp-server
ℹ️ 注意: 理解 "--" 参数:
--
(双破折号)将 Claude 自己的 CLI 标志与传递给 MCP 服务器的命令和参数分开。--
之前的所有内容都是 Claude 的选项(如--env
、--scope
),--
之后的所有内容都是运行 MCP 服务器的实际命令。
例如:
claude mcp add myserver -- npx server
→ 运行npx server
claude mcp add myserver --env KEY=value -- python server.py --port 8080
→ 在环境中使用KEY=value
运行python server.py --port 8080
这可以防止 Claude 的标志与服务器标志之间的冲突。
选项 2:添加远程 SSE 服务器
SSE(服务器发送事件)服务器提供实时流连接。许多云服务使用此功能进行实时更新。
# 基本语法
claude mcp add --transport sse <name> <url>
# 实际示例:连接到 Linear
claude mcp add --transport sse linear https://mcp.linear.app/sse
# 带身份验证标头的示例
claude mcp add --transport sse private-api https://api.company.com/mcp \
--header "X-API-Key: your-key-here"
选项 3:添加远程 HTTP 服务器
HTTP 服务器使用标准的请求/响应模式。大多数 REST API 和 Web 服务使用此传输方式。
# 基本语法
claude mcp add --transport http <name> <url>
# 实际示例:连接到 Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp
# 带 Bearer 令牌的示例
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"
管理您的服务器
配置完成后,您可以使用以下命令管理您的 MCP 服务器:
# 列出所有配置的服务器
claude mcp list
# 获取特定服务器的详细信息
claude mcp get github
# 删除服务器
claude mcp remove github
# (在 Claude Code 中)检查服务器状态
/mcp
💡 提示:>
提示:
- 使用
--scope
标志指定配置存储位置:local
(默认):仅在当前项目中对您可用(在旧版本中称为project
)project
:通过.mcp.json
文件与项目中的每个人共享user
:在所有项目中对您可用(在旧版本中称为global
)
- 使用
--env
标志设置环境变量(例如,--env KEY=value
) - 使用 MCP_TIMEOUT 环境变量配置 MCP 服务器启动超时(例如,
MCP_TIMEOUT=10000 claude
设置 10 秒超时) - 使用
/mcp
与需要 OAuth 2.0 身份验证的远程服务器进行身份验证
⚠️ 警告: Windows 用户:在原生 Windows(非 WSL)上,使用
npx
的本地 MCP 服务器需要cmd /c
包装器以确保正确执行。
# 这创建了 Windows 可以执行的 command="cmd"
claude mcp add my-server -- cmd /c npx -y @some/package
没有 cmd /c
包装器,您会遇到"连接关闭"错误,因为 Windows 无法直接执行 npx
。(有关 --
参数的解释,请参见上面的注释。)
MCP 安装范围
MCP 服务器可以在三个不同的范围级别配置,每个级别都有不同的目的来管理服务器可访问性和共享。了解这些范围有助于您确定为特定需求配置服务器的最佳方式。
本地范围
本地范围的服务器代表默认配置级别,存储在您的项目特定用户设置中。这些服务器对您保持私有,只有在当前项目目录中工作时才可访问。此范围非常适合个人开发服务器、实验性配置或包含不应共享的敏感凭据的服务器。
# 添加本地范围的服务器(默认)
claude mcp add my-private-server /path/to/server
# 明确指定本地范围
claude mcp add my-private-server --scope local /path/to/server
项目范围
项目范围的服务器通过将配置存储在项目根目录的 .mcp.json
文件中来实现团队协作。此文件设计为检入版本控制,确保所有团队成员都可以访问相同的 MCP 工具和服务。当您添加项目范围的服务器时,Claude Code 会自动创建或更新此文件,使用适当的配置结构。
# 添加项目范围的服务器
claude mcp add shared-server --scope project /path/to/server
生成的 .mcp.json
文件遵循标准化格式:
{
"mcpServers": {
"shared-server": {
"command": "/path/to/server",
"args": [],
"env": {}
}
}
}
出于安全原因,Claude Code 在使用来自 .mcp.json
文件的项目范围服务器之前会提示批准。如果您需要重置这些批准选择,请使用 claude mcp reset-project-choices
命令。
用户范围
用户范围的服务器提供跨项目可访问性,使它们在您机器上的所有项目中都可用,同时对您的用户帐户保持私有。此范围适用于个人实用程序服务器、开发工具或您在不同项目中经常使用的服务。
# 添加用户服务器
claude mcp add my-user-server --scope user /path/to/server
选择正确的范围
根据以下条件选择您的范围:
- 本地范围:个人服务器、实验性配置或特定于一个项目的敏感凭据
- 项目范围:团队共享服务器、项目特定工具或协作所需的服务
- 用户范围:多个项目需要的个人实用程序、开发工具或经常使用的服务
范围层次结构和优先级
MCP 服务器配置遵循清晰的优先级层次结构。当多个范围中存在同名服务器时,系统通过首先优先考虑本地范围的服务器,然后是项目范围的服务器,最后是用户范围的服务器来解决冲突。这种设计确保个人配置可以在需要时覆盖共享配置。
.mcp.json
中的环境变量扩展
Claude Code 支持在 .mcp.json
文件中进行环境变量扩展,允许团队共享配置,同时保持机器特定路径和 API 密钥等敏感值的灵活性。
支持的语法:
${VAR}
- 扩展为环境变量VAR
的值${VAR:-default}
- 如果设置了VAR
则扩展为VAR
,否则使用default
扩展位置: 环境变量可以在以下位置扩展:
command
- 服务器可执行文件路径args
- 命令行参数env
- 传递给服务器的环境变量url
- 用于 SSE/HTTP 服务器类型headers
- 用于 SSE/HTTP 服务器身份验证
带变量扩展的示例:
{
"mcpServers": {
"api-server": {
"type": "sse",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
}
}
}
}
如果未设置所需的环境变量且没有默认值,Claude Code 将无法解析配置。
实际示例
{/* These are commented out while waiting for approval in https://anthropic.slack.com/archives/C08R8A6SZEX/p1754320373845919. I'm expecting/hoping to get this approval soon, so keeping this here for easy uncommenting. Reviewer: feel free to just delete this if you'd prefer. */}
{/* ### Example: Connect to GitHub for code reviews
# 1. Add the GitHub MCP server
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
# 2. In Claude Code, authenticate if needed
> /mcp
# Select "Authenticate" for GitHub
# 3. Now you can ask Claude to work with GitHub
> "Review PR #456 and suggest improvements"
> "Create a new issue for the bug we just found"
> "Show me all open PRs assigned to me"
💡 提示:>
Tips:
- Also see the GitHub Actions integration to run this automatically.
- If you have the GitHub CLI installed, you might prefer using it directly with Claude Code's bash tool instead of the MCP server for some operations.
Example: Query your PostgreSQL database
# 1. Add the database server with your connection string
claude mcp add db -- npx -y @bytebase/dbhub \
--dsn "postgresql://readonly:[email protected]:5432/analytics"
# 2. Query your database naturally
> "What's our total revenue this month?"
> "Show me the schema for the orders table"
> "Find customers who haven't made a purchase in 90 days"
``` */}
### 示例:使用 Sentry 监控错误
```bash
# 1. 添加 Sentry MCP 服务器
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# 2. 使用 /mcp 与您的 Sentry 帐户进行身份验证
> /mcp
# 3. 调试生产问题
> "过去 24 小时内最常见的错误是什么?"
> "显示错误 ID abc123 的堆栈跟踪"
> "哪个部署引入了这些新错误?"
{/* ### Example: Automate browser testing with Playwright
# 1. Add the Playwright MCP server
claude mcp add playwright -- npx -y @playwright/mcp@latest
# 2. Write and run browser tests
> "Test if the login flow works with [email protected]"
> "Take a screenshot of the checkout page on mobile"
> "Verify that the search feature returns results"
``` */}
## 与远程 MCP 服务器进行身份验证
许多基于云的 MCP 服务器需要身份验证。Claude Code 支持 OAuth 2.0 进行安全连接。
1. **添加需要身份验证的服务器**
例如:
```bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
在 Claude Code 中使用 /mcp 命令
在 Claude Code 中,使用命令:
> /mcp
然后按照浏览器中的步骤登录。
💡 提示:>
提示:
- 身份验证令牌安全存储并自动刷新
- 在
/mcp
菜单中使用"清除身份验证"来撤销访问 - 如果您的浏览器没有自动打开,请复制提供的 URL
- OAuth 身份验证适用于 SSE 和 HTTP 传输
从 JSON 配置添加 MCP 服务器
如果您有 MCP 服务器的 JSON 配置,可以直接添加:
从 JSON 添加 MCP 服务器
bash# 基本语法 claude mcp add-json <name> '<json>' # 示例:使用 JSON 配置添加 stdio 服务器 claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
验证服务器已添加
bashclaude mcp get weather-api
💡 提示:>
提示:
- 确保 JSON 在您的 shell 中正确转义
- JSON 必须符合 MCP 服务器配置架构
- 您可以使用
--scope user
将服务器添加到您的用户配置而不是项目特定配置
从 Claude Desktop 导入 MCP 服务器
如果您已经在 Claude Desktop 中配置了 MCP 服务器,可以导入它们:
从 Claude Desktop 导入服务器
bash# 基本语法 claude mcp add-from-claude-desktop
选择要导入的服务器
运行命令后,您将看到一个交互式对话框,允许您选择要导入的服务器。
验证服务器已导入
bashclaude mcp list
💡 提示:>
提示:
- 此功能仅在 macOS 和 Windows Subsystem for Linux (WSL) 上有效
- 它从这些平台上的标准位置读取 Claude Desktop 配置文件
- 使用
--scope user
标志将服务器添加到您的用户配置 - 导入的服务器将具有与 Claude Desktop 中相同的名称
- 如果已存在同名服务器,它们将获得数字后缀(例如,
server_1
)
将 Claude Code 用作 MCP 服务器
您可以将 Claude Code 本身用作其他应用程序可以连接的 MCP 服务器:
# 将 Claude 启动为 stdio MCP 服务器
claude mcp serve
您可以通过将此配置添加到 claude_desktop_config.json 在 Claude Desktop 中使用此功能:
{
"mcpServers": {
"claude-code": {
"command": "claude",
"args": ["mcp", "serve"],
"env": {}
}
}
}
💡 提示:>
提示:
- 服务器提供对 Claude 工具的访问,如 View、Edit、LS 等。
- 在 Claude Desktop 中,尝试要求 Claude 读取目录中的文件、进行编辑等。
- 请注意,此 MCP 服务器只是将 Claude Code 的工具暴露给您的 MCP 客户端,因此您自己的客户端负责为各个工具调用实现用户确认。
使用 MCP 资源
MCP 服务器可以公开资源,您可以使用 @ 提及来引用这些资源,类似于引用文件的方式。
引用 MCP 资源
列出可用资源
在您的提示中键入
@
以查看所有连接的 MCP 服务器的可用资源。资源与文件一起出现在自动完成菜单中。引用特定资源
使用格式
@server:protocol://resource/path
引用资源:> 您能分析 @github:issue://123 并建议修复吗?
> 请查看 @docs:file://api/authentication 的 API 文档
多个资源引用
您可以在单个提示中引用多个资源:
> 比较 @postgres:schema://users 与 @docs:file://database/user-model
💡 提示:>
提示:
- 引用时资源会自动获取并作为附件包含
- 资源路径在 @ 提及自动完成中可进行模糊搜索
- 当服务器支持时,Claude Code 会自动提供列出和读取 MCP 资源的工具
- 资源可以包含 MCP 服务器提供的任何类型的内容(文本、JSON、结构化数据等)
将 MCP 提示用作斜杠命令
MCP 服务器可以公开提示,这些提示在 Claude Code 中作为斜杠命令可用。
执行 MCP 提示
发现可用提示
键入
/
查看所有可用命令,包括来自 MCP 服务器的命令。MCP 提示以格式/mcp__servername__promptname
出现。执行不带参数的提示
> /mcp__github__list_prs
执行带参数的提示
许多提示接受参数。在命令后用空格分隔传递它们:
> /mcp__github__pr_review 456
> /mcp__jira__create_issue "登录流程中的错误" high
💡 提示:>
提示:
- MCP 提示从连接的服务器动态发现
- 参数根据提示定义的参数进行解析
- 提示结果直接注入到对话中
- 服务器和提示名称已标准化(空格变为下划线)