Skip to content

Gateway MCP

استخدم هر خادم MCP. نحن نؤمّن الحدود.

Model Context Protocol (MCP) هو البايار الناشئ خیرتصال عامل بابزارها. فراهم می‌کند Triggerfish Gateway MCP آازة تتيح لك اخیرتصال بهر خادم متوافق با MCP با تطبيق ضوابط طبقه‌بندی وأذونات مستوى اخیربزار وتتبع Taint وثبت بازرسی الكامل.

أنت تجلب خوادم MCP. Triggerfish يؤمّن هر درخواست ورد ياز طریق الحدود.

چگونه تعمل

تقع Gateway MCP بین عاملك وهر خادم MCP. هر فراخوانی ابزار يمر از طریق طبقة تطبيق سیاست قبل الوصول به الخادم الخارجي، وهر رد يُصنّف قبل دخوله زمینه عامل.

تدفق Gateway MCP: عامل ← Gateway MCP ← طبقة سیاست ← خادم MCP، با مسار رفض به BLOCKED

توفر Gateway خمس وظائف أساسية:

  1. احراز هویت وطبقه‌بندی الخادم -- باید ممراجعه کنیدة وطبقه‌بندی خوادم MCP قبل استفاده
  2. تطبيق أذونات مستوى اخیربزار -- يمكن السماح یا تقييد یا حظر ابزارها فردية
  3. تتبع Taint درخواست/الرد -- Taint نشست يتصاعد بناءً روی طبقه‌بندی الخادم
  4. التحقق از المخطط -- تمام درخواستات والردود تُتحقق مقابل المخططات المُعلنة
  5. ثبت بازرسی -- هر فراخوانی ابزار وقرار وتغيير Taint يُسجّل

حاخیرت خادم MCP

تمام خوادم MCP تبدأ كـ UNTRUSTED. باید طبقه‌بندیها صراحةً قبل أن انجام می‌شودكن عامل از استدعائها.

الحالةالوصفهل يمكن للعامل فراخوانی؟
UNTRUSTEDپیش‌فرض للخوادم الجديدة. در انتظار الممراجعه کنیدة.خیر
CLASSIFIEDتمت الممراجعه کنیدة وتعيين مستوى طبقه‌بندی با أذونات لهر ابزار.بله (ضاز سیاست)
BLOCKEDمحظور صراحةً از قبل المسؤول.خیر
آلة حالة خادم MCP: UNTRUSTED ← CLASSIFIED یا BLOCKED

أمان نمی‌توان فراخوانی خادم MCP بحالة UNTRUSTED از قبل عامل

تحت هر ظرف. نمی‌توان لـ LLM درخواست یا إقناع یا خداع النظام خیرستخدام خادم غير مصنّف. طبقه‌بندی Gateway روی مستوى الكود، وليس قرار LLM. :::

پیکربندی

تُكوّن خوادم MCP در triggerfish.yaml كخريطة مفهرسة ببارّف الخادم. هر خادم يستخدم إما عملية فرعية محلیة (نقل stdio) یا نقطة نهاية بعيدة (نقل SSE).

الخوادم المحلیة (Stdio)

تُطلق الخوادم المحلیة كعمليات فرعية. يتواصل Triggerfish باها از طریق stdin/stdout.

yaml
mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "keychain:github-pat"
    classification: CONFIDENTIAL

  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/you/docs"]
    classification: INTERNAL

  weather:
    command: npx
    args: ["-y", "@mcp/server-weather"]
    classification: PUBLIC

الخوادم البعيدة (SSE)

الخوادم البعيدة تعمل در مكان آخر وانجام می‌شود الوصول إليها از طریق HTTP Server-Sent Events.

yaml
mcp_servers:
  remote_api:
    url: "https://mcp.example.com/sse"
    classification: CONFIDENTIAL

مفاتيح پیکربندی

المفتاحالنوعالزامیالوصف
commandstringبله (stdio)الملف التندرذي (مثل npx، deno، node)
argsstring[]خیرالوسائط الممررة للأمر
envmapخیرمتغيرات البيئة للعملية الفرعية
urlstringبله (SSE)نقطة نهاية HTTP للخوادم البعيدة
classificationstringبلهمستوى حساسية البيانات: PUBLIC، INTERNAL، CONFIDENTIAL، یا RESTRICTED
enabledbooleanخیرپیش‌فرض: true. عيّن به false للتخطي بدون إزالة پیکربندی.

هر خادم باید أن يحتوي روی command (محلی) یا url (بعيد). الخوادم التي خیر تحتوي روی هر ازهما انجام می‌شود تخطيها.

اخیرتصال الكسول

تتصل خوادم MCP در الخلدرة بعد بدء التشغيل. خیر تحتاج اخیرنتظار حتى تكون تمام الخوادم جاهزة قبل استخدام عاملك.

  • تعيد الخوادم المحاولة بتمراجعه کنید أسي: 2 ثانية ← 4 ثوانٍ ← 8 ثوانٍ ← 30 ثانية كحد أقصى
  • الخوادم الجديدة تصبح متاحة للعامل عند اتصالها -- خیر حاجة لإعادة تشغيل نشست
  • إذا فشل الخادم در اخیرتصال بعد تمام المحاوخیرت، يدخل حالة failed ويمكن إعادة المحاولة عند إعادة تشغيل الخادم التالية

تعرض واجهات CLI وTidepool حالة اتصال MCP در الوقت الفعلي. ببینید کانال CLI للتفاصيل.

تعطيل خادم

لتعطيل خادم MCP مؤقتاً بدون إزالة تكوينه:

yaml
mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    classification: CONFIDENTIAL
    enabled: false # يُتخطى أثناء بدء التشغيل

متغيرات البيئة ورمزها

قيم env المسبوقة بـ keychain: تُحل از کلیدزنجیر نظام التشغيل عند بدء التشغيل:

yaml
env:
  API_KEY: "keychain:my-secret-name" # تُحل از کلیدزنجیر نظام التشغيل
  PLAIN_VAR: "literal-value" # تُمرر كما هي

فقط PATH يُورث از بيئة المضيف (حتى تُحل npx وnode وdeno وغيرها بشهر صحیح). خیر تتسرب متغيرات بيئة مضيف أخرى به عمليات خادم MCP الفرعية.

خزّن رمزها بـ triggerfish config set-secret <name> <value>. ثم

أشر إليها كـ keychain:<name> در تكوين env لخادم MCP. :::

تسمية ابزارها

ابزارها خوادم MCP تُسمى بمساحة أسماء كـ mcp_<serverId>_<toolName> لتجنب التعارض با ابزارها المدمجة. مثخیرً، إذا كشف خادم باسم github ابزار تُسمى list_repos، يراها عامل كـ mcp_github_list_repos.

طبقه‌بندی والرفض پیش‌فرض

إذا حذفت classification، يُسجّل الخادم كـ UNTRUSTED وتُرفض تمام فراخوانیات ابزارها از Gateway. باید اختيار مستوى طبقه‌بندی صراحةً. ببینید دليل طبقه‌بندی للمساعدة در اختيار المستوى الازاسب.

تدفق فراخوانی اخیربزار

عندما يدرخواست عامل فراخوانی ابزار MCP، تنفذ Gateway تسلسل فحوصات قطعیة قبل تحويل درخواست.

1. فحوصات ما قبل التندرذ

تمام الفحوصات قطعیة -- خیر فراخوانیات LLM، خیر عشوائية.

الفحصنتيجة الفشل
حالة الخادم CLASSIFIED؟حظر: "الخادم غير باتمد"
اخیربزار مسموح بها خیرین الخادم؟حظر: "اخیربزار غير مسموحة"
المستخدم لديه الأذونات اخیرلزامیة؟حظر: "الإذن مرفوض"
Taint نشست متوافق با طبقه‌بندی الخادم؟حظر: "سينتهك عدم الكتابة لأسفل"
التحقق از المخطط نجح؟حظر: "بالمات غير صالحة"

إذا كان Taint نشست أروی از طبقه‌بندی الخادم، يُحظر فراخوانی

لازع الكتابة لأسفل. نشست ملوثة بمستوى CONFIDENTIAL نمی‌توانها إرسال بيانات به خادم MCP بمستوى PUBLIC. :::

2. التندرذ

إذا نجحت تمام فحوصات ما قبل التندرذ، تُحوّل Gateway درخواست به خادم MCP.

3. باالجة الرد

عندما يُعيد خادم MCP رداً:

  • التحقق از الرد مقابل المخطط المُعلن
  • طبقه‌بندی بيانات الرد بمستوى طبقه‌بندی الخادم
  • تحديث Taint نشست: taint = max(current_taint, server_classification)
  • إنشاء سجل نسب يتتبع أصل البيانات

4. بازرسی

هر فراخوانی ابزار يُسجّل با: هویت الخادم، اسم اخیربزار، هویت المستخدم، قرار سیاست، تغيير Taint، والطابع الزازي.

قوانین Taint الرد

ردود خادم MCP ترث مستوى طبقه‌بندی الخادم. Taint نشست يمكن أن يتصاعد فقط.

طبقه‌بندی الخادمTaint الردالتأثير روی نشست
PUBLICPUBLICخیر تغيير در Taint
INTERNALINTERNALTaint يتصاعد به INTERNAL روی الأقل
CONFIDENTIALCONFIDENTIALTaint يتصاعد به CONFIDENTIAL روی الأقل
RESTRICTEDRESTRICTEDTaint يتصاعد به RESTRICTED

بمجرد Taint نشست بمستوى باين، تبقى عند آن المستوى یا أروی لبقية نشست. إعادة ضبط كاملة للنشست (التي تمسح سجل مکالمه) الزامیة لتقليل Taint.

تمرير احراز هویت المستخدم

لخوادم MCP التي تدعم احراز هویت روی مستوى المستخدم، تُمرر Gateway بيانات اعتماد المستخدم المُفوّضة بدخیرً از بيانات اعتماد النظام.

عندما تُكوّن ابزار بـ requires_user_auth: true:

  1. تتحقق Gateway مما إذا كان المستخدم قد وصل این الخادم MCP
  2. تسترجع بيانات اعتماد المستخدم المُفوّضة از مخزن بيانات اخیرعتماد الآاز
  3. تضيف احراز هویت المستخدم به رؤوس درخواست MCP
  4. يطبق خادم MCP أذونات مستوى المستخدم

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

تمرير احراز هویت المستخدم هو النمط المفضل لهر خادم MCP يدير

التحكم در الوصول. يعني أن عامل يرث أذونات المستخدم بدخیرً از وصول نظام شامل. :::

التحقق از المخطط

تتحقق Gateway از تمام درخواستات وردود MCP مقابل المخططات المُعلنة قبل التحويل:

typescript
// التحقق از درخواست (مبسط)
function validateMcpRequest(
  serverConfig: McpServerConfig,
  toolName: string,
  params: Record<string, unknown>,
): Result<void, McpError> {
  const toolSchema = serverConfig.getToolSchema(toolName);

  if (!toolSchema) {
    return err(new McpError("Unknown tool"));
  }

  // التحقق از البالمات مقابل مخطط JSON
  if (!validateJsonSchema(params, toolSchema.inputSchema)) {
    return err(new McpError("Invalid parameters"));
  }

  // التحقق از أنماط الحقن در بالمات النصوص
  for (const [, value] of Object.entries(params)) {
    if (typeof value === "string" && containsInjectionPattern(value)) {
      return err(new McpError("Potential injection detected"));
    }
  }

  return ok(undefined);
}

التحقق از المخطط يلتقط درخواستات المشوهة قبل وصولها به الخادم الخارجي ويُعلّم أنماط الحقن المحتملة در بالمات النصوص.

ضوابط المؤسسات

نشر المؤسسات لديه ضوابط إضادرة لإدارة خادم MCP:

  • سجل خوادم يُديره المسؤول -- فقط خوادم MCP الباتمدة از المسؤول يمكن طبقه‌بندیها
  • أذونات ابزارها لهر قسم -- فرق مختلفة يمكنها الحصول روی وصول ابزارها مختلف
  • تسجيل اخیرمتثال -- تمام تفاعخیرت MCP متاحة در لوحات اخیرمتثال
  • محدودیت نرخ -- حدود بادل لهر خادم ولهر ابزار
  • مراقبة صحة الخادم -- تتتبع Gateway توفر الخادم ویاقات پاسخ