본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 31. 13:25

Lab 06: STDIO Transport를 사용하여 MCP 서버에 연결하기 | Strands Agentic AI

요약

STDIO 전송 방식을 사용하여 MCP 서버와 Strands 에이전트를 연결하는 실습 가이드입니다. AWS Documentation MCP 서버를 활용해 에이전트가 직접 문서를 검색하고 답변하는 어시스턴트를 구축하는 방법을 다룹니다.

핵심 포인트

  • STDIO 전송 방식의 개념과 로컬 개발 시의 장점 이해
  • MCP 클라이언트와 서버 간의 통신 메커니즘 학습
  • AWS Documentation MCP 서버 연결 및 도구 동적 발견
  • Amazon Bedrock 모델을 활용한 AI 어시스턴트 구현

이전 실습에서는 Model Context Protocol (MCP)이 무엇인지, 그리고 왜 이것이 AI 에이전트가 도구(tools)와 외부 시스템에 접근하는 표준 방식이 되고 있는지에 대해 배웠습니다.

이제 실제로 MCP 기반의 에이전트를 구축해 볼 시간입니다.

이번 실습에서는 STDIO 전송(transport) 방식을 사용하여 Strands 에이전트를 AWS Documentation MCP 서버에 연결하고, 에이전트가 AWS 문서에서 직접 정보를 검색할 수 있도록 할 것입니다.

이 튜토리얼을 마칠 때쯤이면, 여러분은 MCP가 제공하는 도구를 사용하여 AWS 관련 질문에 답변할 수 있는 AWS Documentation Assistant를 갖게 될 것입니다.

📚 Strands Agentic AI 실습 시리즈

⬅️ 이전: Lab 05: MCP 소개

📍 현재: Lab 06: STDIO Transport를 사용하여 MCP 서버에 연결하기

➡️ 다음: Lab 07: MCP 도구 및 기능 탐색

🚀 학습 내용

이번 실습에서는 다음 내용을 배웁니다:

  • STDIO 전송(transport)이란 무엇인가
  • MCP 클라이언트가 MCP 서버와 통신하는 방법
  • AWS Documentation MCP 서버에 연결하는 방법
  • 사용 가능한 도구를 동적으로 발견하는 방법
  • MCP 도구로 구동되는 AI 어시스턴트를 구축하는 방법

🤖 왜 STDIO Transport인가?

MCP는 여러 가지 통신 방식을 지원합니다.

가장 간단한 방식은 STDIO입니다.

Agent
  ↓
STDIO
...

네트워크를 통해 통신하는 대신, 에이전트와 MCP 서버는 표준 입력(standard input) 및 표준 출력(standard output) 스트림을 통해 통신합니다.

장점:

  • 간단한 설정
  • 빠른 로컬 개발
  • 네트워크 설정 불필요
  • 실험에 매우 적합

STDIO를 두 애플리케이션이 직접적인 개인 대화를 나누는 것이라고 생각하면 됩니다.

🛠️ 사전 요구 사항

시작하기 전에 다음 사항이 준비되었는지 확인하세요:

  • Python 3.10 이상
  • 구성된 AWS 자격 증명 (credentials)
  • Amazon Bedrock 접근 권한
  • uv 설치 완료
  • Strands SDK 설치 완료
  • MCP SDK 설치 완료

의존성 설치:

pip install strands-agents
pip install mcp

📜 스크립트

전체 예제부터 시작하겠습니다.

from strands import Agent, tool
from strands.models.bedrock import BedrockModel

...

이제 세부 내용을 살펴보겠습니다.

⚙️ 1단계: MCP 구성 요소 임포트 (Import)

from strands.tools.mcp import MCPClient
from mcp import stdio_client, StdioServerParameters

이 임포트(import) 문들은 MCP 통신을 위한 빌딩 블록을 제공합니다.

MCPClient

Strands와 MCP 서버 사이의 브릿지(bridge)를 생성합니다.

stdio_client

표준 입력(standard input) 및 표준 출력(standard output)을 통한 통신을 처리합니다.

StdioServerParameters

MCP 서버가 어떻게 시작되어야 하는지를 정의합니다.

⚙️ 2단계: Bedrock 모델 구성

bedrock_model = BedrockModel(
    model_id="<YOUR_MODEL_ID>",
    region_name="eu-west-2",
...

이 모델은 다음을 수행합니다:

  • 추론 (Reasoning)
  • 도구 선택 (Tool selection)
  • 응답 생성 (Response generation)

MCP 서버는 도구(tools)를 제공합니다.

LLM은 이를 어떻게 사용할지 결정합니다.

⚙️ 3단계: MCP 서버 구성

stdio_mcp_client = MCPClient(
    lambda: stdio_client(
        StdioServerParameters(
...

이 코드는 AWS Documentation MCP 서버를 실행합니다.

아키텍처 (Architecture):

Strands Agent
       ↓
MCP Client
...

MCP 서버는 에이전트(agent)에게 도구를 자동으로 노출합니다.

⚙️ 4단계: 플랫폼별 차이점

macOS/Linux

command="uvx"
args=[
    "awslabs.aws-documentation-mcp-server@latest"
...

Windows

command="uvx"
args=[
    "--from",
...

서버 패키지는 동일합니다.

실행 구문(launch syntax)만 변경됩니다.

⚙️ 5단계: MCP 세션 시작

with stdio_mcp_client:

이 코드는 MCP 서버 세션을 시작합니다.

컨텍스트(context) 내부로 진입하면:

  • 서버가 실행됩니다.
  • 연결이 수립됩니다.
  • 도구를 사용할 수 있게 됩니다.

실행이 완료되면 리소스는 자동으로 정리됩니다.

⚙️ 6단계: 사용 가능한 도구 탐색

tools = stdio_mcp_client.list_tools_sync()

이 부분이 MCP가 강력해지는 지점입니다.

도구를 수동으로 생성하는 대신:

@tool
def search_docs():
    ...

서버에서 제공하는 도구를 단순히 탐색(discover)할 수 있습니다.

Connect
    ↓
Discover
...

커스텀 도구 구현이 필요하지 않습니다.

⚙️ 7단계: 에이전트 생성

agent = Agent(
    system_prompt="""
    You are an AWS Documentation expert.
...

주의:

tools=tools

이 도구들은 MCP 서버로부터 직접 제공됩니다.

이제 에이전트(Agent)는 추가적인 코딩 없이도 AWS 문서(Documentation) 기능에 접근할 수 있습니다.

⚙️ 단계 8: 질문하기

agent("What is AWS Lambda?")

워크플로(Workflow):

사용자 질문 (User Question)
       ↓
에이전트 분석 (Agent Analysis)
...

에이전트는 모델의 메모리(Memory)에만 의존하는 대신 공식 AWS 문서를 사용합니다.

▶️ 에이전트 실행하기

실행:

python agent.py

또는:

uv run labs/06-mcp-stdio-client/agent.py

📊 상호작용 예시

사용자 (User)

What is AWS Lambda?

에이전트 워크플로 (Agent Workflow)

질문 수신 (Question Received)
       ↓
문서 도구 발견 (Discover Documentation Tool)
...

응답 (Response)

AWS Lambda는 서버를 프로비저닝(Provisioning)하거나 관리할 필요 없이 코드를 실행할 수 있게 해주는 서버리스 컴퓨팅(Serverless Compute) 서비스입니다.

Lambda는 애플리케이션을 자동으로 확장하며, 사용된 컴퓨팅 시간만큼만 비용을 청구합니다.

🔍 내부적으로 어떤 일이 일어났나요?

질문이 던져졌을 때:

  1. LLM이 요청을 분석했습니다.
  2. 문서 도구(Documentation tools)를 발견했습니다.
  3. 가장 관련성이 높은 도구를 선택했습니다.
  4. MCP 서버가 AWS 문서를 검색(Retrieve)했습니다.
  5. 결과가 모델로 반환되었습니다.
  6. 모델이 최종 답변을 생성했습니다.

에이전트는 커스텀 파이썬(Python) 함수를 전혀 만들 필요가 없었습니다.

MCP 서버가 모든 것을 제공했습니다.

💡 개발자들이 MCP를 좋아하는 이유

MCP가 없다면:

❌ 커스텀 통합(Integration) 구축
❌ 도구를 수동으로 유지 관리
❌ 모든 서비스에 대한 래퍼(Wrapper) 작성

MCP가 있다면:

✅ 한 번의 연결로 해결
✅ 도구 자동 발견
✅ 기존 통합 기능 재사용
✅ 에이전트를 더 빠르게 구축

MCP는 통합 과정을 플러그 앤 플레이(Plug-and-play) 컴포넌트로 바꿔줍니다.

🎯 핵심 요약

  • STDIO는 가장 단순한 MCP 전송(Transport) 방식입니다.
  • MCP 서버는 도구를 동적으로 노출(Expose)합니다.
  • 에이전트는 도구를 자동으로 발견할 수 있습니다.
  • AWS Documentation MCP 서버는 사실에 기반한 AWS 정보를 제공합니다.
  • MCP는 통합 노력을 획기적으로 줄여줍니다.
  • Strands Agents는 MCP와 원활하게 통합됩니다.

📚 소스 코드

GitHub 저장소(Repository):

https://github.com/d3vjamal/strands-agents-labs

🔗 계속 학습하기

⬅️ 이전 Lab

Lab 05: MCP 소개

➡️ 다음 Lab

Lab 07: MCP 도구 및 기능 탐색

🚀 다음 Lab

다음 튜토리얼에서는 MCP 서버가 노출하는 도구(Tools)를 살펴보고, 해당 도구들의 스키마(Schemas)를 이해하며, 에이전트(Agents)가 주어진 작업에 적합한 도구를 어떻게 선택하는지 배워보겠습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0