SaM-92/mcp_autogen_sse_stdio
요약
본 문서는 AutoGen 프레임워크 내에서 Model Context Protocol (MCP)을 활용하여 AI 에이전트와 다양한 도구를 통합하는 실습 데모를 제공합니다. 이 데모는 로컬 환경(Stdio 전송 방식의 `math_server.py`)과 원격 서버(SSE 전송 방식의 Apify RAG Web Browser Actor)라는 두 가지 표준화된 통신 프로토콜을 통해 에이전트가 여러 도구에 접근하는 방법을 보여줍니다. 이를 통해 AI 에이전트가 로컬 및 원격 리소스에 관계없이 일관되게 기능을 사용할 수 있는 MCP의 유연성을 입증합니다.
핵심 포인트
- MCP를 사용하여 AutoGen 에이전트를 로컬(Stdio) 및 원격(SSE) 도구 서버와 통합하는 방법을 시연함.
- 로컬 계산기(`math_server.py`)는 Stdio 방식을 통해, 웹 브라우징 기능은 SSE 방식을 통해 MCP에 연결됨.
- AutoGen 에이전트는 사용자 질의에 따라 적절한 로컬 또는 원격 도구를 선택하여 작업을 수행할 수 있음.
- 이 예제는 AI 에이전트가 표준화된 프로토콜을 통해 다양한 유형의 외부 도구에 접근하는 방법을 보여주는 포괄적인 가이드임.
이 저장소는 AutoGen 프레임워크 내에서 **Model Context Protocol (MCP)**를 사용하여 AI 에이전트와 도구를 통합하는 실질적인 데모를 제공합니다.
시연되는 주요 기능:
이중 MCP 통합: AutoGen 에이전트를 다음 두 가지 방식으로 연결하는 방법을 보여줍니다:
-
Stdio 전송 방식을 사용하는 로컬 도구 서버(
math_server.py) -
Server-Sent Events (SSE) 전송 방식을 사용하는 원격 도구 서버(Apify의 RAG Web Browser Actor)
-
로컬 도구 예시:
math_server.py를 통해 로컬에서 실행되는 간단한 계산기(add,multiply) -
원격 도구 예시: 웹 검색 및 콘텐츠 검색을 위해 Apify의 MCP Server를 통한 Apify의 RAG Web Browser Actor 활용
-
AutoGen 에이전트: 사용자 질의에 답변하기 위해 두 세트의 도구를 모두 사용하도록 구성된
AssistantAgent
목표: 표준화된 통신 프로토콜(Stdio 및 SSE)을 통해 AI 에이전트가 로컬 또는 원격에 호스팅된 다양한 도구에 액세스할 수 있도록 하는 MCP의 유연성을 보여주는 것입니다.
시나리오: 예시 에이전트는 두 가지 서로 다른 질문에 답변합니다:
- 수학 문제 (
(3 + 5) x 12?): 로컬math_server.py를 사용할 것으로 예상됩니다. - 최근 뉴스 요청 ("Summarise the latest news of Iran and US negotiations..."): 원격 Apify 웹 브라우징 도구를 사용할 것으로 예상됩니다.
AutoGen: AI 에이전트 프레임워크 (autogen_agentchat, autogen_core, autogen_ext)
MCP: 도구 통합을 위한 Model Context Protocol
Python-dotenv: 환경 변수 관리를 위함
OpenAI API: LLM 기능을 위함
Apify API: 웹 브라우징 기능을 위함
환경을 설정하려면 다음 단계를 주의 깊게 따르십시오:
-
사전 요구 사항:
- Python 3.12가 설치되어 있는지 확인하십시오.
- 아직 설치되지 않았다면
uv를 설치하십시오:pip install uv
-
프로젝트 디렉토리로 이동:
cd mcp_autogen_sse_stdio -
가상 환경 생성 및 활성화:
uv를 사용하여 가상 환경 생성
uv venv --python 3.12
가상 환경 활성화
source .venv/bin/activate # macOS/Linux의 경우
# OR
.\.venv\Scripts\activate # Windows의 경우
의존성 설치:
프로젝트 의존성 설치
uv pip install -e .
문제 해결 참고 사항: MCP CLI 설치 중 문제가 발생하면 수동으로 설치할 수 있습니다:
uv add "mcp[cli]"
환경 변수 설정:
-
mcp_autogen_sse_stdio디렉토리에.env파일을 생성하십시오. -
API 키를 추가하십시오:
OPENAI_API_KEY=your_openai_api_key_here
APIFY_API_KEY=your_apify_api_key_here -
Apify MCP Server 페이지에서 Apify API 키를 가져오십시오.
-
파일을 생성하십시오.
상위 디렉토리(프로젝트 디렉토리의 한 단계 위)에 있는지 확인하십시오:
cd ..
uv를 사용하여 메인 스크립트를 실행하십시오:
uv run mcp_autogen_sse_stdio/main.py
이 명령은 다음을 수행하는 데모를 실행합니다:
- Apify 도구를 사용하여 이란-미국 협상에 관한 뉴스 요약
- 로컬 수학 도구를 사용하여 간단한 수학 문제 해결:
(3 + 5) x 12
MCP는 AI 모델과 도구 간의 통신을 표준화하는 프로토콜입니다. 이 예제는 MCP를 사용하는 두 가지 방법을 보여줍니다:
-
통신을 위해 표준 입출력 (Standard Input/Output)을 사용합니다.
-
도구가 사용자의 로컬 머신에서 실행됩니다.
-
예시: 우리의
math_server.py는 간단한 수학 연산을 제공합니다. -
통신을 위해 서버 전송 이벤트 (Server-Sent Events, SSE)를 사용합니다.
-
도구가 원격 서버(예: Apify)에서 실행됩니다.
-
예시: Apify의
rag-web-browser를 통한 웹 브라우징 기능
우리의 main.py는 다음을 시연합니다:
-
환경 설정 (Environment Setup):
- API 키를 로드하고 유효성을 검사합니다.
-
도구 구성 (Tool Configuration):
StdioServerParams를 사용하여 로컬 수학 도구를 설정합니다.SseServerParams를 사용하여 Apify의 웹 브라우저에 연결합니다 (API 출처: https://apify.com/apify/actors-mcp-server)
-
에이전트 생성 (Agent Creation):
- 두 가지 도구 세트를 모두 갖춘 AutoGen 어시스턴트를 생성합니다.
- 기본 모델로 GPT-4를 사용합니다.
-
작업 실행 (Task Execution):
-
두 가지 도구가 작동하는 모습을 보여주는 두 가지 데모 작업을 실행합니다.
- 뉴스 요약을 위한 웹 브라우징 (Web browsing)
- 산술 문제를 위한 수학 계산 (Math calculations)
사용자 (User) → AutoGen 에이전트 (Agent) → MCP 도구 (Tools) → 결과 (Results) → 사용자 (User)
이 예제는 MCP를 사용하여 서로 다른 유형의 도구들을 어떻게 하나의 에이전트에 쉽게 통합할 수 있는지 보여줍니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기