A2A와 MCP 통합 구현
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
AI 개발자, 시스템 엔지니어, 프로토콜 구현자
- 난이도: 중간 (API 키 설정, 서버 구성, 프레임워크 이해 필요)
핵심 요약
- A2A와 MCP 통합을 통해 다양한 서드파티 서비스와의 협업이 가능
MCP 서버
를 통해 FinnHub API와 Serper.dev API 연동- 플래닝 에이전트가 사용자 쿼리를 분해 후 서브태스크로 전달
- 예:
stock_report_agent
와google_search_agent
에 분배 - A2A Registry를 통해 에이전트 발견 및 협업 구현
/.well-known/agent.json
엔드포인트 사용
섹션별 세부 요약
1. A2A와 MCP 개요
- A2A 프로토콜
- 다양한 에코시스템 간 에이전트 협업 지원
/.well-known/agent.json
을 통해 에이전트 발견- MCP 프로토콜
- 서드파티 서비스와의 통신을 표준화
get_symbol_from_query
,get_price_of_stock
등 MCP 서버 툴 제공
2. 시스템 아키텍처
- 호스트 에이전트
- 내부 인프라에 배포
- MCP 서버와 연동하여 외부 서비스 접근
- 리모트 에이전트
- 외부 인프라에 배포
- A2A 프로토콜을 통해 호스트 에이전트와 통신
3. MCP 서버 구성
- 두 개의 MCP 서버 정의
search_server.py
: Serper.dev API 연동 (웹 검색)stocks_server.py
: FinnHub API 연동 (주식 가격)- 에이전트와 MCP 서버 간 통신
return_sse_mcp_tools_stocks
함수를 통해 MCP 서버 연결
4. 개발 환경 설정
- 필수 사전 조건
UV
설치, Google API Key, Finnhub API Key- Gemini API 무료 계층 사용 시 모델 이름 변경 필요
- 환경 변수 설정
.env
파일에FINNHUB_API_KEY
,GOOGLE_API_KEY
,SERPER_DEV_API_KEY
입력
5. 실행 및 테스트
- 서버 실행 명령어
uv run mcp_server/sse/stocks_server.py
uv run a2a_servers/agent_servers/stock_report_agent_server.py
- 사용자 쿼리 예시
"Apple의 주식 가격과 회사 동향을 알려줘"
- 플래닝 에이전트가 서브태스크 분배 후 결과 합성
결론
- A2A와 MCP 통합 구현을 위해 MCP 서버 구성, 에이전트 특화, API 키 설정이 필수
- A2A Registry를 통해 에이전트 발견 및 협업 가능
- 실제 구현 시
/.well-known/agent.json
엔드포인트와 MCP 서버 연동을 체크 - 환경 변수 설정과 서버 실행 순서를 준수해 시스템 안정성 확보