Функция коннектора Model Context Protocol (MCP) Claude позволяет подключаться к удаленным MCP-серверам напрямую из Messages API без отдельного MCP-клиента.

Для этой функции требуется бета-заголовок: "anthropic-beta": "mcp-client-2025-04-04"

Ключевые особенности

  • Прямая интеграция API: Подключение к MCP-серверам без реализации MCP-клиента
  • Поддержка вызова инструментов: Доступ к MCP-инструментам через Messages API
  • OAuth аутентификация: Поддержка OAuth Bearer токенов для аутентифицированных серверов
  • Несколько серверов: Подключение к нескольким MCP-серверам в одном запросе

Ограничения

  • Из набора функций спецификации MCP в настоящее время поддерживаются только вызовы инструментов.
  • Сервер должен быть публично доступен через HTTP. Локальные STDIO серверы не могут быть подключены напрямую.
  • MCP коннектор в настоящее время не поддерживается на Amazon Bedrock и Google Vertex.

Использование MCP коннектора в Messages API

Чтобы подключиться к удаленному MCP-серверу, включите параметр mcp_servers в ваш запрос Messages API:

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-20250514",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "Какие инструменты у тебя доступны?"}],
    "mcp_servers": [
      {
        "type": "url",
        "url": "https://example-server.modelcontextprotocol.io/sse",
        "name": "example-mcp",
        "authorization_token": "YOUR_TOKEN"
      }
    ]
  }'

Конфигурация MCP сервера

Каждый MCP сервер в массиве mcp_servers поддерживает следующую конфигурацию:

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

Описание полей

СвойствоТипОбязательноеОписание
typestringДаВ настоящее время поддерживается только “url”
urlstringДаURL MCP сервера. Должен начинаться с https://
namestringДаУникальный идентификатор для этого MCP сервера. Он будет использоваться в блоках mcp_tool_call для идентификации сервера и для разрешения неоднозначности инструментов для модели.
tool_configurationobjectНетНастройка использования инструментов
tool_configuration.enabledbooleanНетВключить ли инструменты с этого сервера (по умолчанию: true)
tool_configuration.allowed_toolsarrayНетСписок для ограничения разрешенных инструментов (по умолчанию разрешены все инструменты)
authorization_tokenstringНетOAuth токен авторизации, если он требуется 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 серверам, включив несколько объектов в массив mcp_servers:

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1000,
  "messages": [
    {
      "role": "user",
      "content": "Используй инструменты как с mcp-server-1, так и с mcp-server-2 для выполнения этой задачи"
    }
  ],
  "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"
    }
  ]
}

Аутентификация

Для MCP серверов, требующих OAuth аутентификацию, вам потребуется получить токен доступа. Бета-версия MCP коннектора поддерживает передачу параметра authorization_token в определении MCP сервера. Потребители API должны самостоятельно обрабатывать процесс OAuth и получать токен доступа до совершения API-вызова, а также обновлять токен по мере необходимости.

Получение токена доступа для тестирования

MCP инспектор может провести вас через процесс получения токена доступа для целей тестирования.

  1. Запустите инспектор с помощью следующей команды. На вашем компьютере должен быть установлен Node.js.

    npx @modelcontextprotocol/inspector
    
  2. В боковой панели слева для “Transport type” выберите либо “SSE”, либо “Streamable HTTP”.

  3. Введите URL MCP сервера.

  4. В правой области нажмите кнопку “Open Auth Settings” после “Need to configure authentication?”.

  5. Нажмите “Quick OAuth Flow” и авторизуйтесь на экране OAuth.

  6. Следуйте шагам в разделе “OAuth Flow Progress” инспектора и нажимайте “Continue”, пока не дойдете до “Authentication complete”.

  7. Скопируйте значение access_token.

  8. Вставьте его в поле authorization_token в конфигурации вашего MCP сервера.

Использование токена доступа

После получения токена доступа с помощью любого из вышеописанных процессов OAuth, вы можете использовать его в конфигурации вашего MCP сервера:

{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://example-server.modelcontextprotocol.io/sse",
      "name": "authenticated-server",
      "authorization_token": "YOUR_ACCESS_TOKEN_HERE"
    }
  ]
}

Для подробных объяснений процесса OAuth обратитесь к разделу Авторизация в спецификации MCP.