Claude Managed Agents는 Model Context Protocol (MCP) 서버를 에이전트에 연결하는 것을 지원합니다. 이를 통해 에이전트는 표준화된 프로토콜을 통해 외부 도구, 데이터 소스 및 서비스에 접근할 수 있습니다.
MCP 구성은 두 단계로 나뉩니다:
이러한 분리를 통해 재사용 가능한 에이전트 정의에서 비밀 정보를 제외하면서도 각 세션이 자체 자격 증명으로 인증할 수 있습니다.
모든 Managed Agents API 요청에는 managed-agents-2026-04-01 베타 헤더가 필요합니다. SDK는 베타 헤더를 자동으로 설정합니다.
에이전트를 생성할 때 mcp_servers 배열에 MCP 서버를 지정하세요. 각 서버에는 type, 고유한 name, 그리고 url이 필요합니다. 이 단계에서는 인증 토큰을 제공하지 않습니다.
선언된 각 서버에는 tools 배열에 일치하는 mcp_toolset 항목도 필요합니다. 툴셋의 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자). tools 배열의 mcp_server_name으로 사용되며 세션 이벤트 스트림의 MCP 도구 이벤트에 표시됩니다. |
url | 필수. 원격 MCP 서버의 엔드포인트입니다(최대 2048자). 전송 요구 사항은 지원되는 MCP 서버 유형을 참조하세요. |
제약 사항:
mcp_servers 항목은 tools 배열의 mcp_toolset에서 참조되어야 하며, 모든 mcp_toolset은 선언된 서버를 참조해야 합니다. API는 참조되지 않은 서버나 연결되지 않은 툴셋이 있는 에이전트 정의를 거부합니다.mcp_toolset 항목은 내장 에이전트 툴셋과 동일한 default_config 및 configs 형식을 지원하며, MCP 서버가 노출하는 도구에 적용됩니다. 각 configs 항목의 name은 서버가 보고하는 도구의 기본 이름입니다.
기본적으로 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 서버에 대한 자격 증명을 제공하세요. Vault는 한 번 등록하고 ID로 참조하는 자격 증명 모음입니다. Vault를 생성하고 자격 증명을 관리하는 방법은 Vault로 인증하기를 참조하세요.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
vault_ids=[vault.id],
)자격 증명은 URL로 매칭되므로, vault에는 mcp_servers에 선언된 url과 정확히 일치하는 mcp_server_url을 가진 자격 증명이 포함되어야 합니다. 일치하는 항목이 없으면 인증 없이 연결이 시도됩니다. static_bearer 및 mcp_oauth 자격 증명 유형에 대해서는 자격 증명 추가하기를 참조하세요.
세션 생성은 MCP 연결이나 자격 증명을 검증하지 않습니다. MCP 서버에 연결할 수 없거나 제공된 자격 증명이 거부되더라도 세션은 여전히 시작되며 상호작용이 가능합니다. 영향을 받은 서버의 mcp_server_name과 retry_status를 포함한 session.error 이벤트가 발생합니다:
| 오류 유형 | 의미 |
|---|---|
mcp_connection_failed_error | MCP 서버에 연결할 수 없습니다(네트워크 오류, 타임아웃 또는 인증 외 HTTP 실패). |
mcp_authentication_failed_error | MCP 서버에 연결되었지만 연결된 vault의 자격 증명이 거부되었습니다. |
이 오류 발생 시 추가 상호작용을 차단할지, 자격 증명 교체를 트리거할지, 또는 영향을 받은 서버의 도구 없이 세션을 계속 진행할지 결정할 수 있습니다. 연결은 다음 session.status_idle에서 session.status_running으로의 전환 시 재시도됩니다.
에이전트 및 MCP 도구가 실행되는 시점을 제어하세요.
이벤트를 전송하고, 응답을 스트리밍하며, 실행 중인 세션을 중단하거나 방향을 전환하세요.
원격 MCP 서버의 전송 요구 사항입니다.
Was this page helpful?