Claude 的模型上下文协议 (MCP) 连接器功能使您能够直接从 Messages API 连接到远程 MCP 服务器,无需单独的 MCP 客户端。
此功能需要 beta 头部:"anthropic-beta": "mcp-client-2025-04-04"
主要功能
- 直接 API 集成:无需实现 MCP 客户端即可连接到 MCP 服务器
- 工具调用支持:通过 Messages API 访问 MCP 工具
- OAuth 认证:支持用于认证服务器的 OAuth Bearer 令牌
- 多服务器:在单个请求中连接到多个 MCP 服务器
- 在 MCP 规范 的功能集中,目前仅支持 工具调用。
- 服务器必须通过 HTTP 公开暴露(支持 Streamable HTTP 和 SSE 传输)。本地 STDIO 服务器无法直接连接。
- MCP 连接器目前在 Amazon Bedrock 和 Google Vertex 上不受支持。
在 Messages API 中使用 MCP 连接器
要连接到远程 MCP 服务器,请在您的 Messages API 请求中包含 mcp_servers 参数:
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-04-04" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "What tools do you have available?"}],
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}
]
}'
MCP 服务器配置
mcp_servers 数组中的每个 MCP 服务器支持以下配置:
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"tool_configuration": {
"enabled": true,
"allowed_tools": ["example_tool_1", "example_tool_2"]
},
"authorization_token": "YOUR_TOKEN"
}
字段描述
| 属性 | 类型 | 必需 | 描述 |
type | string | 是 | 目前仅支持 “url” |
url | string | 是 | MCP 服务器的 URL。必须以 https:// 开头 |
name | string | 是 | 此 MCP 服务器的唯一标识符。它将在 mcp_tool_call 块中用于识别服务器并向模型消除工具歧义。 |
tool_configuration | object | 否 | 配置工具使用 |
tool_configuration.enabled | boolean | 否 | 是否启用来自此服务器的工具(默认:true) |
tool_configuration.allowed_tools | array | 否 | 限制允许的工具列表(默认情况下,允许所有工具) |
authorization_token | string | 否 | 如果 MCP 服务器需要,则为 OAuth 授权令牌。参见 MCP 规范。 |
响应内容类型
当 Claude 使用 MCP 工具时,响应将包含两种新的内容块类型:
MCP 工具使用块
{
"type": "mcp_tool_use",
"id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"name": "echo",
"server_name": "example-mcp",
"input": { "param1": "value1", "param2": "value2" }
}
MCP 工具结果块
{
"type": "mcp_tool_result",
"tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"is_error": false,
"content": [
{
"type": "text",
"text": "Hello"
}
]
}
多个 MCP 服务器
您可以通过在 mcp_servers 数组中包含多个对象来连接到多个 MCP 服务器:
{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [
{
"role": "user",
"content": "Use tools from both mcp-server-1 and mcp-server-2 to complete this task"
}
],
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.example1.com/sse",
"name": "mcp-server-1",
"authorization_token": "TOKEN1"
},
{
"type": "url",
"url": "https://mcp.example2.com/sse",
"name": "mcp-server-2",
"authorization_token": "TOKEN2"
}
]
}
对于需要 OAuth 认证的 MCP 服务器,您需要获取访问令牌。MCP 连接器 beta 版支持在 MCP 服务器定义中传递 authorization_token 参数。
API 消费者需要处理 OAuth 流程并在进行 API 调用之前获取访问令牌,以及根据需要刷新令牌。
获取用于测试的访问令牌
MCP 检查器可以指导您完成获取用于测试目的的访问令牌的过程。
-
使用以下命令运行检查器。您需要在机器上安装 Node.js。
npx @modelcontextprotocol/inspector
-
在左侧边栏中,对于”传输类型”,选择”SSE”或”Streamable HTTP”。
-
输入 MCP 服务器的 URL。
-
在右侧区域,在”需要配置认证?“后点击”打开认证设置”按钮。
-
点击”快速 OAuth 流程”并在 OAuth 屏幕上授权。
-
按照检查器”OAuth 流程进度”部分的步骤操作,点击”继续”直到到达”认证完成”。
-
复制
access_token 值。
-
将其粘贴到您的 MCP 服务器配置中的
authorization_token 字段。
使用访问令牌
一旦您使用上述任一 OAuth 流程获得了访问令牌,您就可以在 MCP 服务器配置中使用它:
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "authenticated-server",
"authorization_token": "YOUR_ACCESS_TOKEN_HERE"
}
]
}
有关 OAuth 流程的详细说明,请参阅 MCP 规范中的授权部分。