بروتوكول السياق النموذجي · rmcp 2.2

قم بتوصيل وكلائك بالأنظمة حيث يحدث العمل.

يتيح MCP لبرنامج آخر نشر الأدوات والمعلومات والمطالبات القابلة لإعادة الاستخدام من خلال عقد قياسي. يقوم ADK-Rust بتحويل هذه الإمكانيات إلى أدوات وكيل مكتوبة، ويكشف عن البروتوكول الأوسع، ويمكنه إدارة أسطول متغير من خوادم MCP المحلية أثناء تشغيل منتجك.

أدواتالموارديطالبالانتهاءالاشتراكاتالاستنباطالمهامStdioStreamable HTTP

العمارة ADK-Rust MCP

قم بإضافة أو إزالة إمكانيات MCP من وكيلك.

يستخدم وكيلك إمكانيات MCP تمامًا مثل أي أداة ADK-Rust أخرى. يقوم MCP بتوصيله بكل خادم، بينما يظل كل خادم مسؤولاً عن بياناته وقواعده وإجراءاته.

01

منتج الوكيل

الخبرة تطلب عمل .

الوكيل أو سير العمل

يختار القدرة من الأدوات المسموح له برؤيتها.

سياسة أي دي كيه

يطبق الموافقة والترخيص وحواجز الحماية والتدقيق حول المكالمة.

Toolset
02

العميل ADK-Rust MCP

المحول المكتوب داخل وقت التشغيل.

McpToolset

يكتشف الأدوات ويحافظ على مخططات الخادم ومحتوى النتيجة.

بروتوكول APIs

الموارد والمطالبات والإكمال والاشتراكات والاستنباط والمهام.

مدير الخادم

التغييرات والإشراف على سجل اتصالات stdio المحلية.

MCP
03

حدود الاتصال

اختر وسيلة النقل التي تطابق الملكية.

stdio المحلي

يبدأ ADK-Rust عملية ثنائية أصلية أو عملية فرعية أخرى ويمتلك جلستها.

Streamable HTTP

اتصل بخدمة مستضافة بشكل مستقل باستخدام الرؤوس والمصادقة والمهلات.

العقد
04

خوادم MCP

ينشر كل خادم ما يملكه فقط.

أدوات

الإجراءات

الموارد

السياق

يطالب

قوالب

المهام

عمل طويل

يظل كل خادم مسؤولاً عن بيانات الاعتماد الخاصة به، والوصول إلى البيانات، والآثار الجانبية، وسلامة الخدمة

بيانات الأعمال

إدارة علاقات العملاء وتخطيط موارد المؤسسات والأوامر والمستندات والتحليلات والمعرفة الداخلية.

أنظمة المطورين

التحكم في المصدر وأدوات البناء والمتصفحات وصناديق الحماية وبيئات الترميز.

الخدمات الخارجية

المدفوعات والاتصالات والبحث والخرائط والشركاء APIs.

أوقات التشغيل المتخصصة

إنشاء الوسائط وجداول البيانات واستخدام الكمبيوتر والخدمات الخاصة بالمجال.

يدير `McpToolset` اتصالاً واحدًا. يدير `McpServerManager' أسطولًا متغيرًا من الاتصالات المحلية. يظل `rmcp` SDK الرسمي متاحًا للخوادم المخصصة ووسائل النقل والمعالجات وامتدادات البروتوكول.

ابدأ بالمشكلة

لماذا نحتاج MCP؟

يصبح وكيل الذكاء الاصطناعي مفيدًا عندما يتمكن من الوصول إلى الأنظمة التي تحتوي على معلومات حقيقية وتؤدي عملاً حقيقيًا. بدون بروتوكول مشترك، تحتاج كل قاعدة بيانات ومنتج SaaS وأداة متصفح وخدمة داخلية ووقت تشغيل متخصص إلى محول مخصص. تكرر هذه المحولات الاكتشاف والمخططات والنقل والأخطاء والمصادقة ورمز دورة الحياة.

يضع MCP عقدًا مستقرًا حول تلك الحدود. يصف الخادم ما يقدمه وكيفية الاتصال به. يكتشف العميل هذا الكتالوج في وقت التشغيل. يمكن لتطبيق الوكيل بعد ذلك تحديد إمكانية تمت مراجعتها دون استيراد تنفيذ الخادم أو تلقي بيانات الاعتماد الخاصة به.

يربط ADK-Rust هذا العقد بنفس الأداة وتجريدات Toolset التي تستخدمها أدوات Rust الأصلية. يمكن أن يعمل النموذج مع إمكانيات MCP من خلال حلقة الوكيل العادية، بينما يحتفظ التطبيق بتحويل المخطط الخاص بالموفر، والموافقة، والجلسات، والقياس عن بعد، وسياسة التشغيل حول المكالمة.

أداة

شيء يمكن للوكيل أن يطلب من الخادم القيام به

تحتوي الأداة على اسم ووصف مفيد ومخطط إدخال ومخطط إخراج بشكل اختياري. تشمل الأمثلة قراءة أمر ما، أو البحث في مستودع، أو تحديث تذكرة، أو إنشاء جدول بيانات.

الموارد

السياق الذي يمكن للوكيل أو المنتج قراءته

يمنح المورد المعلومات عنوان URI ثابتًا. يمكن أن يمثل مستندًا أو سياسة أو سجل قاعدة بيانات أو كتالوجًا أو نتيجة تم إنشاؤها دون التظاهر بأن قراءة البيانات هي إجراء.

موجه

قالب رسالة قابل لإعادة الاستخدام ينشره الخادم

يمكن للموجه التقاط الإرشادات والمدخلات الصحيحة لمهمة يملكها مجال الخادم، مثل التحقيق في أمر أو مراجعة عملية نشر.

الاستنباط

طلب للمدخلات البشرية المفقودة

أثناء استدعاء الأداة، يمكن للخادم أن يطلب من العميل تقديم نموذج أو فتح عنوان URL معتمد. يظل التطبيق مسؤولاً عن الموافقة والتحقق من صحة الإجابة.

Dynamic MCP management

Capabilities can change while the product keeps running.

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.

01

Load the registry

Read mcp.json-compatible definitions or construct them in Rust. Disabled servers stay registered without starting.

02

Start and negotiate

Spawn each enabled child and complete the MCP handshake before its capabilities become visible.

03

Discover safely

List tools from running servers, filter the published surface, and prefix only names that collide.

04

Change it live

Add, update, enable, disable, or remove a server without rebuilding the agent application.

05

Supervise the session

Detect a closed connection and apply the server's bounded exponential-backoff restart policy.

06

Save and close

Persist the current registry atomically, cancel MCP sessions, wait for the grace period, and drop child transports.

Practical sequence

Resolve a damaged order with three independently owned capabilities.

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.

Support agent01Discover approved CRM, order, and policy toolsMCP client
MCP client02tools/list over the negotiated connectionsThree MCP servers
Support agent03read_order { order_id: ORD-1042 }Orders server
Orders server04Structured order and delivery evidenceSupport agent
Support agent05Read the current damaged-goods policy resourcePolicy server
Support agent06request_replacement after ADK approvalCRM server
CRM server07Replacement ID, status, and audit evidenceSupport agent

سطح البروتوكول الحالي

يستخدم ADK-Rust بروتوكول MCP الأوسع، وليس فقط استدعاءات الأدوات.

تغطي ADK-Rust APIs المباشرة الإمكانيات التي يحتاجها منتج الوكيل في أغلب الأحيان: اكتشاف الأدوات واستدعاءها، وقراءة الموارد، وحل المطالبات، وطلب اقتراحات الوسائط، والاشتراك في الموارد المتغيرة، والإجابة على طلبات الاستنباط، واتباع مهمة أداة طويلة الأمد تم التفاوض عليها.

بالنسبة للتأليف المتقدم للخادم، ومعالجات العميل المخصصة، والإشعارات، وعمليات النقل، وأعمال الترخيص، وامتدادات البروتوكول، يقوم adk_tool::mcp::rmcp بإعادة تصدير إصدار SDK الرسمي الدقيق المستخدم داخل إطار العمل. يؤدي هذا إلى تجنب خلط أنواع البروتوكولات غير المتوافقة في تطبيق واحد.

01

المحولات التي تواجه الوكيل

استخدم إمكانات MCP داخل تدفقات أدوات ووكلاء ADK-Rust العادية.

أدوات/قائمة + أدوات/اتصال
مخططات الإدخال/الإخراج الخام
النص والصورة والصوت والموارد
مرشحات الأداة
تطبيع المزود
02

السياق والتوجيه

اقرأ بقية الكتالوج بدلاً من اختصار MCP إلى استدعاءات الأداة.

المصادر + القوالب
المطالبات/القائمة + الحصول على
الانتهاء الفوري
استكمال الموارد
اشتراكات الموارد
03

عمل تفاعلي وطويل

دعم محادثات البروتوكول التي تستمر بعد استجابة فورية واحدة.

استنباط النموذج
استنباط URL
مهام الأداة المتفاوض عليها
المهام/الحصول على + النتيجة
إلغاء محدود
04

اتصالات

اختر ملكية العملية المحلية أو خدمة مستضافة بشكل منفصل.

stdio المحلي
Streamable HTTP
رؤوس مخصصة
حامل + مفتاح API
استعادة الجلسة منتهية الصلاحية
حدود التوافق المتعمدة: تم إهمال أخذ العينات والجذور والتسجيل MCP في المراحل الأولية من خلال SEP-2577. تحافظ ADK-Rust على أخذ العينات من خلال ميزة توافق الاشتراك؛ ولم يتم تقديمه باعتباره البنية الموصى بها لمنتج جديد.

مثال العمل

إدارة خوادم MCP من بدء التشغيل إلى إيقاف التشغيل.

قد يحتاج التطبيق إلى إمكانيات MCP مختلفة لكل مساحة عمل أو عميل أو مهمة. إن الترميز الثابت لكل خادم عند بدء التشغيل يجعل هذه التغييرات صعبة. يمنح McpServerManager التطبيق مكانًا واحدًا لبدء تشغيل خوادم MCP المحلية، ودمج أدواتها، وتغيير تكوينها، ومراقبة اتصالاتها، وإغلاقها بشكل نظيف.

يبدأ هذا المثال بخادم واحد تم تكوينه يسمى local-tools. يمكن للوكيل اكتشاف أداة الصدى الخاصة به واستدعاءها. يقوم التطبيق بعد ذلك بإضافة خادم ثانٍ، وتمكينه، واستبدال التكوين قيد التشغيل، وحفظ السجل المحدث، وإزالته مرة أخرى. يستخدم كل تغيير نفس API المتاحة لشاشة الإدارة أو خدمة التكوين.

المثال يعمل بالكامل على جهازك. يبدأ الملف القابل للتنفيذ Rust نسخة من نفسه كخادم فرعي MCP، وبالتالي فإن المصافحة واكتشاف الأداة واستدعاء الأداة وإعادة التشغيل والثبات وإيقاف التشغيل تكون حقيقية. لا يلزم وجود نموذج أو حزمة Node.js أو مفتاح API أو اتصال بالإنترنت.

01

بدء خادم واحد

قم بتحميل local-tools من تكوين متوافق مع mcp.json، وابدأ العملية الفرعية الخاصة به، وأكمل تأكيد الاتصال MCP، واكتشف أداة الصدى الخاصة به.

02

إضافة خادم آخر

قم بتسجيل الأدوات الاحتياطية على أنها معطلة، ثم قم بتمكينها وتشغيلها عندما يقرر التطبيق أن الإمكانية يجب أن تصبح متاحة.

03

استبدله بأمان

قم بتحديث تعريف الخادم قيد التشغيل. يقوم المدير بإعادة تشغيله بالتكوين الجديد ويمكنه استعادة التعريف السابق في حالة فشل بدء التشغيل البديل.

04

حفظ وإيقاف

قم بإعادة كتابة السجل المباشر إلى JSON، وقم بتعطيل الخادم الإضافي وإزالته، ثم أغلق كل جلسة MCP وقم بالعملية الفرعية بشكل نظيف.

manager.rsالصدأ
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?;
terminalالناتج الحقيقي
$ 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

العميل أو المدير أو الخادم

اختر قدرة ADK-Rust MCP التي تحتاجها.

معظم تطبيقات الوكيل هي عملاء MCP. إنهم يتصلون بخادم موجود ويجعلون الأدوات المحددة متاحة للوكيل. يمكن للمنتجات التي تسمح بتكامل مساحة العمل أو المسؤول وضع اتصالات stdio المحلية خلف المدير. تستخدم الفرق التي تنشر قدرة جديدة خادم rmcp المعاد تصديره APIs ثم تختبر الخادم من عميل ADK-Rust.

Your situation
Use
Why
One known MCP service
McpToolset
One initialized connection, filters, tools, resources, prompts, completion, subscriptions, elicitation, and tasks.
A changing set of local integrations
McpServerManager
Runtime add, update, enable, disable, remove, save, monitor, restart, aggregation, and collision-safe names.
A separately hosted MCP service
McpHttpClientBuilder
Streamable HTTP with request timeout, headers, bearer or API-key injection, and expired-session recovery.
You own the capability being published
adk_tool::mcp::rmcp
Build the MCP server with the official SDK version already aligned with ADK-Rust.

تصميم الإنتاج

انشر MCP بأمان.

MCP يجعل الاكتشاف والتواصل متسقين. ولا تحدد الأنظمة التي يجب أن يصل إليها الوكيل، أو الإجراءات التي تتطلب الموافقة، أو كيفية إصدار بيانات الاعتماد، أو ما يجب أن يحدث عند فشل التبعية. تظل هذه قرارات المنتج والمنصة.

اختر حدود الخادم

قم بإنشاء خادم حول قدرة متماسكة يملكها فريق أو نظام واحد. تجنب خادمًا ضخمًا تمتد أدواته إلى بيانات اعتماد ومستويات مخاطرة غير ذات صلة.

نشر سطح صغير

تصفية الأدوات قبل أن يراها النموذج. حافظ على تمييز عمليات القراءة عن عمليات الكتابة والمدفوعات والحذف والنشر والإجراءات اللاحقة الأخرى.

احتفظ بالموافقة في ADK-Rust

يتم الحفاظ على الموافقة التلقائية mcp.json من أجل التوافق؛ ولا يتجاوز ترخيص إطار العمل أو معالجات التأكيد أو سياسة التطبيق.

مطابقة النقل للملكية

استخدم stdio عندما يمتلك تطبيقك العملية الفرعية المحلية. استخدم HTTP القابل للتدفق عندما يمتلك نشر آخر التوفر والهوية والقياس.

التعامل مع المحتوى على أنه غير موثوق به

تتجاوز أوصاف الأدوات والمخططات ومحتوى الموارد والنتائج حدود النظام. التحقق من صحة الوسائط وأحجام النتائج المرتبطة وحماية سياق النموذج من التعليمات المعادية.

تشغيل التبعيات

قم بتعيين مهلات الاتصال والمهمات، وتسجيل تغييرات دورة الحياة، واستكشاف تبعية الأعمال بشكل منفصل، وتحديد كيفية تصرف المنتج عند عدم توفر خادم واحد.

تفاصيل المصادقة: يدعم منشئ HTTP الرموز المميزة لحاملها، ورؤوس مفاتيح API المخصصة، ونقطة نهاية الرمز المميز لبيانات اعتماد العميل OAuth 2.0 الثابتة. يجب أن يستخدم اكتشاف تفويض MCP الكامل، وتفويض المتصفح، وPKCE، والتفاوض بشأن مؤشر الموارد تفويض rmcp الرسمي APIs أو طبقة الهوية الخاصة بك.

ربط الأنظمة المفيدة

امنح وكيلًا واحدًا قدرة مختارة بعناية، ثم قم بتنمية الشبكة.

ابدأ بخادم تفهمه، وقم بتصفية الكتالوج الخاص به، واستدعاء أداة واحدة للقراءة فقط، وافحص النتيجة الكاملة. قم بإضافة إجراءات الكتابة، والإدارة الديناميكية، والخدمات عن بعد، والاستنباط، والمهام طويلة الأمد عندما يكون لدى المنتج سبب واضح لكل منها.