بيانات الأعمال
إدارة علاقات العملاء وتخطيط موارد المؤسسات والأوامر والمستندات والتحليلات والمعرفة الداخلية.
يتيح MCP لبرنامج آخر نشر الأدوات والمعلومات والمطالبات القابلة لإعادة الاستخدام من خلال عقد قياسي. يقوم ADK-Rust بتحويل هذه الإمكانيات إلى أدوات وكيل مكتوبة، ويكشف عن البروتوكول الأوسع، ويمكنه إدارة أسطول متغير من خوادم MCP المحلية أثناء تشغيل منتجك.
العمارة ADK-Rust MCP
يستخدم وكيلك إمكانيات MCP تمامًا مثل أي أداة ADK-Rust أخرى. يقوم MCP بتوصيله بكل خادم، بينما يظل كل خادم مسؤولاً عن بياناته وقواعده وإجراءاته.
الخبرة تطلب عمل .
الوكيل أو سير العمل
يختار القدرة من الأدوات المسموح له برؤيتها.
سياسة أي دي كيه
يطبق الموافقة والترخيص وحواجز الحماية والتدقيق حول المكالمة.
المحول المكتوب داخل وقت التشغيل.
McpToolset
يكتشف الأدوات ويحافظ على مخططات الخادم ومحتوى النتيجة.
بروتوكول APIs
الموارد والمطالبات والإكمال والاشتراكات والاستنباط والمهام.
مدير الخادم
التغييرات والإشراف على سجل اتصالات stdio المحلية.
اختر وسيلة النقل التي تطابق الملكية.
stdio المحلي
يبدأ ADK-Rust عملية ثنائية أصلية أو عملية فرعية أخرى ويمتلك جلستها.
Streamable HTTP
اتصل بخدمة مستضافة بشكل مستقل باستخدام الرؤوس والمصادقة والمهلات.
ينشر كل خادم ما يملكه فقط.
أدوات
الإجراءات
الموارد
السياق
يطالب
قوالب
المهام
عمل طويل
إدارة علاقات العملاء وتخطيط موارد المؤسسات والأوامر والمستندات والتحليلات والمعرفة الداخلية.
التحكم في المصدر وأدوات البناء والمتصفحات وصناديق الحماية وبيئات الترميز.
المدفوعات والاتصالات والبحث والخرائط والشركاء APIs.
إنشاء الوسائط وجداول البيانات واستخدام الكمبيوتر والخدمات الخاصة بالمجال.
ابدأ بالمشكلة
يصبح وكيل الذكاء الاصطناعي مفيدًا عندما يتمكن من الوصول إلى الأنظمة التي تحتوي على معلومات حقيقية وتؤدي عملاً حقيقيًا. بدون بروتوكول مشترك، تحتاج كل قاعدة بيانات ومنتج SaaS وأداة متصفح وخدمة داخلية ووقت تشغيل متخصص إلى محول مخصص. تكرر هذه المحولات الاكتشاف والمخططات والنقل والأخطاء والمصادقة ورمز دورة الحياة.
يضع MCP عقدًا مستقرًا حول تلك الحدود. يصف الخادم ما يقدمه وكيفية الاتصال به. يكتشف العميل هذا الكتالوج في وقت التشغيل. يمكن لتطبيق الوكيل بعد ذلك تحديد إمكانية تمت مراجعتها دون استيراد تنفيذ الخادم أو تلقي بيانات الاعتماد الخاصة به.
يربط ADK-Rust هذا العقد بنفس الأداة وتجريدات Toolset التي تستخدمها أدوات Rust الأصلية. يمكن أن يعمل النموذج مع إمكانيات MCP من خلال حلقة الوكيل العادية، بينما يحتفظ التطبيق بتحويل المخطط الخاص بالموفر، والموافقة، والجلسات، والقياس عن بعد، وسياسة التشغيل حول المكالمة.
أداة
تحتوي الأداة على اسم ووصف مفيد ومخطط إدخال ومخطط إخراج بشكل اختياري. تشمل الأمثلة قراءة أمر ما، أو البحث في مستودع، أو تحديث تذكرة، أو إنشاء جدول بيانات.
الموارد
يمنح المورد المعلومات عنوان URI ثابتًا. يمكن أن يمثل مستندًا أو سياسة أو سجل قاعدة بيانات أو كتالوجًا أو نتيجة تم إنشاؤها دون التظاهر بأن قراءة البيانات هي إجراء.
موجه
يمكن للموجه التقاط الإرشادات والمدخلات الصحيحة لمهمة يملكها مجال الخادم، مثل التحقيق في أمر أو مراجعة عملية نشر.
الاستنباط
أثناء استدعاء الأداة، يمكن للخادم أن يطلب من العميل تقديم نموذج أو فتح عنوان URL معتمد. يظل التطبيق مسؤولاً عن الموافقة والتحقق من صحة الإجابة.
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 APIs المباشرة الإمكانيات التي يحتاجها منتج الوكيل في أغلب الأحيان: اكتشاف الأدوات واستدعاءها، وقراءة الموارد، وحل المطالبات، وطلب اقتراحات الوسائط، والاشتراك في الموارد المتغيرة، والإجابة على طلبات الاستنباط، واتباع مهمة أداة طويلة الأمد تم التفاوض عليها.
بالنسبة للتأليف المتقدم للخادم، ومعالجات العميل المخصصة، والإشعارات، وعمليات النقل، وأعمال الترخيص، وامتدادات البروتوكول، يقوم adk_tool::mcp::rmcp بإعادة تصدير إصدار SDK الرسمي الدقيق المستخدم داخل إطار العمل. يؤدي هذا إلى تجنب خلط أنواع البروتوكولات غير المتوافقة في تطبيق واحد.
استخدم إمكانات MCP داخل تدفقات أدوات ووكلاء ADK-Rust العادية.
اقرأ بقية الكتالوج بدلاً من اختصار MCP إلى استدعاءات الأداة.
دعم محادثات البروتوكول التي تستمر بعد استجابة فورية واحدة.
اختر ملكية العملية المحلية أو خدمة مستضافة بشكل منفصل.
مثال العمل
قد يحتاج التطبيق إلى إمكانيات MCP مختلفة لكل مساحة عمل أو عميل أو مهمة. إن الترميز الثابت لكل خادم عند بدء التشغيل يجعل هذه التغييرات صعبة. يمنح McpServerManager التطبيق مكانًا واحدًا لبدء تشغيل خوادم MCP المحلية، ودمج أدواتها، وتغيير تكوينها، ومراقبة اتصالاتها، وإغلاقها بشكل نظيف.
يبدأ هذا المثال بخادم واحد تم تكوينه يسمى local-tools. يمكن للوكيل اكتشاف أداة الصدى الخاصة به واستدعاءها. يقوم التطبيق بعد ذلك بإضافة خادم ثانٍ، وتمكينه، واستبدال التكوين قيد التشغيل، وحفظ السجل المحدث، وإزالته مرة أخرى. يستخدم كل تغيير نفس API المتاحة لشاشة الإدارة أو خدمة التكوين.
المثال يعمل بالكامل على جهازك. يبدأ الملف القابل للتنفيذ Rust نسخة من نفسه كخادم فرعي MCP، وبالتالي فإن المصافحة واكتشاف الأداة واستدعاء الأداة وإعادة التشغيل والثبات وإيقاف التشغيل تكون حقيقية. لا يلزم وجود نموذج أو حزمة Node.js أو مفتاح API أو اتصال بالإنترنت.
قم بتحميل local-tools من تكوين متوافق مع mcp.json، وابدأ العملية الفرعية الخاصة به، وأكمل تأكيد الاتصال 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 من أجل التوافق؛ ولا يتجاوز ترخيص إطار العمل أو معالجات التأكيد أو سياسة التطبيق.
استخدم stdio عندما يمتلك تطبيقك العملية الفرعية المحلية. استخدم HTTP القابل للتدفق عندما يمتلك نشر آخر التوفر والهوية والقياس.
تتجاوز أوصاف الأدوات والمخططات ومحتوى الموارد والنتائج حدود النظام. التحقق من صحة الوسائط وأحجام النتائج المرتبطة وحماية سياق النموذج من التعليمات المعادية.
قم بتعيين مهلات الاتصال والمهمات، وتسجيل تغييرات دورة الحياة، واستكشاف تبعية الأعمال بشكل منفصل، وتحديد كيفية تصرف المنتج عند عدم توفر خادم واحد.
ربط الأنظمة المفيدة
ابدأ بخادم تفهمه، وقم بتصفية الكتالوج الخاص به، واستدعاء أداة واحدة للقراءة فقط، وافحص النتيجة الكاملة. قم بإضافة إجراءات الكتابة، والإدارة الديناميكية، والخدمات عن بعد، والاستنباط، والمهام طويلة الأمد عندما يكون لدى المنتج سبب واضح لكل منها.