الإعدادMCP

مصادقة MCP عبر OAuth

اتصل بخوادم MCP التي تتطلب وصولًا منتدَبًا للمستخدم عبر OAuth 2.1. يدير Bob عملية المصادقة وتجديد الـ token دون الحاجة إلى إدارتها يدويًا.

للاطلاع على إعداد MCP العام، راجع استخدام MCP في Bob.

نظرة عامة

يمكنك توصيل Bob بخوادم بروتوكول سياق النماذج (MCP) التي تتصرف نيابةً عنك، كالوصول إلى مستودعات الكود أو الخدمات السحابية أو الأدوات الداخلية. تستخدم هذه الخوادم OAuth 2.1 حتى تتمكن من تسجيل الدخول والموافقة على الوصول.

يدير Bob تدفق المصادقة مباشرةً. عند تكوين خادم يتطلب OAuth، يعرض Bob طلب مصادقة في إعدادات MCP. يمكنك النقر على الزر لفتح موفر الهوية في نافذة متصفح، وإتمام تسجيل الدخول، والموافقة على الصلاحيات. يخزن Bob tokens الوصول ويجددها دون الحاجة إلى التعامل مع بيانات الاعتماد يدويًا.

استخدم OAuth عندما:

  • تحتاج إلى الوصول إلى موارد مرتبطة بحساب المستخدم الشخصي أو المؤسسي
  • يستخدم الخادم tokens قصيرة الأجل تتطلب تجديدًا تلقائيًا
  • تريد إبعاد بيانات الاعتماد الثابتة والأسرار عن ملفات التكوين

عندما تمتلك بالفعل token API ثابتًا أو token وصول شخصيًا لا تنتهي صلاحيته، يمكنك استخدام Bearer token في headers عوضًا عن ذلك.

كيف يعمل تدفق المصادقة

  1. تضيف عنوان URL لخادم MCP البعيد إلى ملف التكوين دون بيانات اعتماد headers أو env.
  2. عند اتصال Bob بالخادم، يكتشف Bob متطلبات OAuth.
  3. يفتح Bob نافذة تسجيل دخول في المتصفح حيث تراجع الصلاحيات المطلوبة وتوافق على الوصول.
  4. يستقبل Bob tokens التفويض ويخزنها بأمان عبر جلساتك.
  5. يجدد Bob الـ tokens تلقائيًا قبل انتهاء صلاحيتها حتى تتمكن من العمل دون انقطاع.
Bob IDE                     Authorization Server              MCP Server
   |                                |                               |
   |-- connect to server ---------->|                               |
   |<-- OAuth metadata (401) -------|                               |
   |-- open auth prompt ----------->|                               |
   |   (user signs in & consents)   |                               |
   |<-- authorization code ---------|                               |
   |-- exchange for tokens -------->|                               |
   |<-- access + refresh tokens ----|                               |
   |-- authenticated requests --------------------------------->    |
   |   (auto-refresh when needed)                                   |

إعداد خادم مُفعَّل OAuth

يمكنك تكوين خوادم MCP في إعداداتك العامة (~/.bob/mcp_settings.json) أو إعدادات مشروعك (.bob/mcp.json).

الإعداد الأدنى (الاكتشاف التلقائي)

عندما يوفر خادم MCP اكتشاف بيانات OAuth تلقائيًا، تحتاج فقط إلى تحديد url:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp"
    }
  }
}

يكتشف Bob متطلبات OAuth عند الاتصال ويرشدك خلال عملية تسجيل الدخول في المتصفح.

معاملات OAuth مخصصة

عندما يتطلب موفر الهوية معرف عميل مسجلًا مسبقًا أو نطاقات مخصصة أو سر عميل، كوّن كائن oauth:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "enabled": true,
        "clientId": "your-client-id-from-idp",
        "clientSecret": "your-client-secret-if-required",
        "scope": "mcp:connect read:data"
      }
    }
  }
}

خصائص التكوين

الخاصيةالنوعالوصف
urlstringعنوان URL لنقطة نهاية MCP البعيدة (مطلوب).
oauth.enabledbooleanاضبطه على false لتعطيل OAuth، أو true لإلزامه. مُفعَّل افتراضيًا عند عدم وجود header Authorization.
oauth.clientIdstringمعرف عميل OAuth المسجل مسبقًا لدى موفر الهوية.
oauth.clientSecretstringسر عميل OAuth، إذا طلبه خادم التفويض للعملاء السريين.
oauth.scopestringقائمة نطاقات OAuth المطلوبة مفصولة بمسافات.
تحذير:

إضافة header Authorization ثابت إلى تكوين خادم MCP يوقف OAuth. عند وجود header Authorization، لا يبدأ Bob تدفق OAuth. عند تفعيل OAuth، يزيل Bob headers Authorization الثابتة قبل إرسال الطلبات. استخدم طريقة مصادقة واحدة فقط لكل خادم.

تسجيل Bob لدى موفر الهوية

عندما يطلب منك موفر الهوية (IdP) تسجيل Bob كتطبيق عميل قبل الاتصال، استخدم إعدادات التطبيق التالية:

الإعدادالقيمة
نوع التطبيق أو العميلPublic أو Native أو Loopback (Authorization Code مع PKCE)
Redirect URIhttp://127.0.0.1:33418/callback
Redirect URIs إضافيةhttp://127.0.0.1:33419/callback حتى http://127.0.0.1:33427/callback (موصى به إذا كان المنفذ 33418 مشغولًا)
أنواع المنحAuthorization Code (authorization_code) وRefresh Token (refresh_token)
النطاقاتالنطاقات المحددة في توثيق خادم MCP

انسخ معرف العميل الصادر إلى oauth.clientId في ملف التكوين.

المصادقة عند الطلب

عند الاتصال بخادم مُفعَّل OAuth لأول مرة:

  1. راجع موجه المصادقة الذي يفتح في بيئة التطوير أو متصفحك.
  2. تحقق من الصلاحيات التي يطلبها الخادم.
  3. سجّل الدخول إلى حسابك وافق على الوصول.
  4. يحفظ Bob بيانات اعتمادك ويتصل بأدوات الخادم.

عرض حالة المصادقة وإدارتها

يمكنك التحقق من المصادقة أو تغييرها لخادم MCP:

  1. انقر أيقونة في لوحة Bob.
  2. اختر تبويب MCP.
  3. حدّد الخادم في القائمة.

تعرض الخوادم المتصلة مؤشر حالة. عند انتهاء صلاحية المصادقة أو تغيير الصلاحيات، يمكنك تحديث اتصالك.

لإعادة المصادقة: انقر بجانب اسم الخادم لإعادة تشغيل اتصالك وتسجيل الدخول مجددًا.

استكشاف الأخطاء وإصلاحها

موجه المصادقة لا يفتح

  • تحقق من أنك لم تُعلّم الخادم كمعطّل في تكوينك.
  • تحقق من أن ملف التكوين لا يتضمن header Authorization ثابتًا في headers.
  • أعد تشغيل الخادم من تبويب إعدادات MCP.
  • تحقق من أن متصفحك أو جدار الحماية لا يحجب الاتصالات المحلية على 127.0.0.1.

موفر الهوية يُعيد خطأ عدم تطابق Redirect URI

  • تحقق من أن تسجيل عميل موفر الهوية يتضمن http://127.0.0.1:33418/callback.
  • إذا كان المنفذ 33418 مشغولًا، سجّل منافذ إضافية من 33419 حتى 33427.

المصادقة تنجح لكن الخادم يفشل في الاتصال

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

Tokens تنتهي صلاحيتها بتكرار ويجب عليك إعادة المصادقة

  • تأكد من أن خادم التفويض يُصدر refresh tokens.
  • تحقق من مزامنة ساعة النظام لمنع انتهاء صلاحية الـ token مبكرًا.

تريد تسجيل الخروج أو تبديل الحسابات

إعادة تشغيل الخادم لا تمحو بيانات اعتماد OAuth. لتسجيل الخروج أو تبديل الحسابات، استخدم Reset auth من تبويب إعدادات MCP. يؤدي هذا إلى مسح الـ tokens المخزّنة وتشغيل موجه مصادقة جديد عند الاتصال التالي.

ما رأيك في هذا الموضوع؟