MCP-Tests und -Verifizierung
MCP-Integrationen überschreiten Prozess-, Transport-, Schema- und Autorisierungsgrenzen. Unit-Tests allein sind unzureichend; bewahren Sie mindestens einen deterministischen Client/Server-Test auf, der einen echten Handshake und Tool-Aufruf abschließt.
Fokussierte Framework-Gates
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
Das Sampling-Gate ist eine Kompatibilitätsabdeckung für eine in der Upstream-Version veraltete Funktion, keine Empfehlung für eine neue Architektur.
Kompilieren von Integrationskonsumenten
cargo check -p adk-acp --all-features
cargo check -p adk-computer-use
Diese Gates fangen nicht übereinstimmende öffentliche rmcp-Typen über Crates hinweg ab, die MCP-Konfigurationen einbetten oder mit sich führen.
Eigenständige Beispiele
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 ist das deterministische Live-Gate. Es startet einen echten Rust stdio-Server, indem es sein eigenes Binärprogramm im Fixture-Modus ausführt. Der Test lädt kein Paket herunter oder kontaktiert keinen Remote-Endpunkt.
Was das Live-Beispiel beweist
- Kinderprozess-Start;
- MCP-Initialisierung und Fähigkeitsaushandlung;
- Tool-Erkennung;
- eine echte Tool-Anfrage und -Ergebnis;
- Laufzeit-Hinzufügen, -Aktivieren, -Aktualisieren, -Deaktivieren und -Entfernen;
- Registry-Serialisierung und Dateipersistenz; und
- Session-Herunterfahren.
Was bereitstellungsspezifische Tests erfordert
- Remote-HTTP-Identitäts- und Token-Richtlinie;
- vollständige MCP OAuth-Erkennung und Benutzerautorisierung;
- Gesundheit externer APIs und Datenbanken;
- Erzwingung der Prozess-Sandbox;
- Mandantenisolation;
- Genehmigungs-UI und Audit-Speicherung;
- Wiederholungs- und Idempotenzverhalten für konsequente Tools; und
- Aufgabenwiederherstellung nach einem Anwendungsneustart.
Testserver-Verträge
Für jeden Server bewahren Sie Fixtures auf für:
- Genauigkeit der Initialisierungsfähigkeit;
- Werkzeug- und Ressourcenschemata;
- ungültige und nicht autorisierte Eingaben;
- maximale Ergebnisgrößen;
- Abbruch- und Timeout-Verhalten;
- idempotenter Wiederholungsversuch von Schreiboperationen; und
- Redaktion von Anmeldeinformationen und sensiblen Feldern.