MCP परीक्षण और सत्यापन

MCP एकीकरण प्रक्रिया, परिवहन, स्कीमा और प्रमाणीकरण सीमाओं को पार करते हैं। केवल यूनिट परीक्षण अपर्याप्त हैं; कम से कम एक नियतात्मक क्लाइंट/सर्वर परीक्षण रखें जो एक वास्तविक हैंडशेक और टूल कॉल को पूरा करता हो।

केंद्रित फ्रेमवर्क गेट्स

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

सैंपलिंग गेट एक अपस्ट्रीम-अप्रचलित क्षमता के लिए संगतता कवरेज है, न कि नई वास्तुकला के लिए एक सिफारिश।

एकीकरण उपभोक्ताओं को संकलित करें

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

ये गेट उन क्रेट्स में बेमेल सार्वजनिक rmcp प्रकारों को पकड़ते हैं जो MCP कॉन्फ़िगरेशन को एम्बेड या ले जाते हैं।

स्टैंडअलोन उदाहरण

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 नियतात्मक लाइव गेट है। यह फिक्स्चर मोड में अपनी बाइनरी को निष्पादित करके एक वास्तविक Rust stdio सर्वर शुरू करता है। परीक्षण किसी पैकेज को डाउनलोड नहीं करता है या किसी दूरस्थ एंडपॉइंट से संपर्क नहीं करता है।

लाइव उदाहरण क्या साबित करता है

  • चाइल्ड-प्रोसेस स्टार्टअप;
  • MCP आरंभीकरण और क्षमता वार्ता;
  • टूल खोज;
  • एक वास्तविक टूल अनुरोध और परिणाम;
  • रनटाइम जोड़ना, सक्षम करना, अपडेट करना, अक्षम करना और हटाना;
  • रजिस्ट्री क्रमबद्धता और फ़ाइल दृढ़ता; और
  • सत्र बंद करना।

परिनियोजन-विशिष्ट परीक्षण के लिए क्या आवश्यक है

  • दूरस्थ HTTP पहचान और टोकन नीति;
  • पूर्ण MCP OAuth खोज और उपयोगकर्ता प्रमाणीकरण;
  • बाहरी API और डेटाबेस स्वास्थ्य;
  • प्रक्रिया सैंडबॉक्स प्रवर्तन;
  • किरायेदार अलगाव;
  • अनुमोदन UI और ऑडिट स्टोरेज;
  • परिणामी टूल के लिए पुनः प्रयास और आइडम्पोटेंसी व्यवहार; और
  • एप्लिकेशन पुनरारंभ के बाद कार्य पुनर्प्राप्ति।

टेस्ट सर्वर अनुबंध

प्रत्येक सर्वर के लिए, फिक्स्चर रखें:

  • आरंभीकरण क्षमता सटीकता;
  • टूल और संसाधन स्कीमा;
  • अमान्य और अनधिकृत इनपुट;
  • अधिकतम परिणाम आकार;
  • रद्दीकरण और टाइमआउट व्यवहार;
  • राइट ऑपरेशंस का आइडम्पोटेंट पुनः प्रयास; और
  • क्रेडेंशियल और संवेदनशील फ़ील्ड का संपादन।