Teste e verificação de MCP
As integrações MCP cruzam limites de processo, transporte, esquema e autorização. Testes de unidade por si só são insuficientes; mantenha pelo menos um teste cliente/servidor determinístico que complete um handshake real e uma chamada de Tool.
Portões de framework focados
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
O portão de amostragem é uma cobertura de compatibilidade para uma capacidade obsoleta a montante, não uma recomendação para uma nova arquitetura.
Compilar consumidores de integração
cargo check -p adk-acp --all-features
cargo check -p adk-computer-use
Esses portões detectam tipos públicos rmcp incompatíveis entre crates que incorporam ou carregam configurações MCP.
Exemplos autônomos
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 é o portão ativo determinístico. Ele inicia um servidor stdio Rust real executando seu próprio binário no modo fixture. O teste não baixa um pacote nem contata um endpoint remoto.
O que o exemplo ativo prova
- inicialização de processo filho;
- inicialização do MCP e negociação de capacidade;
- descoberta de ferramenta;
- uma solicitação e resultado de ferramenta reais;
- adição, habilitação, atualização, desabilitação e remoção em tempo de execução;
- serialização de registro e persistência de arquivo; e
- encerramento de sessão.
O que requer teste específico de implantação
- política de identidade HTTP remota e de token;
- descoberta completa de OAuth do MCP e autorização do usuário;
- saúde de API externa e banco de dados;
- aplicação de sandbox de processo;
- isolamento de inquilino;
- UI de aprovação e armazenamento de auditoria;
- comportamento de repetição e idempotência para ferramentas consequenciais; e
- recuperação de tarefa após uma reinicialização do aplicativo.
Contratos de servidor de teste
Para cada servidor, mantenha os fixtures para:
- precisão da capacidade de inicialização;
- esquemas de ferramentas e recursos;
- entradas inválidas e não autorizadas;
- tamanhos máximos de resultados;
- comportamento de cancelamento e tempo limite;
- tentativa idempotente de operações de escrita; e
- redação de credenciais e campos sensíveis.