본문으로 건너뛰기

Amazon Bedrock AgentCore Runtime의 상태 유지 MCP 클라이언트 기능 소개

Amazon Bedrock AgentCore Runtime에 MCP 상태 유지 기능이 추가되어 사용자 입력 요청, LLM 샘플링, 실시간 진행률 알림이 가능해졌다.

섹션별 상세

01
기존 무상태(Stateless) 방식의 한계를 극복하기 위해 세션 기반의 상태 유지 모드가 도입됐다. stateless_http=False 설정을 통해 각 사용자 세션마다 독립적인 마이크로VM이 할당되며, Mcp-Session-Id 헤더를 통해 통신 연속성을 보장한다. 세션은 최대 8시간 또는 15분의 유휴 시간 동안 유지되어 복잡한 멀티턴 워크플로를 지원한다.
python
mcp.run(
    transport="streamable-http",
    host="0.0.0.0",
    port=8000,
    stateless_http=False # Enable stateful mode
)

stateless_http 플래그를 False로 설정하여 Amazon Bedrock AgentCore에서 상태 유지 모드를 활성화하는 코드

02
Elicitation 기능을 통해 에이전트가 실행 중간에 사용자에게 구조화된 데이터를 요청할 수 있다. 서버가 elicitation/create 요청을 보내면 클라이언트는 이를 폼이나 프롬프트 형태로 렌더링하여 사용자의 응답을 수집한다. Pydantic 모델을 사용하여 입력 스키마를 정의함으로써 지출 내역 입력이나 예약 확인 같은 대화형 도구를 구현할 수 있다.
python
@mcp.tool()
async def add_expense_interactive(user_alias: str, ctx: Context) -> str:
    # Step 1: Ask for the amount
    result = await ctx.elicit('How much did you spend?', AmountInput)
    if not isinstance(result, AcceptedElicitation):
        return 'Expense entry cancelled.'
    amount = result.data.amount

ctx.elicit를 사용하여 사용자에게 대화형으로 지출 금액 입력을 요청하는 도구 구현 예시

03
Sampling 기능을 사용하면 MCP 서버가 클라이언트에 연결된 LLM의 추론 능력을 직접 활용할 수 있다. 서버는 별도의 API 키 없이도 ctx.sample()을 호출하여 자연어 요약이나 분석 결과 생성을 클라이언트에 위임한다. 이는 서버 로직과 모델 자격 증명을 분리하면서도 LLM의 생성 능력을 워크플로에 통합할 수 있게 한다.
python
ai_analysis = 'Analysis unavailable.'
try:
    response = await ctx.sample(messages=prompt, max_tokens=300)
    if hasattr(response, 'text') and response.text:
        ai_analysis = response.text
except Exception:
    pass

ctx.sample을 호출하여 클라이언트 측 LLM에 데이터 분석 및 텍스트 생성을 요청하는 코드

04
Progress Notification은 장시간 실행되는 작업의 실시간 상태를 클라이언트에 전달하는 메커니즘이다. ctx.report_progress(progress, total) 함수를 호출하면 서버는 즉시 알림을 발송하고 다음 단계로 진행하는 fire-and-forget 방식으로 작동한다. 데이터 검색이나 배치 처리처럼 수 초 이상 걸리는 작업에서 사용자에게 진행률 바를 표시하여 사용자 경험을 개선한다.

용어 해설

모델 컨텍스트 프로토콜(Model Context Protocol (MCP))
LLM 애플리케이션이 외부 도구 및 데이터 소스와 연결되는 방식을 정의하는 개방형 표준 프로토콜이다. 서버와 클라이언트 간의 표준화된 통신 규약을 제공하여 AI 에이전트가 다양한 외부 리소스를 일관된 방식으로 활용할 수 있게 한다.
정보 도출(Elicitation)
MCP 서버가 실행 도중 클라이언트를 통해 사용자에게 추가 정보나 확인을 요청하는 기능이다. 워크플로 중간에 사용자 입력을 받아 의사결정을 내리거나 구조화된 데이터를 수집하여 상호작용형 에이전트를 구현하는 데 필수적이다.
샘플링(Sampling)
MCP 서버가 자체적인 API 키 없이도 클라이언트에 연결된 LLM에 텍스트 생성을 요청하는 메커니즘이다. 서버 로직 내에서 자연어 요약이나 추천 등의 생성 작업이 필요할 때 클라이언트의 모델 자원을 활용할 수 있게 해준다.
에이전트코어 런타임(AgentCore Runtime)
Amazon Bedrock에서 MCP 서버를 호스팅하고 실행하기 위한 관리형 인프라 환경이다. 각 사용자 세션별로 격리된 마이크로VM을 할당하여 보안성을 높이고 상태 유지(Stateful) 기능을 제공한다.

기술

  • Amazon Bedrock
  • AgentCore Runtime
  • MCP
  • FastMCP
  • Python
  • Amazon DynamoDB
  • Claude Haiku

활용 사례

  • 대화형 지출 관리 봇
  • 실시간 진행률 표시가 필요한 데이터 분석 에이전트
  • 사용자 승인이 필요한 금융 트랜잭션 워크플로
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 04. 09.수집 2026. 04. 10.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.