व्यावसायिक डेटा
सीआरएम, ईआरपी, ऑर्डर, दस्तावेज़, विश्लेषण और आंतरिक ज्ञान।
MCP एक अन्य प्रोग्राम को एक मानक अनुबंध के माध्यम से उपकरण, सूचना और पुन: प्रयोज्य संकेत प्रकाशित करने देता है। ADK-Rust उन क्षमताओं को टाइप किए गए एजेंट टूल में बदल देता है, व्यापक प्रोटोकॉल को उजागर करता है, और आपका उत्पाद चलने के दौरान स्थानीय MCP सर्वर के बदलते बेड़े का प्रबंधन कर सकता है।
ADK-Rust MCP वास्तुकला
आपका एजेंट किसी अन्य ADK-Rust टूल की तरह ही MCP क्षमताओं का उपयोग करता है। MCP इसे प्रत्येक सर्वर से जोड़ता है, जबकि प्रत्येक सर्वर अपने डेटा, नियमों और कार्यों के लिए स्वयं जिम्मेदार रहता है।
काम मांगने का अनुभव.
एजेंट या वर्कफ़्लो
उन उपकरणों में से एक क्षमता चुनता है जिन्हें देखने की अनुमति दी गई है।
एडीके नीति
कॉल के चारों ओर अनुमोदन, प्राधिकरण, रेलिंग और ऑडिट लागू करता है।
रनटाइम के अंदर टाइप किया गया एडॉप्टर।
McpToolset
उपकरण खोजता है और सर्वर के स्कीमा और परिणाम सामग्री को संरक्षित करता है।
प्रोटोकॉल APIs
संसाधन, संकेत, पूर्णता, सदस्यता, प्राप्ति, और कार्य।
सर्वर मैनेजर
स्थानीय stdio कनेक्शनों की रजिस्ट्री में परिवर्तन और पर्यवेक्षण करता है।
वह परिवहन चुनें जो स्वामित्व से मेल खाता हो।
स्थानीय stdio
ADK-Rust एक मूल बाइनरी या अन्य चाइल्ड प्रक्रिया प्रारंभ करता है और उसके सत्र का स्वामी होता है।
Streamable HTTP
हेडर, ऑथ और टाइमआउट के साथ स्वतंत्र रूप से होस्ट की गई सेवा से कनेक्ट करें।
प्रत्येक सर्वर केवल वही प्रकाशित करता है जो उसके पास है।
उपकरण
क्रियाएँ
संसाधन
प्रसंग
संकेत
टेम्पलेट्स
कार्य
लंबा काम
सीआरएम, ईआरपी, ऑर्डर, दस्तावेज़, विश्लेषण और आंतरिक ज्ञान।
स्रोत नियंत्रण, निर्माण उपकरण, ब्राउज़र, सैंडबॉक्स और कोडिंग वातावरण।
भुगतान, संचार, खोज, मानचित्र और भागीदार APIs।
मीडिया निर्माण, स्प्रेडशीट, कंप्यूटर उपयोग और डोमेन-विशिष्ट सेवाएँ।
समस्या से शुरुआत करें
एक एआई एजेंट तब उपयोगी हो जाता है जब वह उन प्रणालियों तक पहुंच सकता है जो वास्तविक जानकारी रखते हैं और वास्तविक कार्य करते हैं। साझा प्रोटोकॉल के बिना, प्रत्येक डेटाबेस, SaaS उत्पाद, ब्राउज़र टूल, आंतरिक सेवा और विशेषज्ञ रनटाइम को एक कस्टम एडाप्टर की आवश्यकता होती है। वे एडाप्टर खोज, स्कीमा, परिवहन, त्रुटियां, प्रमाणीकरण और जीवनचक्र कोड दोहराते हैं।
MCP उस सीमा के चारों ओर एक स्थिर अनुबंध रखता है। एक सर्वर बताता है कि वह क्या ऑफ़र करता है और उसे कैसे कॉल करना है। एक क्लाइंट रनटाइम पर उस कैटलॉग को खोजता है। एजेंट एप्लिकेशन सर्वर के कार्यान्वयन को आयात किए बिना या उसके निजी क्रेडेंशियल प्राप्त किए बिना एक समीक्षा की गई क्षमता का चयन कर सकता है।
ADK-Rust उस अनुबंध को उसी टूल और Toolset एब्स्ट्रैक्शन से जोड़ता है जिसका उपयोग मूल Rust टूल द्वारा किया जाता है। मॉडल अपने सामान्य एजेंट लूप के माध्यम से MCP क्षमताओं के साथ काम कर सकता है, जबकि एप्लिकेशन कॉल के आसपास प्रदाता-विशिष्ट स्कीमा रूपांतरण, अनुमोदन, सत्र, टेलीमेट्री और ऑपरेटिंग नीति रखता है।
औज़ार
एक टूल का एक नाम, एक उपयोगी विवरण, एक इनपुट स्कीमा और वैकल्पिक रूप से एक आउटपुट स्कीमा होता है। उदाहरणों में ऑर्डर पढ़ना, रिपॉजिटरी खोजना, टिकट अपडेट करना या स्प्रेडशीट तैयार करना शामिल है।
संसाधन
एक संसाधन जानकारी को एक स्थिर यूआरआई देता है। यह किसी दस्तावेज़, नीति, डेटाबेस रिकॉर्ड, कैटलॉग या उत्पन्न परिणाम का प्रतिनिधित्व कर सकता है, बिना यह दिखावा किए कि डेटा पढ़ना एक क्रिया है।
शीघ्र
एक प्रॉम्प्ट सर्वर के डोमेन के स्वामित्व वाले किसी कार्य के लिए सही निर्देश और इनपुट कैप्चर कर सकता है, जैसे किसी ऑर्डर की जांच करना या किसी तैनाती की समीक्षा करना।
उद्दीपन
टूल कॉल के दौरान, सर्वर क्लाइंट से एक फॉर्म प्रस्तुत करने या एक स्वीकृत यूआरएल खोलने के लिए कह सकता है। आवेदन सहमति के लिए और उत्तर को मान्य करने के लिए जिम्मेदार रहता है।
Dynamic MCP management
An agent product may serve several tenants, workspaces, or operating modes. The useful MCP servers can change when a workspace opens, an administrator enables an integration, a credential rotates, or a specialist process is upgraded.
`McpServerManager` keeps that lifecycle in the application instead of forcing every server definition into startup code. It is designed for local stdio child processes; independently hosted HTTP services remain application-owned connections.
Read mcp.json-compatible definitions or construct them in Rust. Disabled servers stay registered without starting.
Spawn each enabled child and complete the MCP handshake before its capabilities become visible.
List tools from running servers, filter the published surface, and prefix only names that collide.
Add, update, enable, disable, or remove a server without rebuilding the agent application.
Detect a closed connection and apply the server's bounded exponential-backoff restart policy.
Persist the current registry atomically, cancel MCP sessions, wait for the grace period, and drop child transports.
Practical sequence
The model does not receive database credentials or private API clients. It receives a reviewed catalog of tools and resources. ADK-Rust keeps approval around the consequential replacement call.
वर्तमान प्रोटोकॉल सतह
प्रत्यक्ष ADK-Rust API उन क्षमताओं को कवर करते हैं जिनकी एक एजेंट उत्पाद को सबसे अधिक आवश्यकता होती है: टूल खोजें और कॉल करें, संसाधनों को पढ़ें, संकेतों को हल करें, तर्क सुझावों का अनुरोध करें, बदलते संसाधनों की सदस्यता लें, प्राप्त अनुरोधों का उत्तर दें, और बातचीत के जरिए लंबे समय तक चलने वाले टूल कार्य का पालन करें।
उन्नत सर्वर संलेखन, कस्टम क्लाइंट हैंडलर, नोटिफिकेशन, ट्रांसपोर्ट, प्राधिकरण कार्य और प्रोटोकॉल एक्सटेंशन के लिए, adk_tool::mcp::rmcp फ्रेमवर्क के अंदर उपयोग किए गए सटीक आधिकारिक SDK संस्करण को फिर से निर्यात करता है। यह असंगत प्रोटोकॉल प्रकारों को एक एप्लिकेशन में मिश्रित करने से बचाता है।
सामान्य ADK-Rust एजेंट और टूल प्रवाह के अंदर MCP क्षमताओं का उपयोग करें।
MCP को टूल कॉल तक कम करने के बजाय बाकी कैटलॉग पढ़ें।
समर्थन प्रोटोकॉल वार्तालाप जो एक तत्काल प्रतिक्रिया से परे जारी रहते हैं।
स्थानीय प्रक्रिया स्वामित्व या अलग से होस्ट की गई सेवा चुनें।
कामकाजी उदाहरण
किसी एप्लिकेशन को प्रत्येक कार्यक्षेत्र, ग्राहक या कार्य के लिए अलग-अलग MCP क्षमताओं की आवश्यकता हो सकती है। स्टार्टअप पर प्रत्येक सर्वर को हार्ड-कोड करना उन परिवर्तनों को कठिन बना देता है। McpServerManager एप्लिकेशन को स्थानीय MCP सर्वर शुरू करने, उनके टूल को संयोजित करने, उनके कॉन्फ़िगरेशन को बदलने, उनके कनेक्शन की निगरानी करने और उन्हें सफाई से बंद करने के लिए एक स्थान देता है।
यह उदाहरण local-tools नामक एक कॉन्फ़िगर सर्वर से शुरू होता है। एजेंट इसके इको टूल को खोज और कॉल कर सकता है। एप्लिकेशन फिर एक दूसरा सर्वर जोड़ता है, इसे सक्षम करता है, इसके चल रहे कॉन्फ़िगरेशन को बदलता है, अद्यतन रजिस्ट्री को सहेजता है, और इसे फिर से हटा देता है। प्रत्येक परिवर्तन प्रशासन स्क्रीन या कॉन्फ़िगरेशन सेवा के लिए उपलब्ध समान API का उपयोग करता है।
उदाहरण पूरी तरह से आपकी मशीन पर चलता है। Rust निष्पादन योग्य MCP चाइल्ड सर्वर के रूप में स्वयं की एक प्रति प्रारंभ करता है, इसलिए हैंडशेक, टूल डिस्कवरी, टूल कॉल, पुनरारंभ, दृढ़ता और शटडाउन वास्तविक हैं। किसी मॉडल, Node.js पैकेज, API कुंजी या इंटरनेट कनेक्शन की आवश्यकता नहीं है।
एक mcp.json-संगत कॉन्फ़िगरेशन से local-tools लोड करें, इसकी चाइल्ड प्रक्रिया शुरू करें, MCP हैंडशेक पूरा करें, और इसके इको टूल की खोज करें।
स्टैंडबाय-टूल्स को अक्षम के रूप में पंजीकृत करें, फिर इसे सक्षम करें और तब प्रारंभ करें जब एप्लिकेशन निर्णय लेता है कि क्षमता उपलब्ध होनी चाहिए।
चल रहे सर्वर परिभाषा को अद्यतन करें। प्रबंधक इसे नए कॉन्फ़िगरेशन के साथ पुनरारंभ करता है और प्रतिस्थापन स्टार्टअप विफल होने पर पिछली परिभाषा को पुनर्स्थापित कर सकता है।
लाइव रजिस्ट्री को JSON पर वापस लिखें, अतिरिक्त सर्वर को अक्षम करें और हटा दें, फिर प्रत्येक MCP सत्र और चाइल्ड प्रक्रिया को साफ़-साफ़ बंद करें।
let manager = McpServerManager::from_json(&config)?
.with_health_check_interval(Duration::from_secs(15));
manager.start_server("local-tools").await?;
manager.start_monitoring();
manager
.add_server("standby-tools".into(), standby)
.await?;
manager.enable_server("standby-tools").await?;
manager.start_server("standby-tools").await?;
manager
.update_server("standby-tools", replacement)
.await?;
manager.save_json_file("mcp.json").await?;
manager.shutdown().await?;$ cargo run --manifest-path examples/mcp_manager/Cargo.toml
1. Loaded local-tools from mcp.json-compatible configuration
status: Running
2. Discovered 1 tool: echo
3. Called the real child server
response: {"output":"MCP server replied: dynamic MCP is running"}
4. Added standby-tools at runtime: Disabled
enabled and started: Running
5. Reconfigured the running server and restarted it safely
6. Saved the live registry
7. Disabled, removed, and shut down every child serverक्लाइंट, प्रबंधक, या सर्वर
अधिकांश एजेंट एप्लिकेशन MCP क्लाइंट हैं। वे मौजूदा सर्वर से जुड़ते हैं और चयनित टूल एजेंट को उपलब्ध कराते हैं। उत्पाद जो कार्यक्षेत्र या व्यवस्थापक एकीकरण की अनुमति देते हैं, प्रबंधक के पीछे स्थानीय stdio कनेक्शन रख सकते हैं। नई क्षमता प्रकाशित करने वाली टीमें पुनः निर्यात किए गए rmcp सर्वर APIs का उपयोग करती हैं और फिर ADK-Rust क्लाइंट से सर्वर का परीक्षण करती हैं।
उत्पादन डिज़ाइन
MCP खोज और संचार को सुसंगत बनाता है। यह तय नहीं करता है कि एक एजेंट को किन प्रणालियों तक पहुंचना चाहिए, किन कार्यों के लिए अनुमोदन की आवश्यकता है, क्रेडेंशियल कैसे जारी किए जाते हैं, या निर्भरता विफल होने पर क्या होना चाहिए। वे उत्पाद और प्लेटफ़ॉर्म निर्णय बने रहेंगे।
एक टीम या सिस्टम के स्वामित्व वाली सुसंगत क्षमता के आसपास एक सर्वर बनाएं। ऐसे विशाल सर्वर से बचें जिसके उपकरण असंबंधित क्रेडेंशियल्स और जोखिम स्तरों तक फैले हों।
मॉडल द्वारा देखे जाने से पहले टूल को फ़िल्टर करें। पढ़ने के संचालन को लेखन, भुगतान, विलोपन, परिनियोजन और अन्य परिणामी कार्रवाइयों से अलग रखें।
mcp.json autoApprove अनुकूलता के लिए संरक्षित है; यह फ्रेमवर्क के प्राधिकरण, पुष्टिकरण हैंडलर, या एप्लिकेशन नीति को बायपास नहीं करता है।
जब आपका एप्लिकेशन स्थानीय चाइल्ड प्रक्रिया का स्वामी हो तो stdio का उपयोग करें। जब किसी अन्य परिनियोजन के पास उपलब्धता, पहचान और स्केलिंग हो तो स्ट्रीम करने योग्य HTTP का उपयोग करें।
टूल विवरण, स्कीमा, संसाधन सामग्री और परिणाम एक सिस्टम सीमा को पार करते हैं। तर्कों को मान्य करें, परिणाम आकार को बाध्य करें, और मॉडल संदर्भ को शत्रुतापूर्ण निर्देशों से बचाएं।
कनेक्शन और कार्य का समय निर्धारित करें, जीवनचक्र परिवर्तनों को रिकॉर्ड करें, व्यवसाय निर्भरता की अलग से जांच करें और तय करें कि एक सर्वर अनुपलब्ध होने पर उत्पाद कैसे व्यवहार करेगा।
उपयोगी सिस्टम कनेक्ट करें
उस सर्वर से शुरुआत करें जिसे आप समझते हैं, उसके कैटलॉग को फ़िल्टर करें, एक रीड-ओनली टूल को कॉल करें और संपूर्ण परिणाम का निरीक्षण करें। जब उत्पाद के पास प्रत्येक के लिए स्पष्ट कारण हो तो लेखन क्रियाएं, गतिशील प्रबंधन, दूरस्थ सेवाएं, एलिसिटेशन और लंबे समय तक चलने वाले कार्य जोड़ें।