Claude Managed Agents поддерживает подключение серверов Model Context Protocol (MCP) к вашим агентам. Это даёт агенту доступ к внешним инструментам, источникам данных и сервисам через стандартизированный протокол.
Конфигурация MCP разделена на два шага:
Такое разделение позволяет не хранить секреты в переиспользуемых определениях агентов, при этом давая каждой сессии возможность аутентифицироваться с собственными учётными данными.
Все запросы к Managed Agents API требуют бета-заголовка managed-agents-2026-04-01. SDK устанавливает бета-заголовок автоматически.
Укажите серверы MCP в массиве mcp_servers при создании агента. Каждому серверу требуются type, уникальное name и url. На этом этапе токены аутентификации не предоставляются.
Каждому объявленному серверу также требуется соответствующая запись mcp_toolset в массиве tools. Значение mcp_server_name набора инструментов должно совпадать со значением name сервера.
AGENT_ID=$(ant beta:agents create \
--name "GitHub Assistant" \
--model claude-opus-4-8 \
--mcp-server '{type: url, name: github, url: "https://api.githubcopilot.com/mcp/"}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)Набор инструментов MCP по умолчанию использует политику разрешений always_ask, которая требует одобрения пользователя перед каждым вызовом инструмента. См. политики разрешений, чтобы настроить это поведение.
mcp_serversКаждая запись в массиве mcp_servers определяет одно подключение.
| Поле | Описание |
|---|---|
type | Обязательное. Должно быть "url". |
name | Обязательное. Уникальное имя этого сервера в рамках агента (1–255 символов). Используется как mcp_server_name в массиве tools и отображается в событиях инструментов MCP в потоке событий сессии. |
url | Обязательное. Конечная точка удалённого сервера MCP (до 2048 символов). См. Поддерживаемые типы серверов MCP для требований к транспорту. |
Ограничения:
mcp_servers должна ссылаться запись mcp_toolset в массиве tools, и каждая запись mcp_toolset должна ссылаться на объявленный сервер. API отклоняет определения агентов с серверами, на которые нет ссылок, или с висячими наборами инструментов.Запись mcp_toolset поддерживает ту же структуру default_config и configs, что и встроенный набор инструментов агента, применяемую к инструментам, которые предоставляет сервер MCP. Значение name в каждой записи configs — это простое имя инструмента, как его сообщает сервер.
По умолчанию все инструменты, предоставляемые сервером MCP, включены. Чтобы включить только определённые инструменты, установите default_config.enabled в значение false и явно включите нужные вам инструменты:
{
"type": "mcp_toolset",
"mcp_server_name": "github",
"default_config": { "enabled": false },
"configs": [
{ "name": "get_issue", "enabled": true },
{ "name": "list_issues", "enabled": true },
{ "name": "add_issue_comment", "enabled": true }
]
}Этот подход полезен, когда сервер предоставляет много инструментов, но агенту нужны лишь некоторые из них, или когда вы хотите, чтобы инструменты, добавленные оператором сервера, оставались отключёнными, пока вы их не проверите.
Чтобы отключить определённые инструменты, оставив остальные включёнными, опустите default_config и установите enabled: false для отдельных записей:
{
"type": "mcp_toolset",
"mcp_server_name": "github",
"configs": [{ "name": "delete_repository", "enabled": false }]
}См. настройку набора инструментов для общего описания шаблона default_config / configs, а также разрешения набора инструментов MCP для настройки permission_policy для инструментов MCP и обработки запросов на подтверждение.
Когда вывод инструмента MCP превышает 100 000 токенов, он автоматически записывается в файл в песочнице. Модель получает усечённый предварительный просмотр с путём к файлу и может прочитать полное содержимое оттуда.
При запуске сессии передайте vault_ids, чтобы предоставить учётные данные для ваших серверов MCP. Хранилища (vaults) — это коллекции учётных данных, которые вы регистрируете один раз и на которые ссылаетесь по идентификатору. См. Аутентификация с помощью хранилищ, чтобы узнать, как создавать хранилища и управлять учётными данными.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
vault_ids=[vault.id],
)Учётные данные сопоставляются по URL, поэтому хранилище должно содержать учётные данные, у которых mcp_server_url точно совпадает с url, объявленным в mcp_servers. Если совпадений нет, подключение выполняется без аутентификации. См. Добавление учётных данных для типов учётных данных static_bearer и mcp_oauth.
Создание сессии не проверяет подключение к MCP или учётные данные. Если сервер MCP недоступен или отклоняет предоставленные учётные данные, сессия всё равно запускается, и взаимодействие остаётся возможным. Генерируется событие session.error с mcp_server_name затронутого сервера и retry_status:
| Тип ошибки | Значение |
|---|---|
mcp_connection_failed_error | Не удалось связаться с сервером MCP (сетевая ошибка, тайм-аут или HTTP-сбой, не связанный с аутентификацией). |
mcp_authentication_failed_error | Сервер MCP был доступен, но отклонил учётные данные из подключённого хранилища. |
Вы можете решить, блокировать ли дальнейшее взаимодействие при этой ошибке, инициировать ротацию учётных данных или позволить сессии продолжиться без инструментов затронутого сервера. Повторная попытка подключения выполняется при следующем переходе от session.status_idle к session.status_running.
Управляйте тем, когда запускаются инструменты агента и MCP.
Отправляйте события, получайте ответы в режиме потоковой передачи, прерывайте или перенаправляйте сессию в процессе выполнения.
Требования к транспорту для удалённых серверов MCP.
Was this page helpful?