دمج MCP
تجيب قاعدة معرفتك عن أسئلة حول أشياء دوّنتها. أما خادم MCP فيتيح لـ Minaya الإجابة عن أسئلة حول أشياء تتغير — حالة الطلب، مستويات المخزون، توفر الحجز — من خلال استدعاء أنظمتك الخاصة أثناء المحادثة.
ما هو MCP
بروتوكول سياق النموذج (Model Context Protocol) معيار مفتوح لعرض الأدوات على أنظمة الذكاء الاصطناعي. تشغّل خادمًا يعلن عن مجموعة من الأدوات؛ ويتصل Minaya كعميل، فيكتشف ما هو متاح، ويقرر النموذج متى يستدعي إحداها.
يتصل Minaya بخوادم MCP البعيدة عبر Streamable HTTP. خوادم stdio المحلية غير مدعومة — يجب أن يكون الخادم قابلًا للوصول من الإنترنت.
كيف يعمل الاستدعاء
- يسأل الزائر شيئًا.
- يسترجع Minaya المقاطع ذات الصلة كالمعتاد.
- تُعرض على النموذج الأدوات من خوادم MCP المفعّلة لديك إلى جانب ذلك السياق.
- إذا استدعى النموذج أداة، يتصل Minaya بخادمك وينفّذها.
- تُعاد النتيجة إلى النموذج، فيجيب مستخدمًا إياها.
تُحسم استدعاءات الأدوات قبل بدء بث الرد، ليرى الزائر إجابة واحدة نظيفة بدلًا من خطوات وسيطة.
ربط خادم
اذهب إلى عمليات الدمج وأضف:
| الحقل | ملاحظات |
|---|---|
| الاسم | تسمية لمرجعك الخاص، مثل “البحث عن الطلبات”. |
| عنوان الخادم | نقطة نهاية HTTPS عامة تتحدث بلغة MCP عبر Streamable HTTP. |
| رمز Bearer | اختياري. مشفّر أثناء التخزين ولا يُعرض مرة أخرى بعد الحفظ. |
يفحص Minaya الخادم فورًا ويعرض عدد الأدوات التي وجدها، أو الخطأ إذا تعذّر الاتصال. استخدم اختبار لإعادة الفحص في أي وقت.
الحدود
| الحد | القيمة | السبب |
|---|---|---|
| الخوادم لكل نشاط تجاري | 5 | يُدفع ثمن زمن استجابة الاكتشاف في كل رسالة. |
| استدعاءات الأدوات لكل جلسة | 10 | يحدّ من التكلفة ويمنع الحلقات المتفلتة. |
| الجولات لكل رسالة | 3 | قد يعود النموذج لطلب المزيد من الأدوات، لكن ليس إلى ما لا نهاية. |
| مهلة الاتصال | 8 ثوانٍ | يجب ألا يُعلّق خادم بطيء محادثة الزائر. |
| مهلة استدعاء الأداة | 15 ثانية | بحد أقصى مطلق 20 ثانية. |
إذا تعذّر الوصول إلى خادم، تستمر المحادثة معتمدة على قاعدة معرفتك وحدها — أعطال MCP لا تُعطّل المحادثة أبدًا.
بناء خادم
يعمل أي تطبيق لخادم MCP. مثال بسيط باستخدام حزمة TypeScript SDK:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
const server = new McpServer({ name: "orders", version: "1.0.0" });
server.tool(
"get_order_status",
"Look up the delivery status of an order by its reference.",
{ orderId: z.string().describe("The customer's order reference") },
async ({ orderId }) => {
const order = await db.orders.findByReference(orderId);
if (!order) {
return { content: [{ type: "text", text: "No order with that reference." }] };
}
return {
content: [{
type: "text",
text: `Order ${orderId}: ${order.status}, expected ${order.eta}.`,
}],
};
},
);اعرضه عبر Streamable HTTP وأعطِ Minaya العنوان.
تصميم أدوات جيدة
- صِفها بوضوح. الوصف هو ما يعتمد عليه النموذج ليقرر استدعاء الأداة أم لا. “البحث عن حالة تسليم طلب عبر مرجعه” أفضل من “نقطة نهاية الطلبات”.
- اجعل المعاملات قليلة وواضحة التسمية. يملأها النموذج من سياق المحادثة، لذا
orderIdأفضل منq. - أعد نصًا وليس JSON خامًا. تدخل النتيجة إلى سياق النموذج؛ الجملة المقروءة تنتج إجابة أفضل من كائن مُفرَّغ.
- تعامل مع الحالة الفارغة. أعد “لم يُعثر على طلب” بدلًا من خطأ، ليتمكن النموذج من توضيح ذلك.
- حافظ على سرعتها. الزائر ينتظر؛ أي شيء يتجاوز 15 ثانية يُقطع.
الأمان
بما أنك توفّر عنوانًا تستدعيه خوادم Minaya لاحقًا:
- العناوين الخاصة محظورة. يُرفض loopback والنطاقات الخاصة وlink-local وCGNAT ونقاط نهاية بيانات السحابة الوصفية — يُتحقق منها عند الحفظ وقبل كل اتصال، بحيث لا يمكن لتغييرات DNS تجاوز ذلك.
- HTTPS مطلوب في بيئة الإنتاج.
- الرموز مشفّرة أثناء التخزين ولا تُعاد أبدًا عبر الواجهة البرمجية.
- تُعامَل بيانات الأداة الوصفية كغير موثوقة. قد يخفي خادم مخترق تعليمات في اسم أداة أو وصفها، لذا تُطهَّر البيانات الوصفية وتُستبعد الأدوات التي تحتوي نصًا يشبه التعليمات.
- تُوسَم النتائج كبيانات. يُغلَّف خرج الأداة بحيث يتعامل معه النموذج كمعلومة، لا كتعليمات أبدًا.
راجع الأمان لبقية التفاصيل.
إدارة الخوادم
- تبديل — تعطيل من دون حذف؛ الخوادم المعطّلة لا تُعرض على النموذج.
- اختبار — إعادة الفحص وتحديث عدد الأدوات.
- حذف — يزيل الخادم ورمزه المخزّن.
Minaya كخادم MCP
تغطي الأقسام أعلاه اتجاه استدعاء Minaya لأنظمتك. أما هذا فهو الاتجاه الآخر: أدواتك الخاصة بالذكاء الاصطناعي تستعلم قاعدة المعرفة التي بنيتها هنا بالفعل.
اربط Claude أو ChatGPT أو وكيلًا كتبته بنفسك، ليتمكن من البحث في محتواك وطرح أسئلة مؤسَّسة على بياناتك — نفس الاسترجاع والضوابط التي يحصل عليها زوار موقعك. متاح في الخطط المدفوعة.
الربط
- افتح عمليات الدمج في لوحة التحكم وأنشئ رمز وصول ضمن خادم Minaya MCP.
- انسخه فورًا — يُعرض مرة واحدة فقط. إذا فقدته، أنشئ رمزًا جديدًا؛ يتوقف القديم عن العمل على الفور.
- أضف الخادم إلى عميل MCP لديك:
{
"mcpServers": {
"minaya": {
"type": "http",
"url": "https://api.minaya.ai/public/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}الأدوات
| الأداة | ما تفعله |
|---|---|
search_knowledge_base | تُعيد المقاطع الأقرب لسؤال ما، مع درجات الصلة وعناوين المصادر. استخدمها عندما تريد المادة المصدرية. |
ask | تُعيد إجابة مكتوبة، مؤسَّسة بشكل صارم على قاعدة المعرفة. تمر عبر نفس الضوابط التي يمر بها الودجت، فيحصل السؤال غير المغطى على رسالتك الاحتياطية بدلًا من تخمين. |
list_sources | تسرد المستندات والصفحات المفهرسة، ليعرف المستدعي ما تغطيه قاعدة المعرفة. |
الأمان
- للقراءة فقط. لا تكتب أي أداة أو تحدّث أو تحذف أي شيء. رمز مسرَّب لا يكشف سوى محتوى يعرضه ودجتك علنًا بالفعل.
- مقتصر على ودجت واحد. يمنح الرمز الوصول إلى قاعدة المعرفة التي أُنشئ من أجلها فقط، ولا شيء آخر في حسابك.
- منفصل عن مفتاح موقعك. مفتاح الموقع عام ويوجد في HTML صفحتك. هذا الرمز سري — أبقه بعيدًا عن كود جانب العميل والمستودعات العامة.
- يُلغى عند خفض الخطة. يُعاد التحقق من الوصول مقابل خطتك في كل استدعاء.
- محدود بمعدل 60 استدعاءً في الدقيقة.