Articleaws.amazon.com·2026년 7월 8일·0

Building and connecting a production-ready ecommerce MCP server using Amazon Bedrock AgentCore and Mistral AI Studio

Quick Summary

이 글은 FastMCP 기반 전자상거래 MCP 서버를 만들고 Amazon Bedrock AgentCore Runtime, Amazon Cognito, DynamoDB, Mistral AI Vibe와 연결해 인증·데이터 격리·배포까지 갖춘 AI 쇼핑 도우미를 구축하는 과정을 설명합니다.

Building and connecting a production-ready ecommerce MCP server using Amazon Bedrock AgentCore and Mistral AI Studio 관련 대표 이미지

🖼️ 인포그래픽

Building and connecting a production-ready ecommerce MCP server using Amazon Bedrock AgentCore and Mistral AI Studio 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Building and connecting a production-ready ecommerce MCP server using Amazon Bedrock AgentCore and Mistral AI Studio 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 FastMCP 기반 전자상거래 MCP 서버를 만들고 Amazon Bedrock AgentCore Runtime, Amazon Cognito, DynamoDB, Mistral AI Vibe와 연결해 인증·데이터 격리·배포까지 갖춘 AI 쇼핑 도우미를 구축하는 과정을 설명합니다.

📌 핵심 요약

  • 전자상거래 팀이 AI 기반 고객 경험을 빠르게 출시하려면 클라이언트별 API 코드, 컨테이너 운영, 복잡한 인증을 직접 구현해야 하는 부담이 있었고, 글은 이를 MCP 표준과 관리형 런타임으로 줄이는 접근을 제시합니다.
  • 구축 대상은 상품 검색, 주문 생성, 리뷰 제출, 반품 처리 등을 지원하는 전자상거래 MCP 서버이며, Python과 FastMCP로 도구를 정의하고 Amazon Bedrock AgentCore Runtime에서 컨테이너로 실행합니다.
  • 아키텍처는 애플리케이션 계층, 데이터 계층, 보안 계층으로 나뉘며, DynamoDB 다섯 개 테이블이 상거래 데이터를 저장하고 Cognito와 AgentCore Runtime이 사용자 인증 및 JWT 검증을 담당합니다.
  • 요청 흐름은 Vibe에서 Cognito 로그인으로 JWT를 받은 뒤 MCP 요청을 AgentCore 엔드포인트로 보내고, AgentCore가 토큰을 검증한 후 애플리케이션이 고객 ID를 확인해 해당 고객 데이터만 조회하는 방식입니다.
  • 프로젝트는 MCP 서버 코드, CDK 인프라 코드, AgentCore 배포 설정으로 구성되며, get_order_history 같은 도구는 인증 확인, 고객별 데이터 조회, 상품 정보 보강, 구조화된 응답 반환의 패턴을 보여줍니다.

🧩 주요 포인트

  1. 전자상거래 팀이 AI 기반 고객 경험을 빠르게 출시하려면 클라이언트별 API 코드, 컨테이너 운영, 복잡한 인증을 직접 구현해야 하는 부담이 있었고, 글은 이를 MCP 표준과 관리형 런타임으로 줄이는 접근을 제시합니다.
  2. 구축 대상은 상품 검색, 주문 생성, 리뷰 제출, 반품 처리 등을 지원하는 전자상거래 MCP 서버이며, Python과 FastMCP로 도구를 정의하고 Amazon Bedrock AgentCore Runtime에서 컨테이너로 실행합니다.
  3. 아키텍처는 애플리케이션 계층, 데이터 계층, 보안 계층으로 나뉘며, DynamoDB 다섯 개 테이블이 상거래 데이터를 저장하고 Cognito와 AgentCore Runtime이 사용자 인증 및 JWT 검증을 담당합니다.
  4. 요청 흐름은 Vibe에서 Cognito 로그인으로 JWT를 받은 뒤 MCP 요청을 AgentCore 엔드포인트로 보내고, AgentCore가 토큰을 검증한 후 애플리케이션이 고객 ID를 확인해 해당 고객 데이터만 조회하는 방식입니다.
  5. 프로젝트는 MCP 서버 코드, CDK 인프라 코드, AgentCore 배포 설정으로 구성되며, get_order_history 같은 도구는 인증 확인, 고객별 데이터 조회, 상품 정보 보강, 구조화된 응답 반환의 패턴을 보여줍니다.

🧠 상세 정리

1. 문제의식과 글의 목표

원문은 전자상거래 팀이 AI 기반 고객 경험을 더 빠르게 출시하려 할 때 겪는 병목에서 출발합니다. 일반적으로 운영 가능한 AI 어시스턴트를 만들려면 클라이언트마다 별도 API 통합 코드를 작성하고, 컨테이너 인프라를 관리하며, 인증까지 복잡하게 구성해야 하므로 출시가 지연되고 보안 위험도 커집니다. 글은 Amazon Bedrock AgentCore, MCP 표준, Mistral AI Studio의 Vibe, Amazon Cognito를 조합해 이 과정을 단순화하는 방법을 설명합니다. 최종 목표는 실제 전자상거래 기능을 수행하고 사용자별 데이터 격리를 적용하는 프로덕션 지향 MCP 서버를 끝까지 구축하고 연결하는 것입니다.

2. 구축하는 서버의 기능과 결과물

글에서 만드는 서버는 단순한 데모 챗봇이 아니라 상품 검색, 주문 배치, 리뷰 제출, 반품 처리 같은 전자상거래 작업을 MCP 도구로 노출하는 서버입니다. 사용자는 Mistral AI Vibe의 대화형 인터페이스를 통해 자연어로 요청하고, AI 모델은 필요한 MCP 도구를 선택해 서버에 호출을 보냅니다. 서버는 Amazon Cognito로 인증된 사용자를 기준으로 데이터 접근 범위를 제한하고, Amazon DynamoDB에 저장된 상품·고객·주문·리뷰·반품 데이터를 사용합니다. 글의 끝에서 독자는 Vibe에서 자연어 질의에 응답하고 다른 MCP 호환 클라이언트도 연결할 수 있는 MCP 서버를 갖게 되는 흐름으로 안내됩니다.

3. 전제 조건과 개발 환경

원문은 실습을 위해 필요한 권한과 도구를 먼저 정리합니다. AWS 계정에는 DynamoDB 테이블, Cognito 사용자 풀, IAM 역할, ECR 저장소를 만들고 Amazon Bedrock AgentCore에 접근할 수 있는 권한이 필요합니다. 로컬 개발 환경에는 Python 3.10 이상, Node.js 18 이상, AWS CDK, AWS CLI, Amazon Bedrock AgentCore CLI가 필요하다고 설명합니다. 또한 Vibe에 접근 가능한 Mistral AI 계정이 필요하며, 컨테이너 이미지는 AgentCore Runtime이 AWS CodeBuild를 사용해 클라우드에서 빌드하므로 Docker는 필수 조건이 아니라고 명시합니다.

4. 세 계층으로 나눈 솔루션 구조

솔루션은 애플리케이션 계층, 데이터 계층, 보안 계층으로 나뉩니다. 애플리케이션 계층에서는 Python 애플리케이션이 FastMCP로 작성되고, 여섯 개 전자상거래 도구를 /mcp 엔드포인트로 노출하며 상태 확인을 위한 /health 엔드포인트도 제공합니다. 데이터 계층에서는 Products, Customers, Orders, Reviews, Returns 다섯 개 DynamoDB 테이블이 전자상거래 데이터를 저장하고, 온디맨드 용량과 글로벌 보조 인덱스로 확장성과 조회 패턴을 지원합니다. 보안 계층에서는 Cognito가 ID 공급자 역할을 하고 AgentCore Runtime이 인프라 수준에서 JWT를 검증하며, 애플리케이션이 사용자 속성을 추출해 고객별 데이터 접근 범위를 제한합니다.

5. CDK 스택과 초기 데이터 구성

배포는 AWS CDK로 정의된 네 개 인프라 스택을 통해 진행됩니다. DynamoDBStack은 다섯 개 테이블과 인덱스를 만들고 개발 환경에서 쉽게 정리할 수 있도록 구성되며, CognitoStack은 고객 식별을 위한 커스텀 속성과 Vibe 연동을 위한 OAuth 2.1 앱 클라이언트를 생성합니다. DataLoaderStack은 Lambda 커스텀 리소스를 사용해 상품 50개, 고객 10명, 주문 50건, 리뷰와 반품 등 현실적인 테스트 데이터를 데이터베이스에 적재합니다. AgentCoreRuntimeStack은 DynamoDB, Cognito, CloudWatch 접근에 필요한 IAM 역할과 컨테이너 이미지를 위한 ECR 저장소, 배포 명령에서 참조하는 설정 파라미터를 준비합니다.

6. Vibe에서 MCP 서버까지의 요청 흐름

사용자가 Vibe에서 서버를 사용하기 전에는 OAuth 2.1 로그인 흐름을 통해 Cognito 호스팅 로그인 페이지에서 인증을 수행합니다. 인증이 끝나면 Cognito가 JWT를 발급하고 Vibe는 이를 세션 동안 저장한 뒤, 사용자가 예를 들어 최근 주문을 보여 달라고 요청하면 AI 모델이 get_order_history MCP 도구 호출이 필요하다고 판단합니다. Vibe는 Bearer JWT 토큰을 포함한 MCP 요청을 HTTPS로 AgentCore 엔드포인트에 보내고, AgentCore의 JWT 검증기가 Cognito 사용자 풀을 기준으로 서명, 만료, 클라이언트 권한을 확인합니다. 검증된 요청만 MCP 서버 컨테이너에 도달하고, 서버는 고객 ID를 확인한 뒤 DynamoDB에서 해당 고객의 주문 데이터를 조회해 구조화된 응답을 반환합니다.

7. 계층형 인증과 고객별 데이터 격리

원문은 보안을 단일 지점에 맡기지 않고 두 계층으로 나눕니다. 첫 번째 계층인 AgentCore Runtime은 애플리케이션 코드가 실행되기 전에 JWT의 암호학적 서명, 발급자, 만료, 허용된 클라이언트 ID를 검증하고, 잘못된 토큰은 즉시 거부합니다. 두 번째 계층인 애플리케이션은 검증된 토큰을 고객 ID로 해석하고, 이 ID를 사용해 주문, 리뷰, 반품 같은 데이터 접근을 해당 고객 범위로 제한합니다. 이런 구조는 인프라 수준의 인증과 애플리케이션 수준의 권한 범위 지정을 결합해 한 사용자가 다른 사용자의 데이터에 접근하지 못하도록 하는 방어 심층화 패턴을 보여줍니다.

8. 프로젝트 구성과 FastMCP 도구 정의

프로젝트는 MCP 서버 애플리케이션, CDK 인프라 코드, AgentCore 배포 설정으로 구성됩니다. mcp_server 디렉터리에는 핵심 비즈니스 로직이 있으며, server.py는 FastMCP 데코레이터로 여섯 개 전자상거래 도구를 정의하고 HTTP 전송을 설정합니다. utils/auth.py는 JWT 토큰에서 고객 ID를 추출하는 역할을 하고, utils/dynamodb_client.py는 상품 검색, 주문 생성, 리뷰 조회 같은 DynamoDB 작업을 추상화합니다. 인프라 코드는 ecommerce-mcp-cdk 디렉터리에 있고, .bedrock_agentcore.yaml 파일은 AgentCore가 JWT 검증에 사용할 Cognito 사용자 풀, 허용된 클라이언트 ID, 애플리케이션으로 전달할 요청 헤더 정보를 담습니다.

9. get_order_history 예제로 본 구현 패턴

원문은 get_order_history 도구를 예로 들어 MCP 도구 정의 방식과 인증 처리 흐름을 보여줍니다. 도구는 @mcp.tool() 데코레이터가 붙은 Python 함수로 정의되며, 함수 파라미터, 타입 힌트, 문서 문자열이 도구 스키마가 되어 AI 모델이 언제 어떻게 호출할지 판단하는 근거가 됩니다. 이 도구는 문서 문자열에 인증이 필요하다고 명시하고, 실행 초기에 현재 고객 ID를 확인해 익명 사용자인 경우 오류를 반환합니다. 이후 고객 주문 목록을 조회하고 각 주문의 상품 ID를 사용해 상품명과 카테고리를 보강한 뒤, AI 모델이 자연어 답변을 생성하기 쉬운 구조화된 응답을 반환합니다.

🧾 핵심 주장 / 시사점

  • MCP 표준을 사용하면 클라이언트별로 별도 통합을 만드는 대신 하나의 서버를 여러 AI 클라이언트가 공유할 수 있어 통합 비용과 반복 구현을 줄일 수 있습니다.
  • 인프라 계층의 JWT 검증과 애플리케이션 계층의 고객별 데이터 스코핑을 분리한 점은 인증과 권한 범위를 명확히 나누는 실무형 보안 패턴으로 볼 수 있습니다.
  • 도구 응답에 상품명과 카테고리처럼 사람에게 유용한 정보를 함께 보강하는 설계는 AI 모델이 추가 호출 없이 더 자연스럽고 이해하기 쉬운 답변을 만들도록 돕습니다.

✅ 액션 아이템

  • Amazon Bedrock AgentCore Runtime과 FastMCP로 상품 검색·주문·리뷰·반품 도구를 하나의 MCP 서버 흐름으로 통합해 처리 부담을 낮춘다.
  • Cognito JWT 검증 후 고객 ID를 기준으로 DynamoDB 다섯 개 테이블 조회를 제한해 클라이언트 데이터 격리 규칙을 고정한다.
  • 요청 흐름을 Vibe 인증→MCP 전송→토큰 검증→고객 데이터 조회→상품 정보 보강 응답으로 정리해 CDK 배포 설정과 정합성 점검한다.

❓ 열린 질문

  • Vibe 로그인 토큰이 만료되거나 무효화되면 AgentCore Runtime에서 어떤 재시도·차단 정책을 두는 것이 적절한가?
  • DynamoDB의 다섯 테이블이 커지면 주문/리뷰/반품/상품 조회 간 정합성 충돌은 어떤 기준으로 해결해야 할 것인가?
  • FastMCP 도구 응답에서 상품 정보 보강이 실패할 때 get_order_history형 구조화 응답 규격은 어떻게 보존되는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.