Gateway MCP
استخدم هر خادم MCP. نحن نؤمّن الحدود.
Model Context Protocol (MCP) هو البايار الناشئ خیرتصال عامل بابزارها. فراهم میکند Triggerfish Gateway MCP آازة تتيح لك اخیرتصال بهر خادم متوافق با MCP با تطبيق ضوابط طبقهبندی وأذونات مستوى اخیربزار وتتبع Taint وثبت بازرسی الكامل.
أنت تجلب خوادم MCP. Triggerfish يؤمّن هر درخواست ورد ياز طریق الحدود.
چگونه تعمل
تقع Gateway MCP بین عاملك وهر خادم MCP. هر فراخوانی ابزار يمر از طریق طبقة تطبيق سیاست قبل الوصول به الخادم الخارجي، وهر رد يُصنّف قبل دخوله زمینه عامل.
توفر Gateway خمس وظائف أساسية:
- احراز هویت وطبقهبندی الخادم -- باید ممراجعه کنیدة وطبقهبندی خوادم MCP قبل استفاده
- تطبيق أذونات مستوى اخیربزار -- يمكن السماح یا تقييد یا حظر ابزارها فردية
- تتبع Taint درخواست/الرد -- Taint نشست يتصاعد بناءً روی طبقهبندی الخادم
- التحقق از المخطط -- تمام درخواستات والردود تُتحقق مقابل المخططات المُعلنة
- ثبت بازرسی -- هر فراخوانی ابزار وقرار وتغيير Taint يُسجّل
حاخیرت خادم MCP
تمام خوادم MCP تبدأ كـ UNTRUSTED. باید طبقهبندیها صراحةً قبل أن انجام میشودكن عامل از استدعائها.
| الحالة | الوصف | هل يمكن للعامل فراخوانی؟ |
|---|---|---|
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مفاتيح پیکربندی
| المفتاح | النوع | الزامی | الوصف |
|---|---|---|---|
command | string | بله (stdio) | الملف التندرذي (مثل npx، deno، node) |
args | string[] | خیر | الوسائط الممررة للأمر |
env | map | خیر | متغيرات البيئة للعملية الفرعية |
url | string | بله (SSE) | نقطة نهاية HTTP للخوادم البعيدة |
classification | string | بله | مستوى حساسية البيانات: PUBLIC، INTERNAL، CONFIDENTIAL، یا RESTRICTED |
enabled | boolean | خیر | پیشفرض: 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 الرد | التأثير روی نشست |
|---|---|---|
PUBLIC | PUBLIC | خیر تغيير در Taint |
INTERNAL | INTERNAL | Taint يتصاعد به INTERNAL روی الأقل |
CONFIDENTIAL | CONFIDENTIAL | Taint يتصاعد به CONFIDENTIAL روی الأقل |
RESTRICTED | RESTRICTED | Taint يتصاعد به RESTRICTED |
بمجرد Taint نشست بمستوى باين، تبقى عند آن المستوى یا أروی لبقية نشست. إعادة ضبط كاملة للنشست (التي تمسح سجل مکالمه) الزامیة لتقليل Taint.
تمرير احراز هویت المستخدم
لخوادم MCP التي تدعم احراز هویت روی مستوى المستخدم، تُمرر Gateway بيانات اعتماد المستخدم المُفوّضة بدخیرً از بيانات اعتماد النظام.
عندما تُكوّن ابزار بـ requires_user_auth: true:
- تتحقق Gateway مما إذا كان المستخدم قد وصل این الخادم MCP
- تسترجع بيانات اعتماد المستخدم المُفوّضة از مخزن بيانات اخیرعتماد الآاز
- تضيف احراز هویت المستخدم به رؤوس درخواست MCP
- يطبق خادم 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 توفر الخادم ویاقات پاسخ
