ADK-Rust의 Model Context Protocol
Model Context Protocol (MCP)은 AI 애플리케이션과 별도로 소유된 기능 사이의 경계입니다. MCP 서버는 tools, 읽기 가능한 리소스, 프롬프트 템플릿 및 인자 완성을 게시할 수 있습니다. 클라이언트는 해당 카탈로그를 검색하고 사설 통합 대신 협상된 프로토콜 메서드를 통해 통신합니다.
ADK-Rust 2는 공식 rmcp 2.2 SDK 및 MCP 2025-11-25 유형을 사용합니다.
ADK-Rust의 위치
Rendering architecture…
McpToolset은 초기화된 하나의 MCP 클라이언트 연결을 ADK-Rust에 맞게 조정합니다. McpServerManager는 로컬 표준 입출력 자식 프로세스의 변경 가능한 레지스트리를 소유하고 해당 tools를 집계합니다. 기능을 게시하는 애플리케이션은 프레임워크에서 사용하는 정확한 SDK 버전인 adk_tool::mcp::rmcp를 사용하여 MCP 서버를 구축할 수 있습니다.
적절한 표면 선택
| 필요한 작업 | 사용 | 소유권 |
|---|---|---|
| 알려진 로컬 서버 하나에 연결 | McpToolset + TokioChildProcess | 애플리케이션이 자식 프로세스를 시작합니다 |
| 하나의 원격 MCP 서비스 연결 | McpHttpClientBuilder | 원격 배포가 가용성을 소유합니다 |
| 런타임에 로컬 서버 정의 변경 | McpServerManager | 애플리케이션은 로컬 레지스트리와 자식 프로세스를 소유합니다 |
| MCP 서버 게시 | adk_tool::mcp::rmcp | 서비스가 스키마, 인증 및 부작용을 소유합니다 |
| 더 이상 사용되지 않는 샘플링 통합을 계속 작동시키기 | mcp-sampling 기능 | SEP-2577에서만 호환 가능 |
구현된 기능 맵
| 기능 | ADK-Rust API | 동작 |
|---|---|---|
| 도구 검색 및 호출 | McpToolset, Toolset | 원시 스키마 및 다중 모달 결과가 보존됩니다 |
| 도구 필터링 | with_filter, with_tools | 모델은 선택된 도구만 봅니다 |
| 리소스 및 템플릿 | list_resources, list_resource_templates, read_resource | 안정적인 URIs를 통해 컨텍스트 읽기 |
| 프롬프트 | list_prompts, get_prompt | 재사용 가능한 서버 소유 메시지 해결 |
| 완성 | complete_prompt_argument, complete_resource_argument | 서버에 인자 제안을 요청합니다 |
| 리소스 구독 | subscribe_resource, unsubscribe_resource | 사용자 지정 핸들러가 업데이트 알림을 받습니다 |
| 도출 | ElicitationHandler | 형식 및 URL 모드 |
| 작업 | McpTaskConfig | 협상된 툴 호출 작업 생성, 폴링, 결과 및 취소 |
| 스트리밍 가능 HTTP | McpHttpClientBuilder | 타임아웃, 헤더, 인증 주입, 만료된 세션 복구 |
| 동적 로컬 레지스트리 | McpServerManager | 추가, 업데이트, 활성화, 비활성화, 제거, 저장, 모니터링 및 재시작 |
| 고급 SDK 작업 | adk_tool::mcp::rmcp | 서버 핸들러, 전송, 알림 및 확장 유형 |
문서 경로
중요 경계
- 동적 관리는 현재 로컬 stdio 자식 프로세스를 대상으로 합니다.
- 관리자 상태 모니터링은 닫힌 MCP 연결을 감지합니다. 이는 서버의 데이터베이스 또는 외부 API가 정상임을 증명하지 않습니다.
autoApprove은 호환 가능한 구성을 위해 보존됩니다; ADK-Rust은 이를 권한 부여로 해석하지 않습니다.OAuth2Config은 고정된 클라이언트-자격 증명 토큰 요청을 수행합니다. 이는 완전한 MCP 권한 부여 검색 및 브라우저-권한 부여 흐름이 아닙니다.- 샘플링, 루트 및 로깅은 SEP-2577을 통해 업스트림에서 더 이상 사용되지 않습니다.
이러한 경계는 공개 계약의 일부이며 배포 설계에 반영되어야 합니다.