ATDF와 MCP 간의 상호 운용성
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
AI 에이전트 및 외부 도구 통합을 처리하는 개발자, 엔지니어
핵심 요약
- ATDF는 JSON/YAML 기반의 정적 도구 설명 형식으로,
tool_id
,description
,when_to_use
등의 필드를 사용합니다. - MCP는 JSON-RPC 2.0 기반의 동적 프로토콜로,
name
,inputSchema
,annotations
등의 필드를 사용하며,tools/list
및tools/call
엔드포인트를 통해 실시간으로 도구를 탐색하고 호출합니다. - 상호 운용성을 위해 MCP의
name
→tool_id
,inputSchema
→how_to_use.inputs
등의 필드 매핑을 수동 또는 스크립트로 처리해야 합니다. - ATDF SDK 및 MCP SDK를 활용하여 형식 검증 및 데이터 직렬화를 수행할 수 있습니다.
섹션별 세부 요약
- ATDF와 MCP의 정의 및 목적
- ATDF는 도구의 기능, 사용 시기, 사용 방법을 정적으로 설명하는 표준입니다.
- MCP는 AI 에이전트가 외부 도구와 데이터 소스를 런타임에 탐색 및 호출하는 프로토콜입니다.
- MCP는 "Multimodal Callable Procedures"가 아닌 Model Context Protocol이라는 공식 명칭을 사용합니다.
- 구조적 차이 및 필드 매핑
- ATDF의
how_to_use.inputs
는 이름, 타입, 설명을 포함한 파라미터 목록입니다. - MCP의
inputSchema
는 JSON Schema 기반의 객체 정의를 사용합니다. - ATDF는
success
/failure
메시지, MCP는 표준화된 출력 스키마가 없으며, 결과는 자유 형식으로 반환됩니다.
- 현재 상태 및 통합 방법
- 공식적인 ATDF-MCP 통합은 없으나, AutoGen의
McpToolAdapter
를 통해 MCP 도구를BaseTool
객체로 변환할 수 있습니다. - Python 스크립트를 사용하여 MCP 필드를 ATDF 형식으로 매핑하고, ATDF의 공식 SDK(
pip install agent-tool-description-format
)로 검증할 수 있습니다. - 공동체 노력으로 MCP와 AutoGen 에이전트 간 통합 사례(
fetch
서버 등)가 존재합니다.
- 구현 예시 및 권장 사항
- 예시:
fetch
도구의 MCP 정의(url
,raw
파라미터)를 ATDF의tool_id
,how_to_use.inputs
로 매핑합니다. - 필수 검증: ATDF v0.2.0의 다국어 메타데이터, 버전 정보를 포함하여 JSON 스키마로 검증합니다.
- 자동화: MCP SDK를 통해
tools/list
요청으로 도구를 동적으로 가져올 수 있으며, ATDF SDK로 직렬화합니다.
결론
ATDF와 MCP는 각각 정적 도구 설명과 런타임 통신을 위한 서로 다른 목적을 가집니다. 하지만 tool_id
와 inputSchema
등의 필드 매핑을 통해 상호 운용 가능한 시스템을 구축할 수 있습니다. 현재는 수동 스크립트 또는 AutoGen의 McpToolAdapter
를 사용해야 하지만, 공식 SDK와 JSON 스키마 검증을 통해 안정적인 통합이 가능합니다. 개발자는 ATDF의 다국어 지원 및 MCP의 동적 프로토콜 특성을 고려하여 도구 간 통합 전략을 설계해야 합니다.