View a markdown version of this page

MCP 프로토콜 계약 - Amazon Bedrock AgentCore

MCP 프로토콜 계약

에이전트가 도구 및 에이전트 서버를 호출할 수 있도록 모델 컨텍스트 프로토콜(MCP)을 구현하기 위한 요구 사항을 이해합니다.

예제 코드는 AgentCore 런타임에서 MCP 서버 배포를 참조하세요.

프로토콜 구현 요구 사항

MCP 서버는 다음과 같은 특정 프로토콜 요구 사항을 구현해야 합니다.

  • 전송 : Streamable-http 전송이 필요합니다. 기본적으로 AWS의 세션 관리 및 로드 밸런싱과의 호환성을 위해 상태 비저장 모드(stateless_http=True)를 사용합니다.

  • 세션 관리: 플랫폼은 세션 격리를 위한 Mcp-Session-Id 헤더를 자동으로 추가합니다. 상태 비저장 모드에서 서버는 플랫폼 생성 Mcp-Session-Id 헤더를 거부하지 않도록 상태 비저장 작업을 지원해야 합니다.

작은 정보

또한 Amazon Bedrock AgentCore는 유도(다중 stateless_http=False 턴 사용자 상호 작용) 및 샘플링(LLM 생성 콘텐츠)과 같은 기능을 활성화하는 상태 저장 MCP 서버()를 지원합니다. MCP 서버가 동일한 도구 호출 내에서 여러 요청의 세션 컨텍스트를 유지해야 하는 경우 상태 저장 모드가 필요합니다. 자세한 내용과 예제는 상태 저장 MCP 서버 기능을 참조하세요.

MCP 세션 관리 및 microVM 고정성

모델 컨텍스트 프로토콜(MCP)은 Mcp-Session-Id 헤더를 사용하여 세션 상태 및 라우팅 요청을 관리합니다. MCP 사양은 MCP 스트리밍 가능한 HTTP 전송을 참조하세요.

MicroVM 고정성: Amazon Bedrock AgentCore는 Mcp-Session-Id 헤더를 사용하여 요청을 동일한 microVM 인스턴스로 라우팅합니다. 클라이언트는 응답에서 Mcp-Session-Id 반환된를 캡처하고 세션 선호도를 보장하기 위해 모든 후속 요청에 포함해야 합니다. 일관된 세션 ID가 없으면 각 요청이 새 microVM으로 라우팅되어 콜드 스타트로 인한 추가 지연 시간이 발생할 수 있습니다.

상태 비저장 MCP(stateless_http=True):

  • 플랫폼은를 생성하고 MCP 서버에 대한 요청에 Mcp-Session-Id 포함합니다.

  • MCP 서버는 플랫폼 제공 세션 ID를 수락해야 합니다(거부하지 않음).

  • 플랫폼은 응답에서 클라이언트Mcp-Session-Id에 동일한를 반환합니다.

  • 클라이언트는 microVM 선호도에 대한 모든 후속 요청에이 세션 ID를 포함해야 합니다.

상태 저장 MCP(stateless_http=False):

  • 클라이언트는 Mcp-Session-Id 헤더 없이 초기화 요청을 보냅니다.

  • 플랫폼은 응답Mcp-Session-Id으로를 반환합니다.

  • 클라이언트는 세션 상태 및 microVM 선호도 모두에 대한 Mcp-Session-Id 모든 후속 요청에 이를 포함해야 합니다.

상태 저장 MCP 세션 관리에 대한 자세한 내용은 MCP 세션 관리 사양을 참조하세요.

참고

두 모드 모두에서 Amazon Bedrock AgentCore는 항상 Mcp-Session-Id 헤더를 클라이언트에 반환합니다. 최적의 성능을 위해 항상이 헤더를 캡처하고 재사용합니다.

컨테이너 요구 사항

MCP 서버는 다음 사양을 충족하는 컨테이너화된 애플리케이션으로 배포되어야 합니다.

  • 호스트: 0.0.0.0

  • 포트: 8000 - MCP 서버 통신을 위한 표준 포트(HTTP 프로토콜과 다름)

  • 플랫폼: ARM64 컨테이너 - AWS Amazon Bedrock AgentCore 런타임 환경과의 호환성에 필요합니다.

경로 요구 사항

/mcp - POST

용도

MCP RPC 메시지를 수신하고 에이전트의 도구 기능을 통해 처리하고 표준 MCP RPC 메시지를 사용하여 InvokeAgentRuntime API 페이로드를 완전히 전달합니다.

응답 형식

application/json 및를 응답 콘텐츠 유형text/event-stream으로 지원하는 JSON-RPC 기반 요청/응답 형식

사용 사례

/mcp 엔드포인트는 다음과 같은 몇 가지 주요 용도로 사용됩니다.

  • 도구 호출 및 관리

  • 에이전트 기능 검색

  • 리소스 액세스 및 조작

  • 다단계 에이전트 워크플로

OAuth 인증 응답

OAuth로 구성된 에이전트는 RFC 6749(OAuth 2.0) 인증 표준을 따릅니다. 인증이 누락된 경우 서비스는 클라이언트가 GetRuntimeProtectedResourceMetadata API를 통해 권한 부여 서버 엔드포인트를 검색할 수 있도록 (RFC 7235에 따라) WWW-Authenticate 헤더와 함께 401 무단 응답을 반환합니다.

401 권한이 없음

권한 부여 헤더가 누락되거나 비어 있을 때 반환됩니다.

응답에는 다음과 같은 WWW-Authenticate 헤더가 포함됩니다.

WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
참고

SigV4-configured 에이전트는 ACCESS_DENIED 오류와 함께 HTTP 403을 반환하며 WWW-Authenticate 헤더를 포함하지 않습니다.