الوثائق
من الصفر إلى جاهز لاستدعاء الوكلاء
كل ما يلي يعمل على جهازك بواسطة Node.js فقط — بلا حسابات، بلا مفاتيح API، بلا اعتمادات إضافية. المنصة المستضافة تتبع التدفق نفسه.
التسجيل الذاتي — التدفق المستضاف
أسرع طريق لا يحتاج سطر أوامر ولا مواصفة OpenAPI: سجّل برابط موقعك واستلم ملف Agentify (سطر JSON واحد تضعه على موقعك مرة واحدة إلى الأبد). الباقة المجانية تعطيك تقرير الجاهزية فورًا دون أي ملف؛ والنشر الفعلي يتبع هذا التسلسل — الدفع يأتي بعد التحقق، لا قبله:
| المرحلة | ماذا يحدث |
|---|---|
| 0 — التحقق من الملكية | نطابق ملف /.well-known/agentify.json (أو سجل DNS TXT أو وسم meta) — لا يُنشر شيء لنطاق لا تملكه، وعندها فقط يُفتح الدفع |
| 1 — المسح | نزحف موقعك (مع احترام robots.txt): الصفحات، والنماذج، وأي مواصفة OpenAPI في المسارات المعروفة |
| 2 — التوليف | تتحول الصفحات إلى أدوات search_site/get_page؛ وتتحول مواصفة OpenAPI إلى أدوات وظيفية محددة النوع؛ ويُثري تحليل ذكي الأوصاف ويصنّف المخاطر |
| 3 — المراجعة (أنت) | التحليل اقتراح لا قرار: تختار بالضبط ما يُكشف للوكلاء وسياسة الموافقة لكل أداة — لا يُنشر شيء قبل ضغطة "انشر المحدد" |
| 4 — النشر | يُفعَّل مستأجرك على البوابة بالأدوات التي اخترتها فقط؛ وتُحفظ بيانات الاعتماد في الخزنة؛ ويُصدر رمز تسجيل لوكلائك |
| 5 — التحقق | نتصرف كوكيل حقيقي تجاه نقطة اتصالك الجديدة — تسجيل OAuth، ومصافحة MCP، واستدعاءات أدوات فعلية — قبل الإعلان عن أنها جاهزة |
وبعد الإطلاق تبقى مُدارًا: إعادة تحليل عند الطلب ضمن حصة باقتك عندما يتغير موقعك، وتحديث محتوى يومي مجاني (البحث لا يخدم بيانات قديمة أبدًا)، ونبضة تحقق يومية من ملفك، واكتشاف تلقائي للأدوات المعطوبة من حركة الوكلاء الفعلية — وكلها تُدار من لوحة التحكم.
تشاهد كل مرحلة مباشرةً على صفحة حالتك (يصلك الرابط مع مفتاح الوصول عند التسجيل)، وتراجع هناك المرشحات المستخرجة من النماذج، وتجمع مخرجاتك: نقطة اتصال MCP، ورمز التسجيل، وملفات الاكتشاف، وتقرير جاهزية مع سجل تدقيق كامل.
node scripts/e2e-scenario.js.
البداية السريعة — تشغيل العرض الكامل
يوفر المستودع حلقة عمل كاملة: متجر تجريبي، وطبقة مصادقة، وبوابة MCP، ووكيل مبرمج يختبر كل ذلك. يتطلب Node إصدار 18 فأعلى، ولا شيء آخر.
# clone, then from the repo root: node scripts/e2e.js # boots demo-site (:4100), auth (:4200), gateway (:4300), # registers an agent, gets a token, and runs 14 end-to-end checks. # Expected final line: 🎉 E2E PASSED
ALLOW_PRIVATE_HOSTS=1. في بيئة الإنتاج يمنع حارس SSRF الوصول للمضيفين الخاصين — راجع صفحة الأمان.
حوّل واجهتك البرمجية إلى أدوات وكيل
إذا كانت لديك مواصفة OpenAPI 3.x، فإن أداة التحويل تجمعها في ملف مانيفست وظيفي — وهو التمثيل الوسيط الموحّد الذي تخدمه البوابة.
node packages/transformer/src/cli.js your-openapi.json \ --tenant your-business \ --base-url https://api.your-site.com \ --secret-ref YOUR_API_KEY_ENV \ --out packages/gateway/tenants/your-business.manifest.json
قواعد التحويل: operationId ← اسم الأداة · GET ← صلاحية read، وعمليات التعديل ← صلاحية write · المعاملات وأجسام الطلبات ← مخطط inputSchema من نوع JSON-Schema مسطّح · x-requires-approval: true ← تفعيل الموافقة البشرية. كما تولّد أداة التحويل ملفات اكتشاف llms.txt وmcp.json لوضعها على موقعك.
المصادقة
لا تثق البوابة بأي طلب دون رمز Bearer، وتتحقق من كل رمز عبر طبقة المصادقة باستخدام فحص RFC 7662. تبدأ الوكلاء التدفق بالكامل تلقائيًا:
| الخطوة | ماذا يحدث |
|---|---|
| 1 — التحدي | استدعاء غير مصادَق ← 401 + WWW-Authenticate يشير إلى بيانات وصف المورد وفق RFC 9728 |
| 2 — الاكتشاف | يقرأ الوكيل البيانات الوصفية ← يجد خادم التفويض والصلاحيات المدعومة |
| 3 — التسجيل | تسجيل عملاء ديناميكي (RFC 7591)، مقيّد برمز وصول أولي تصدره أنت |
| 4 — الرمز | تدفق ترخيص PKCE (بتفويض المستخدم) أو بيانات اعتماد العميل (آلة لآلة)، مع ربط resource (RFC 8707) |
| 5 — الاستدعاء | الرمز مرتبط بجهة محددة (مستأجرك) — غير صالح في أي مكان آخر |
ربط وكيل
يتصل أي عميل يدعم MCP (Claude، ChatGPT، Copilot، Cursor) برابط:
{
"mcpServers": {
"your-business": {
"url": "https://your-gateway/mcp/your-business",
"transport": "http"
}
}
}
تطبّق البوابة النسخة عديمة الحالة من JSON-RPC عبر Streamable-HTTP — initialize، وtools/list، وtools/call، وping. البث عبر SSE واستئناف الجلسات على خارطة الطريق.
مرجع ملف المانيفست
{
"manifestVersion": "1.0",
"tenant": "your-business",
"origin": {
"baseUrl": "https://api.your-site.com",
"allowedHosts": ["api.your-site.com"] // SSRF allowlist
},
"auth": {
"type": "apiKey",
"header": "X-API-Key",
"secretRef": "YOUR_API_KEY_ENV" // injected server-side, never exposed
},
"tools": [{
"name": "create_order",
"description": "Create an order. Returns order id and total.",
"scope": "write",
"requiresApproval": true,
"inputSchema": { /* JSON Schema */ },
"request": { "method": "POST", "path": "/api/orders" }
}]
}
تصنيف الأخطاء
تُعيَّن أخطاء التنفيذ إلى مفردات ثابتة حتى تستطيع الوكلاء (ولوحات التحكم لديك) الاستجابة برمجيًا:
| الرمز | المعنى |
|---|---|
invalid_args | فشلت المدخلات في اجتياز مخطط JSON Schema الخاص بالأداة — تحدد الرسالة الحقل بالضبط |
forbidden | الصلاحية غير كافية، أو المضيف غير مسموح به، أو محظور بسياسة |
needs_approval | الأداة تتطلب موافقة؛ يجب على إنسان التأكيد قبل التنفيذ |
origin_unreachable | لم يستجب موقعك (انتهت المهلة / خطأ اتصال) |
origin_error | استجاب موقعك بحالة خطأ (مع مقتطف من نص الاستجابة) |