Claude Code与MCP:让AI拥有超能力的完全指南

前言:什么是MCP?为什么你需要它?

想象一下,如果Claude是一个超级聪明的助手,那么MCP(Model Context Protocol)就是给它装上了各种神奇的"义肢"。就像钢铁侠的盔甲一样,MCP让Claude能够连接到外部世界,访问数据库、API、文件系统,甚至你的GitHub仓库(1)

简单来说,MCP就像是AI界的USB-C接口------一个标准化的方式,让AI模型能够连接到各种不同的数据源和工具(1)。而Claude Code就是这个生态系统中最酷的客户端之一。

第一章:MCP基础知识(不要打瞌睡!)

MCP到底是什么鬼?

Model Context Protocol是一个开放协议,让LLM能够访问外部工具和数据源(2)。想象一下,如果Claude是一个被困在房间里的天才,MCP就是给它开了窗户,让它能看到外面的世界。

为什么选择MCP而不是其他方案?

因为MCP是标准化的!就像你不想每次买新手机都要换充电器一样,开发者也不想为每个AI模型写不同的集成代码。MCP让这一切变得简单优雅。

第二章:配置MCP服务器(开始动手吧!)

警告:请谨慎选择你的MCP服务器

在开始之前,有个重要提醒:使用第三方MCP服务器需要自担风险(2)。确保你信任这些服务器,特别是那些与互联网通信的服务器,因为它们可能会让你面临提示注入风险(2)。就像你不会随便让陌生人进你家一样,不要随便信任不明来源的MCP服务器。

添加stdio服务器(最常见的类型)

这是最基础的服务器类型,就像学开车先学手动挡一样:

Bash 复制代码
# 基本语法
claude mcp add <name> <command> [args...]

# 示例:添加一个本地服务器
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2

(2)

添加SSE服务器(实时通信的好伙伴)

SSE(Server-Sent Events)服务器适合需要实时通信的场景:

Bash 复制代码
# 基本语法
claude mcp add --transport sse <name> <url>

# 示例:添加一个SSE服务器
claude mcp add --transport sse sse-server https://example.com/sse-endpoint

# 示例:添加带自定义头部的SSE服务器
claude mcp add --transport sse api-server https://api.example.com/mcp --header "X-API-Key: your-key"

(2)

添加HTTP服务器(老实可靠的选择)

HTTP服务器就像是MCP世界里的"老实人"------可靠、稳定、大家都懂:

Bash 复制代码
# 基本语法
claude mcp add --transport http <name> <url>

# 示例:添加一个可流式传输的HTTP服务器
claude mcp add --transport http http-server https://example.com/mcp

# 示例:添加带认证头部的HTTP服务器
claude mcp add --transport http secure-server https://api.example.com/mcp --header "Authorization: Bearer your-token"

(2)

管理你的MCP服务器(像管理你的朋友圈一样)

Bash 复制代码
# 列出所有配置的服务器(看看你有多少"朋友")
claude mcp list

# 获取特定服务器的详细信息(深入了解某个"朋友")
claude mcp get my-server

# 删除服务器(有时候需要断舍离)
claude mcp remove my-server

(2)

第三章:理解MCP服务器作用域(像管理权限一样重要)

MCP服务器可以在三个不同的作用域级别进行配置,每个都有其独特的用途(3)

作用域层次结构和优先级

MCP服务器配置遵循清晰的优先级层次结构(3)。当同名服务器存在于多个作用域时,系统通过优先考虑本地作用域服务器,然后是项目作用域服务器,最后是用户作用域服务器来解决冲突(3)。这种设计确保个人配置可以在需要时覆盖共享配置(3)

Local作用域(你的私人空间)

本地作用域服务器代表默认配置级别,存储在你的项目特定用户设置中(3)。这些服务器对你保持私有,只有在当前项目目录中工作时才可访问(3)。这个作用域非常适合个人开发服务器、实验性配置或包含不应共享的敏感凭据的服务器(3)

Bash 复制代码
# 添加本地作用域服务器(默认)
claude mcp add my-private-server /path/to/server

# 明确指定本地作用域
claude mcp add my-private-server -s local /path/to/server

(3)

Project作用域(团队合作的桥梁)

项目作用域服务器通过在项目根目录存储配置到.mcp.json文件中来实现团队协作(3)。这个文件设计为检入版本控制,确保所有团队成员都能访问相同的MCP工具和服务(3)。当你添加项目作用域服务器时,Claude Code会自动创建或更新这个文件,使用适当的配置结构(3)

Bash 复制代码
# 添加项目作用域服务器
claude mcp add shared-server -s project /path/to/server

(3)

生成的.mcp.json文件遵循标准化格式(3)

JSON 复制代码
{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}

(3)

出于安全原因,Claude Code在使用来自.mcp.json文件的项目作用域服务器之前会提示批准(3)。如果你需要重置这些批准选择,使用claude mcp reset-project-choices命令(3)

User作用域(跨项目的好帮手)

用户作用域服务器提供跨项目可访问性,使它们在你机器上的所有项目中都可用,同时对你的用户账户保持私有(3)。这个作用域非常适合个人实用程序服务器、开发工具或你在不同项目中经常使用的服务(3)

Bash 复制代码
# 添加用户服务器
claude mcp add my-user-server -s user /path/to/server

(3)

如何选择正确的作用域

根据以下标准选择作用域(3)

  • Local作用域 :个人服务器、实验性配置或特定于一个项目的敏感凭据(3)
  • Project作用域 :团队共享服务器、项目特定工具或协作所需的服务(3)
  • User作用域 :多个项目需要的个人实用程序、开发工具或经常使用的服务(3)

环境变量扩展(让配置更灵活)

Claude Code支持在.mcp.json文件中进行环境变量扩展,允许团队共享配置,同时为机器特定路径和API密钥等敏感值保持灵活性(3)

支持的语法: (3)

  • ${VAR} - 扩展为环境变量VAR的值(3)
  • ${VAR:-default} - 如果设置了VAR则扩展为其值,否则使用default(3)

扩展位置: (3) 环境变量可以在以下位置扩展:

  • command - 服务器可执行文件路径(3)
  • args - 命令行参数(3)
  • env - 传递给服务器的环境变量(3)
  • url - 用于SSE/HTTP服务器类型(3)
  • headers - 用于SSE/HTTP服务器认证(3)

带变量扩展的示例: (3)

JSON 复制代码
{
  "mcpServers": {
    "api-server": {
      "type": "sse",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}

(3)

如果所需的环境变量未设置且没有默认值,Claude Code将无法解析配置(3)

第四章:认证和安全(保护你的数字王国)

与远程MCP服务器认证

许多远程MCP服务器需要认证(2)。Claude Code支持OAuth 2.0认证流程,用于安全连接到这些服务器(2)

步骤1:添加需要认证的远程服务器 (2)

Bash 复制代码
# 添加需要OAuth的SSE或HTTP服务器
claude mcp add --transport sse github-server https://api.github.com/mcp

(2)

步骤2:使用/mcp命令进行认证 (2)

在Claude Code中,使用/mcp命令管理认证(2)

Plain 复制代码
> /mcp

(2)

这会打开一个交互式菜单,你可以(2)

  • 查看所有服务器的连接状态(2)
  • 与需要OAuth的服务器进行认证(2)
  • 清除现有认证(2)
  • 查看服务器功能(2)

步骤3:完成OAuth流程 (2)

当你为服务器选择"认证"时(2)

  1. 你的浏览器会自动打开到OAuth提供商(2)
  2. 在浏览器中完成认证(2)
  3. Claude Code接收并安全存储访问令牌(2)
  4. 服务器连接变为活跃状态(2)

小贴士:

  • 认证令牌被安全存储并自动刷新(2)
  • /mcp菜单中使用"清除认证"来撤销访问(2)
  • 如果你的浏览器没有自动打开,复制提供的URL(2)
  • OAuth认证适用于SSE和HTTP传输(2)

第五章:实际应用示例(让理论变成实践)

连接到Postgres MCP服务器(数据库探索者)

假设你想给Claude只读访问PostgreSQL数据库,用于查询和模式检查(2)

步骤1:添加Postgres MCP服务器 (2)

Bash 复制代码
claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"

(2)

步骤2:用Claude查询你的数据库 (2)

Plain 复制代码
> describe the schema of our users table

(2)

Plain 复制代码
> what are the most recent orders in the system?

(2)

Plain 复制代码
> show me the relationship between customers and invoices

(2)

小贴士:

  • Postgres MCP服务器为了安全提供只读访问(2)
  • Claude可以帮助你探索数据库结构并运行分析查询(2)
  • 你可以使用这个功能快速理解不熟悉项目中的数据库模式(2)
  • 确保你的连接字符串使用具有最小所需权限的适当凭据(2)

从JSON配置添加MCP服务器(配置文件爱好者的福音)

假设你有一个单个MCP服务器的JSON配置,想要添加到Claude Code中(2)

步骤1:从JSON添加MCP服务器 (2)

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"}}'

(2)

步骤2:验证服务器已添加 (2)

Bash 复制代码
claude mcp get weather-api

(2)

小贴士:

  • 确保JSON在你的shell中正确转义(2)
  • JSON必须符合MCP服务器配置模式(2)
  • 你可以使用-s global将服务器添加到全局配置而不是项目特定配置(2)

从Claude Desktop导入MCP服务器(懒人的救星)

假设你已经在Claude Desktop中配置了MCP服务器,想在Claude Code中使用相同的服务器而不需要手动重新配置(2)

步骤1:从Claude Desktop导入服务器 (2)

Bash 复制代码
# 基本语法 
claude mcp add-from-claude-desktop 

(2)

步骤2:选择要导入的服务器 (2)

运行命令后,你会看到一个交互式对话框,允许你选择要导入的服务器(2)

步骤3:验证服务器已导入 (2)

Bash 复制代码
claude mcp list 

(2)

小贴士:

  • 此功能仅在macOS和Windows Subsystem for Linux (WSL)上

原文:https://ycnv7u8vf1o3.feishu.cn/wiki/DelswqLN0ixDXFkgGHFc01Oynet?from=from_copylink