12.1 添加 MCP 服务器

5 分钟阅读

学习如何添加不同类型的 MCP 服务器到 Claude Code。

添加远程 HTTP 服务器#

HTTP 服务器是连接到远程 MCP 服务器的推荐选项。

基本语法#

bash
claude mcp add --transport http <name> <url>

示例:连接到 Notion#

bash
claude mcp add --transport http notion https://mcp.notion.com/mcp

带身份验证的示例#

bash
# Bearer 令牌 claude mcp add --transport http secure-api https://api.example.com/mcp \ --header "Authorization: Bearer your-token" # API 密钥 claude mcp add --transport http api https://api.example.com/mcp \ --header "X-API-Key: your-api-key"

带多个标头的示例#

bash
claude mcp add --transport http custom-api https://api.example.com/mcp \ --header "Authorization: Bearer your-token" \ --header "X-Custom-Header: custom-value"

添加远程 SSE 服务器#

SSE(Server-Sent Events)传输已弃用,请在可用的地方使用 HTTP 服务器。

基本语法#

bash
claude mcp add --transport sse <name> <url>

示例:连接到 Asana#

bash
claude mcp add --transport sse asana https://mcp.asana.com/sse

带身份验证的示例#

bash
claude mcp add --transport sse private-api https://api.company.com/sse \ --header "X-API-Key: your-key-here"

添加本地 stdio 服务器#

Stdio 服务器作为本地进程在您的计算机上运行。

基本语法#

bash
claude mcp add --transport stdio <name> <command> [args...]

示例:添加 Airtable 服务器#

bash
claude mcp add --transport stdio airtable --env AIRTABLE_API_KEY=YOUR_KEY \ -- npx -y airtable-mcp-server

示例:添加数据库服务器#

bash
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \ --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

示例:添加 Python 服务器#

bash
claude mcp add --transport stdio python-server -- python server.py

使用 -- 参数#

--(双破折号)将 Claude 自己的 CLI 标志与传递给 MCP 服务器的命令和参数分开。

bash
# 运行 npx server claude mcp add --transport stdio myserver -- npx server # 运行 python server.py --port 8080 claude mcp add --transport stdio myserver --env KEY=value -- python server.py --port 8080

Windows 用户注意事项#

在本机 Windows(不是 WSL)上,使用 npx 的本地 MCP 服务器需要 cmd /c 包装器:

bash
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package

配置选项#

环境变量#

使用 --env 标志设置环境变量:

bash
claude mcp add --transport stdio db \ --env DB_URL=postgresql://user:pass@localhost/db \ --env DB_TIMEOUT=30 \ -- npx -y db-server

作用域#

使用 --scope 标志指定配置的存储位置:

bash
# 本地范围(默认) claude mcp add --transport http github https://api.github.com/mcp/ # 项目范围 claude mcp add --transport http github --scope project https://api.github.com/mcp/ # 用户范围 claude mcp add --transport http github --scope user https://api.github.com/mcp/

超时设置#

使用 MCP_TIMEOUT 环境变量配置 MCP 服务器启动超时:

bash
# 设置 10 秒超时 MCP_TIMEOUT=10000 claude

输出限制#

使用 MAX_MCP_OUTPUT_TOKENS 环境变量增加输出限制:

bash
# 设置 50,000 令牌限制 MAX_MCP_OUTPUT_TOKENS=50000 claude

身份验证#

OAuth 2.0#

许多基于云的 MCP 服务器需要 OAuth 2.0 身份验证:

bash
# 1. 添加服务器 claude mcp add --transport http github https://api.github.com/mcp/ # 2. 在 Claude Code 中进行身份验证 /mcp # 3. 选择需要身份验证的服务器 # 4. 按照 OAuth 流程完成身份验证

API 密钥#

使用 API 密钥进行身份验证:

bash
claude mcp add --transport http api https://api.example.com/mcp \ --header "Authorization: Bearer your-api-key"

环境变量#

使用环境变量传递凭证:

bash
claude mcp add --transport stdio db \ --env API_KEY=your-key \ -- npx -y db-server

验证安装#

检查服务器状态#

bash
# 列出所有已配置的服务器 claude mcp list # 获取特定服务器的详细信息 claude mcp get github # 在 Claude Code 中检查服务器状态 /mcp

测试服务器连接#

bash
# 测试服务器连接 测试 MCP 服务器连接 # 使用服务器工具 使用 GitHub 工具查看 PR

常见问题#

连接失败#

问题: 无法连接到 MCP 服务器

解决方案:

身份验证错误#

问题: 身份验证失败

解决方案:

超时错误#

问题: 服务器启动超时

解决方案:

Windows 执行错误#

问题: Windows 上无法执行 npx 命令

解决方案:

bash
# 使用 cmd /c 包装器 claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package

最佳实践#

1. 选择合适的传输方式#

  • HTTP: 适合远程服务器和云服务
  • stdio: 适合本地工具和脚本
  • SSE: 已弃用,使用 HTTP 替代

2. 安全配置#

  • 使用强身份验证
  • 限制权限范围
  • 使用环境变量管理凭证
  • 定期更新凭证

3. 性能优化#

  • 设置适当的超时
  • 配置输出限制
  • 使用连接池
  • 启用缓存

4. 错误处理#

  • 捕获和处理错误
  • 提供恢复方案
  • 记录错误日志
  • 监控服务器状态

删除服务器#

如果不再需要服务器,可以删除它:

bash
# 删除服务器 claude mcp remove github # 确认删除 # 服务器已成功删除

重置配置#

如果需要重置项目范围的选择:

bash
# 重置项目选择 claude mcp reset-project-choices

标记本节教程为已读

记录您的学习进度,方便后续查看。