Loading...
    • 构建
    • 管理
    • 模型与定价
    • 客户端 SDK
    • API 参考
    Search...
    ⌘K
    入门步骤
    Claude 简介快速入门
    使用 Claude 构建
    功能概览使用 Messages API处理停止原因
    模型能力
    扩展思考自适应思考努力程度快速模式(测试版:研究预览)结构化输出引用流式消息批量处理搜索结果流式拒绝多语言支持嵌入
    工具
    概览工具使用原理网页搜索工具网页抓取工具代码执行工具记忆工具Bash 工具计算机使用工具文本编辑器工具
    工具基础设施
    工具搜索程序化工具调用细粒度工具流式传输
    上下文管理
    上下文窗口压缩上下文编辑提示词缓存Token 计数
    文件处理
    Files APIPDF 支持图像与视觉
    技能
    概览快速入门最佳实践企业级技能API 中的技能
    MCP
    远程 MCP 服务器MCP 连接器
    提示词工程
    概览提示词最佳实践Console 提示词工具
    测试与评估
    定义成功标准并构建评估在 Console 中使用评估工具降低延迟
    加强安全护栏
    减少幻觉提高输出一致性防范越狱减少提示词泄露
    资源
    术语表
    发布说明
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    MCP

    MCP 连接器

    Claude 的模型上下文协议(MCP)连接器功能使您能够直接从 Messages API 连接到远程 MCP 服务器,无需单独的 MCP 客户端。

    当前版本:此功能需要 beta 请求头:"anthropic-beta": "mcp-client-2025-11-20"

    旧版本(mcp-client-2025-04-04)已弃用。请参阅下方的已弃用版本文档。

    This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.

    主要功能

    • 直接 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 连接器使用两个组件:

    1. MCP 服务器定义(mcp_servers 数组):定义服务器连接详情(URL、认证)
    2. MCP 工具集(tools 数组):配置要启用哪些工具以及如何配置它们

    基本示例

    此示例使用默认配置启用 MCP 服务器中的所有工具:

    MCP 服务器配置

    mcp_servers 数组中的每个 MCP 服务器定义了连接详情:

    {
      "type": "url",
      "url": "https://example-server.modelcontextprotocol.io/sse",
      "name": "example-mcp",
      "authorization_token": "YOUR_TOKEN"
    }

    字段说明

    属性类型必填说明
    typestring是目前仅支持 "url"
    urlstring是MCP 服务器的 URL。必须以 https:// 开头
    namestring是此 MCP 服务器的唯一标识符。必须由 tools 数组中的恰好一个 MCPToolset 引用。
    authorization_tokenstring否如果 MCP 服务器需要,则提供 OAuth 授权令牌。参见 MCP 规范。

    MCP 工具集配置

    MCPToolset 位于 tools 数组中,用于配置启用 MCP 服务器中的哪些工具以及如何配置它们。

    基本结构

    {
      "type": "mcp_toolset",
      "mcp_server_name": "example-mcp",
      "default_config": {
        "enabled": true,
        "defer_loading": false
      },
      "configs": {
        "specific_tool_name": {
          "enabled": true,
          "defer_loading": true
        }
      }
    }

    字段说明

    属性类型必填说明
    typestring是必须为 "mcp_toolset"
    mcp_server_namestring是必须与 mcp_servers 数组中定义的服务器名称匹配
    default_configobject否应用于此集合中所有工具的默认配置。configs 中的单个工具配置将覆盖这些默认值。
    configsobject否按工具的配置覆盖。键为工具名称,值为配置对象。
    cache_controlobject

    工具配置选项

    每个工具(无论是在 default_config 还是在 configs 中配置)都支持以下字段:

    属性类型默认值说明
    enabledbooleantrue此工具是否启用
    defer_loadingbooleanfalse如果为 true,工具描述最初不会发送给模型。与工具搜索工具配合使用。

    有关 Anthropic 提供的工具的完整目录以及 defer_loading 等可选属性,请参阅工具参考。有关在大型工具集中搜索,请参阅工具搜索工具。

    配置合并

    配置值按以下优先级合并(从高到低):

    1. configs 中的工具特定设置
    2. 集合级别的 default_config
    3. 系统默认值

    示例:

    {
      "type": "mcp_toolset",
      "mcp_server_name": "google-calendar-mcp",
      "default_config": {
        "defer_loading": true
      },
      "configs": {
        "search_events": {
          "enabled": false
        }
      }
    }

    结果:

    • search_events:enabled: false(来自 configs),defer_loading: true(来自 default_config)
    • 所有其他工具:enabled: true(系统默认),defer_loading: true(来自 default_config)

    常见配置模式

    使用默认配置启用所有工具

    最简单的模式——启用服务器中的所有工具:

    {
      "type": "mcp_toolset",
      "mcp_server_name": "google-calendar-mcp"
    }

    允许列表——仅启用特定工具

    将 enabled: false 设为默认值,然后显式启用特定工具:

    {
      "type": "mcp_toolset",
      "mcp_server_name": "google-calendar-mcp",
      "default_config": {
        "enabled": false
      },
      "configs": {
        "search_events": {
          "enabled": true
        },
        "create_event": {
          "enabled": true
        }
      }
    }

    拒绝列表——禁用特定工具

    默认启用所有工具,然后显式禁用不需要的工具:

    {
      "type": "mcp_toolset",
      "mcp_server_name": "google-calendar-mcp",
      "configs": {
        "delete_all_events": {
          "enabled": false
        },
        "share_calendar_publicly": {
          "enabled": false
        }
      }
    }

    混合——带有按工具配置的允许列表

    将允许列表与每个工具的自定义配置结合使用:

    {
      "type": "mcp_toolset",
      "mcp_server_name": "google-calendar-mcp",
      "default_config": {
        "enabled": false,
        "defer_loading": true
      },
      "configs": {
        "search_events": {
          "enabled": true,
          "defer_loading": false
        },
        "list_events": {
          "enabled": true
        }
      }
    }

    在此示例中:

    • search_events 已启用,defer_loading: false
    • list_events 已启用,defer_loading: true(继承自 default_config)
    • 所有其他工具均已禁用

    验证规则

    API 强制执行以下验证规则:

    • 服务器必须存在:MCPToolset 中的 mcp_server_name 必须与 mcp_servers 数组中定义的服务器匹配
    • 服务器必须被使用:mcp_servers 中定义的每个 MCP 服务器必须由恰好一个 MCPToolset 引用
    • 每个服务器唯一工具集:每个 MCP 服务器只能被一个 MCPToolset 引用
    • 未知工具名称:如果 configs 中的工具名称在 MCP 服务器上不存在,则会记录后端警告但不返回错误(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 中包含多个服务器定义,并在 tools 数组中为每个服务器提供对应的 MCPToolset,来连接到多个 MCP 服务器:

    {
      "model": "claude-opus-4-6",
      "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"
        }
      ],
      "tools": [
        {
          "type": "mcp_toolset",
          "mcp_server_name": "mcp-server-1"
        },
        {
          "type": "mcp_toolset",
          "mcp_server_name": "mcp-server-2",
          "default_config": {
            "defer_loading": true
          }
        }
      ]
    }

    认证

    对于需要 OAuth 认证的 MCP 服务器,您需要获取访问令牌。MCP 连接器 beta 支持在 MCP 服务器定义中传递 authorization_token 参数。 API 使用者需要在进行 API 调用之前处理 OAuth 流程并获取访问令牌,并根据需要刷新令牌。

    获取用于测试的访问令牌

    MCP 检查器可以引导您完成获取用于测试的访问令牌的过程。

    1. 使用以下命令运行检查器。您需要在机器上安装 Node.js。

      npx @modelcontextprotocol/inspector
    2. 在左侧边栏中,对于"传输类型",选择"SSE"或"Streamable HTTP"。

    3. 输入 MCP 服务器的 URL。

    4. 在右侧区域,点击"需要配置认证?"后面的"打开认证设置"按钮。

    5. 点击"快速 OAuth 流程"并在 OAuth 屏幕上授权。

    6. 按照检查器"OAuth 流程进度"部分中的步骤操作,点击"继续"直到到达"认证完成"。

    7. 复制 access_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 规范中的授权部分。

    客户端 MCP 辅助工具(TypeScript)

    如果您自行管理 MCP 客户端连接(例如,使用本地 stdio 服务器、MCP 提示或 MCP 资源),TypeScript SDK 提供了在 MCP 类型和 Claude API 类型之间转换的辅助函数。这消除了在将 MCP SDK 与 Anthropic SDK 一起使用时的手动转换代码。

    这些辅助工具目前仅在 TypeScript SDK 中可用。

    当您有可通过 URL 访问的远程服务器且只需要工具支持时,请使用 mcp_servers API 参数。当您需要本地服务器、提示、资源或对基础 SDK 连接有更多控制时,请使用客户端辅助工具。

    安装

    同时安装 Anthropic SDK 和 MCP SDK:

    npm install @anthropic-ai/sdk @modelcontextprotocol/sdk

    可用辅助工具

    从 beta 命名空间导入辅助工具:

    import {
      mcpTools,
      mcpMessages,
      mcpResourceToContent,
      mcpResourceToFile
    } from "@anthropic-ai/sdk/helpers/beta/mcp";
    辅助工具说明
    mcpTools(tools, mcpClient)将 MCP 工具转换为 Claude API 工具,用于 client.beta.messages.toolRunner()
    mcpMessages(messages)将 MCP 提示消息转换为 Claude API 消息格式
    mcpResourceToContent(resource)将 MCP 资源转换为 Claude API 内容块
    mcpResourceToFile(resource)将 MCP 资源转换为用于上传的文件对象

    使用 MCP 工具

    转换 MCP 工具以与 SDK 的工具运行器配合使用,该运行器会自动处理工具执行:

    import { mcpTools } from "@anthropic-ai/sdk/helpers/beta/mcp";
    import { Client } from "@modelcontextprotocol/sdk/client/index.js";
    import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
    
    const anthropic = new Anthropic();
    
    // Connect to an MCP server
    const transport = new StdioClientTransport({ command: "mcp-server", args: [] });
    const mcpClient = new Client({ name: "my-client", version: "1.0.0" });
    await mcpClient.connect(transport);
    
    // List tools and convert them for the Claude API
    const { tools } = await mcpClient.listTools();
    const runner = await anthropic.beta.messages.toolRunner({
      model: "claude-sonnet-4-6",
      max_tokens: 1024,
      messages: [{ role: "user", content: "What tools do you have available?" }],
      tools: mcpTools(tools, mcpClient)
    });

    使用 MCP 提示

    将 MCP 提示消息转换为 Claude API 消息格式:

    import { mcpMessages } from "@anthropic-ai/sdk/helpers/beta/mcp";
    
    const { messages } = await mcpClient.getPrompt({ name: "my-prompt" });
    const response = await anthropic.beta.messages.create({
      model: "claude-sonnet-4-6",
      max_tokens: 1024,
      messages: mcpMessages(messages)
    });

    使用 MCP 资源

    将 MCP 资源转换为内容块以包含在消息中,或转换为用于上传的文件对象:

    import { mcpResourceToContent, mcpResourceToFile } from "@anthropic-ai/sdk/helpers/beta/mcp";
    
    // As a content block in a message
    const resource = await mcpClient.readResource({ uri: "file:///path/to/doc.txt" });
    await anthropic.beta.messages.create({
      model: "claude-sonnet-4-6",
      max_tokens: 1024,
      messages: [
        {
          role: "user",
          content: [
            mcpResourceToContent(resource),
            { type: "text", text: "Summarize this document" }
          ]
        }
      ]
    });
    
    // As a file upload
    const fileResource = await mcpClient.readResource({ uri: "file:///path/to/data.json" });
    await anthropic.beta.files.upload({ file: mcpResourceToFile(fileResource) });

    错误处理

    如果 MCP 值不受 Claude API 支持,转换函数会抛出 UnsupportedMCPValueError。这可能发生在不支持的内容类型、MIME 类型或非 HTTP 资源链接的情况下。

    数据保留

    MCP 连接器不在 ZDR 安排的覆盖范围内。与 MCP 服务器交换的数据,包括工具定义和执行结果,将根据 Anthropic 的标准数据保留政策进行保留。

    有关所有功能的 ZDR 资格,请参阅 API 和数据保留。

    迁移指南

    如果您正在使用已弃用的 mcp-client-2025-04-04 beta 请求头,请按照本指南迁移到新版本。

    主要变更

    1. 新的 beta 请求头:从 mcp-client-2025-04-04 更改为 mcp-client-2025-11-20
    2. 工具配置已移动:工具配置现在作为 MCPToolset 对象位于 tools 数组中,而不是在 MCP 服务器定义中
    3. 更灵活的配置:新模式支持允许列表、拒绝列表和按工具配置

    迁移步骤

    之前(已弃用):

    {
      "model": "claude-opus-4-6",
      "max_tokens": 1000,
      "messages": [
        // ...
      ],
      "mcp_servers": [
        {
          "type": "url",
          "url": "https://mcp.example.com/sse",
          "name": "example-mcp",
          "authorization_token": "YOUR_TOKEN",
          "tool_configuration": {
            "enabled": true,
            "allowed_tools": ["tool1", "tool2"]
          }
        }
      ]
    }

    之后(当前):

    {
      "model": "claude-opus-4-6",
      "max_tokens": 1000,
      "messages": [
        // ...
      ],
      "mcp_servers": [
        {
          "type": "url",
          "url": "https://mcp.example.com/sse",
          "name": "example-mcp",
          "authorization_token": "YOUR_TOKEN"
        }
      ],
      "tools": [
        {
          "type": "mcp_toolset",
          "mcp_server_name": "example-mcp",
          "default_config": {
            "enabled": false
          },
          "configs": {
            "tool1": {
              "enabled": true
            },
            "tool2": {
              "enabled": true
            }
          }
        }
      ]
    }

    常见迁移模式

    旧模式新模式
    无 tool_configuration(所有工具已启用)无 default_config 或 configs 的 MCPToolset
    tool_configuration.enabled: false带有 default_config.enabled: false 的 MCPToolset
    tool_configuration.allowed_tools: [...]带有 default_config.enabled: false 且在 configs 中启用特定工具的 MCPToolset

    已弃用版本:mcp-client-2025-04-04

    此版本已弃用。请使用上方的迁移指南迁移到 mcp-client-2025-11-20。

    MCP 连接器的旧版本直接在 MCP 服务器定义中包含工具配置:

    {
      "mcp_servers": [
        {
          "type": "url",
          "url": "https://example-server.modelcontextprotocol.io/sse",
          "name": "example-mcp",
          "authorization_token": "YOUR_TOKEN",
          "tool_configuration": {
            "enabled": true,
            "allowed_tools": ["example_tool_1", "example_tool_2"]
          }
        }
      ]
    }

    已弃用字段说明

    属性类型说明
    tool_configurationobject已弃用:请改用 tools 数组中的 MCPToolset
    tool_configuration.enabledboolean已弃用:请改用 MCPToolset 中的 default_config.enabled
    tool_configuration.allowed_toolsarray已弃用:请改用 MCPToolset 中带有 configs 的允许列表模式

    Was this page helpful?

    • 在 Messages API 中使用 MCP 连接器
    • MCP 服务器配置
    • MCP 工具集配置
    • MCP 工具使用块
    • MCP 工具结果块
    • 多个 MCP 服务器
    • 客户端 MCP 辅助工具(TypeScript)
    • 使用 MCP 工具
    • 使用 MCP 提示
    • 使用 MCP 资源
    • 已弃用版本:mcp-client-2025-04-04
    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-11-20" \
      -d '{
        "model": "claude-opus-4-6",
        "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"
          }
        ],
        "tools": [
          {
            "type": "mcp_toolset",
            "mcp_server_name": "example-mcp"
          }
        ]
      }'
    否
    此工具集的缓存断点配置

    将其粘贴到 MCP 服务器配置中的 authorization_token 字段。