MCP коннектор
Функция MCP коннектора (Model Context Protocol) Claude позволяет подключаться к удаленным MCP серверам напрямую из Messages API без отдельного MCP клиента.
Эта функция требует бета-заголовок: "anthropic-beta": "mcp-client-2025-04-04"
Ключевые особенности
- Прямая интеграция с API: Подключение к MCP серверам без реализации MCP клиента
- Поддержка вызова инструментов: Доступ к MCP инструментам через Messages API
- OAuth аутентификация: Поддержка OAuth Bearer токенов для аутентифицированных серверов
- Множественные серверы: Подключение к нескольким MCP серверам в одном запросе
Ограничения
- Из набора функций спецификации MCP в настоящее время поддерживаются только вызовы инструментов.
- Сервер должен быть публично доступен через HTTP (поддерживает как Streamable HTTP, так и SSE транспорты). Локальные 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-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"
}
]
}'import { Anthropic } from '@anthropic-ai/sdk';
const anthropic = new Anthropic();
const response = await anthropic.beta.messages.create({
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",
},
],
betas: ["mcp-client-2025-04-04"],
});import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=1000,
messages=[{
"role": "user",
"content": "What tools do you have available?"
}],
mcp_servers=[{
"type": "url",
"url": "https://mcp.example.com/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}],
betas=["mcp-client-2025-04-04"]
)Конфигурация 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"
}Описания полей
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
type | string | Да | В настоящее время поддерживается только "url" |
url | string | Да | URL MCP сервера. Должен начинаться с https:// |
name | string | Да | Уникальный идентификатор для этого MCP сервера. Он будет использоваться в блоках mcp_tool_call для идентификации сервера и для разрешения неоднозначности инструментов для модели. |
tool_configuration | object | Нет | Настройка использования инструментов |
tool_configuration.enabled | boolean | Нет | Включить ли инструменты с этого сервера (по умолчанию: true) |
tool_configuration.allowed_tools | array | Нет | Список для ограничения разрешенных инструментов (по умолчанию разрешены все инструменты) |
authorization_token | string | Нет | 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-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"
}
]
}Аутентификация
Для MCP серверов, которые требуют OAuth аутентификацию, вам нужно будет получить токен доступа. Бета-версия MCP коннектора поддерживает передачу параметра authorization_token в определении MCP сервера.
Ожидается, что потребители API будут обрабатывать OAuth поток и получать токен доступа перед выполнением API вызова, а также обновлять токен по мере необходимости.
Получение токена доступа для тестирования
MCP инспектор может провести вас через процесс получения токена доступа для целей тестирования.
-
Запустите инспектор следующей командой. Вам нужен Node.js, установленный на вашей машине.
npx @modelcontextprotocol/inspector -
В боковой панели слева для "Transport type" выберите либо "SSE", либо "Streamable HTTP".
-
Введите URL MCP сервера.
-
В правой области нажмите на кнопку "Open Auth Settings" после "Need to configure authentication?".
-
Нажмите "Quick OAuth Flow" и авторизуйтесь на экране OAuth.
-
Следуйте шагам в разделе "OAuth Flow Progress" инспектора и нажимайте "Continue", пока не достигнете "Authentication complete".
-
Скопируйте значение
access_token. -
Вставьте его в поле
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.