前言:什么是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
添加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"
添加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"
管理你的MCP服务器(像管理你的朋友圈一样)
Bash
# 列出所有配置的服务器(看看你有多少"朋友")
claude mcp list
# 获取特定服务器的详细信息(深入了解某个"朋友")
claude mcp get my-server
# 删除服务器(有时候需要断舍离)
claude mcp remove my-server
第三章:理解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
Project作用域(团队合作的桥梁)
项目作用域服务器通过在项目根目录存储配置到.mcp.json
文件中来实现团队协作(3)。这个文件设计为检入版本控制,确保所有团队成员都能访问相同的MCP工具和服务(3)。当你添加项目作用域服务器时,Claude Code会自动创建或更新这个文件,使用适当的配置结构(3)。
Bash
# 添加项目作用域服务器
claude mcp add shared-server -s project /path/to/server
生成的.mcp.json
文件遵循标准化格式(3):
JSON
{
"mcpServers": {
"shared-server": {
"command": "/path/to/server",
"args": [],
"env": {}
}
}
}
出于安全原因,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):
- Local作用域 :个人服务器、实验性配置或特定于一个项目的敏感凭据(3)
- Project作用域 :团队共享服务器、项目特定工具或协作所需的服务(3)
- User作用域 :多个项目需要的个人实用程序、开发工具或经常使用的服务(3)
环境变量扩展(让配置更灵活)
Claude Code支持在.mcp.json
文件中进行环境变量扩展,允许团队共享配置,同时为机器特定路径和API密钥等敏感值保持灵活性(3)。
支持的语法: (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}"
}
}
}
}
如果所需的环境变量未设置且没有默认值,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:使用/mcp命令进行认证 (2)
在Claude Code中,使用/mcp
命令管理认证(2):
Plain
> /mcp
这会打开一个交互式菜单,你可以(2):
步骤3:完成OAuth流程 (2)
当你为服务器选择"认证"时(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:用Claude查询你的数据库 (2)
Plain
> describe the schema of our users table
Plain
> what are the most recent orders in the system?
Plain
> show me the relationship between customers and invoices
小贴士:
- 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)
Bash
claude mcp get weather-api
小贴士:
从Claude Desktop导入MCP服务器(懒人的救星)
假设你已经在Claude Desktop中配置了MCP服务器,想在Claude Code中使用相同的服务器而不需要手动重新配置(2)。
步骤1:从Claude Desktop导入服务器 (2)
Bash
# 基本语法
claude mcp add-from-claude-desktop
步骤2:选择要导入的服务器 (2)
运行命令后,你会看到一个交互式对话框,允许你选择要导入的服务器(2)。
步骤3:验证服务器已导入 (2)
Bash
claude mcp list
小贴士:
- 此功能仅在macOS和Windows Subsystem for Linux (WSL)上
原文:https://ycnv7u8vf1o3.feishu.cn/wiki/DelswqLN0ixDXFkgGHFc01Oynet?from=from_copylink