Pruebas y verificación de MCP

Las integraciones de MCP cruzan los límites de proceso, transporte, esquema y autorización. Las pruebas unitarias por sí solas son insuficientes; mantenga al menos una prueba cliente/servidor determinista que complete un handshake real y una llamada a herramienta.

Puertas de framework enfocadas

cargo test -p adk-tool --features mcp --lib mcp
cargo test -p adk-tool --features mcp --test mcp_roundtrip_property_tests
cargo test -p adk-tool --features mcp,mcp-sampling --test mcp_sampling_property_tests
cargo clippy -p adk-tool --features mcp,http-transport,mcp-sampling -- -D warnings

La puerta de muestreo es una cobertura de compatibilidad para una capacidad deprecada en la cadena de suministro, no una recomendación para una nueva arquitectura.

Consumidores de integración de compilación

cargo check -p adk-acp --all-features
cargo check -p adk-computer-use

Estas puertas detectan tipos rmcp públicos no coincidentes entre crates que incrustan o transportan configuraciones de MCP.

Ejemplos independientes

cargo check --manifest-path examples/mcp_elicitation/Cargo.toml
cargo check --manifest-path examples/mcp_sampling/Cargo.toml
cargo check --manifest-path examples/mcp_manager/Cargo.toml
cargo run --manifest-path examples/mcp_manager/Cargo.toml

examples/mcp_manager es la puerta viva determinista. Inicia un servidor stdio real de Rust ejecutando su propio binario en modo fixture. La prueba no descarga un paquete ni contacta un endpoint remoto.

Lo que prueba el ejemplo en vivo

  • inicio del proceso hijo;
  • inicialización de MCP y negociación de capacidades;
  • descubrimiento de herramientas;
  • una solicitud y resultado de herramienta reales;
  • agregar, habilitar, actualizar, deshabilitar y eliminar en tiempo de ejecución;
  • serialización del registro y persistencia de archivos; y
  • apagado de la sesión.

Qué requiere pruebas específicas de despliegue

  • política de identidad HTTP remota y de tokens;
  • descubrimiento completo de MCP OAuth y autorización de usuario;
  • estado de la API externa y la base de datos;
  • aplicación de sandbox de procesos;
  • aislamiento de inquilinos;
  • UI de aprobación y almacenamiento de auditoría;
  • comportamiento de reintentos e idempotencia para herramientas consecuentes; y
  • recuperación de tareas después de un reinicio de la aplicación.

Contratos del servidor de prueba

Para cada servidor, mantenga los fixtures para:

  • precisión de la capacidad de inicialización;
  • esquemas de herramientas y recursos;
  • entradas no válidas y no autorizadas;
  • tamaños máximos de resultados;
  • comportamiento de cancelación y tiempo de espera;
  • reintento idempotente de operaciones de escritura; y
  • redacción de credenciales y campos sensibles.