تكامل MCP (وصول أدوات الذكاء الاصطناعي)
يتضمّن Canopy خادم MCP مدمجًا (Model Context Protocol) يتيح لأدوات الذكاء الاصطناعي — مثل Claude Desktop وGitHub Copilot وCursor وVS Code — الاستعلام عن بيانات هندسة المؤسسة لديك وتحديثها مباشرةً. ويمكن لأدوات الذكاء الاصطناعي أيضًا رفع المُخرجات (جداول البيانات، ومخططات BPMN، ومخططات DrawIO، والمستندات الحرّة) وتحويلها إلى بطاقات وعلاقات ومخططات تتلاءم مع النموذج الفوقي القائم. يصادق المستخدمون عبر مزوّد SSO الحالي لديك، وتحترم كل عملية أذوناتهم الفردية.
هذه الميزة اختيارية ولا تبدأ تلقائيًا. فهي تتطلب إعداد SSO، وتفعيل ملف MCP في Docker Compose، وقيام أحد المسؤولين بتشغيلها من واجهة الإعدادات.
كيف يعمل
AI Tool (Claude, Copilot, etc.)
│
│ MCP protocol (HTTP + SSE)
▼
Canopy MCP Server (:8001, internal)
│
│ OAuth 2.1 with PKCE
│ delegates to your SSO provider
▼
Canopy Backend (:8000)
│
│ Per-user RBAC
▼
PostgreSQL
- يضيف المستخدم عنوان URL لخادم MCP إلى أداة الذكاء الاصطناعي لديه.
- عند أول اتصال، تفتح أداة الذكاء الاصطناعي نافذة متصفح للمصادقة عبر SSO.
- بعد تسجيل الدخول، يُصدر خادم MCP رمز وصول خاصًا به (مدعومًا بـ JWT الخاص بالمستخدم في Canopy). ويُجدَّد الرمز استباقيًا قبل نحو ساعة من انتهاء صلاحيته.
- تستخدم أداة الذكاء الاصطناعي هذا الرمز لجميع الطلبات اللاحقة.
- يمرّ كل استعلام عبر نظام أذونات Canopy المعتاد — فلا يرى المستخدمون سوى البيانات التي يملكون صلاحية الوصول إليها.
المتطلبات المسبقة
قبل تفعيل MCP، يجب أن يتوفّر لديك:
- SSO مُعَدّ ويعمل — يفوّض MCP المصادقة إلى مزوّد SSO لديك (Microsoft Entra ID أو Google Workspace أو Okta أو OIDC عام). راجع دليل المصادقة والدخول الموحّد.
- HTTPS مع نطاق عام — يتطلب تدفّق OAuth عنوان URI ثابتًا لإعادة التوجيه. انشر النظام خلف وكيل عكسي يُنهي اتصال TLS (Caddy أو Traefik أو Cloudflare Tunnel، وما إلى ذلك).
الإعداد
الخطوة 1: تشغيل خدمة MCP
خادم MCP هو ملف اختياري في Docker Compose. أضف --profile mcp إلى أمر بدء التشغيل:
docker compose --profile mcp up -d
يؤدي هذا إلى تشغيل حاوية Python خفيفة (المنفذ 8001، داخلي فقط) إلى جانب الواجهة الخلفية والواجهة الأمامية. ويوجّه Nginx طلبات /mcp/ إليها تلقائيًا — فإن لم تكن الحاوية تعمل، تحصل الطلبات على استجابة 502 نظيفة بدلًا من تعطّل الوكيل الطرفي.
الخطوة 2: ضبط متغيرات البيئة
أضف هذه المتغيرات إلى ملف .env لديك:
CANOPY_PUBLIC_URL=https://your-domain.example.com
MCP_PUBLIC_URL=https://your-domain.example.com/mcp
| المتغير | القيمة الافتراضية | الوصف |
|---|---|---|
CANOPY_URL | http://backend:8000 | عنوان URL الداخلي للواجهة الخلفية الذي تتصل به حاوية MCP (اسم خدمة Docker — نادرًا ما يحتاج إلى تغيير). |
CANOPY_PUBLIC_URL | http://localhost:8920 | عنوان URL العام لمثيل Canopy لديك. |
MCP_PUBLIC_URL | http://localhost:8920/mcp | عنوان URL العام لخادم MCP (يُستخدم في عناوين URI لإعادة توجيه OAuth والبيانات الوصفية). |
MCP_PORT | 8001 | المنفذ الداخلي لحاوية MCP (نادرًا ما يحتاج إلى تغيير). |
الخطوة 3: إضافة عنوان URI لإعادة توجيه OAuth إلى تطبيق SSO لديك
في تسجيل التطبيق لدى مزوّد SSO الخاص بك (نفس التطبيق الذي أعددته لتسجيل الدخول إلى Canopy)، أضف عنوان URI التالي لإعادة التوجيه:
https://your-domain.example.com/mcp/oauth/callback
هذا ضروري لتدفّق OAuth الذي يصادق المستخدمين عند اتصالهم من أداة الذكاء الاصطناعي لديهم.
الخطوة 4: تفعيل MCP في إعدادات المسؤول
- انتقل إلى الإعدادات في منطقة الإدارة وحدّد علامة التبويب AI.
- مرّر إلى قسم MCP Integration (AI Tool Access).
- حرّك المفتاح إلى وضع التفعيل لـ MCP.
- ستعرض الواجهة عنوان URL لخادم MCP وتعليمات الإعداد لمشاركتها مع فريقك.
يكون المفتاح معطّلًا إذا لم يكن SSO مُعَدًّا. أعدّ SSO أولًا.
ربط أدوات الذكاء الاصطناعي
بمجرد تفعيل MCP، شارك عنوان URL لخادم MCP مع فريقك. ويضيفه كل مستخدم إلى أداة الذكاء الاصطناعي لديه:
Claude Desktop
- افتح Settings > Connectors > Add custom connector.
- أدخل عنوان URL لخادم MCP:
https://your-domain.example.com/mcp - انقر Connect — تُفتح نافذة متصفح لتسجيل الدخول عبر SSO.
- بعد المصادقة، يمكن لـ Claude الاستعلام عن بيانات هندسة المؤسسة لديك وتحديثها.
VS Code (GitHub Copilot / Cursor)
أضف ما يلي إلى ملف .vscode/mcp.json في مساحة العمل لديك:
{
"servers": {
"canopy": {
"type": "http",
"url": "https://your-domain.example.com/mcp/mcp"
}
}
}
التكرار المزدوج لـ /mcp/mcp مقصود — فالأول /mcp/ هو مسار وكيل Nginx، والثاني هو نقطة نهاية بروتوكول MCP.
الاختبار المحلي (وضع stdio)
للتطوير أو الاختبار المحلي دون SSO/HTTPS، يمكنك تشغيل خادم MCP في وضع stdio — حيث يشغّله Claude Desktop مباشرةً كعملية محلية.
1. ثبّت حزمة خادم MCP:
pip install ./mcp-server
2. أضف ما يلي إلى ملف إعداد Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"canopy": {
"command": "python",
"args": ["-m", "canopy_mcp", "--stdio"],
"env": {
"CANOPY_URL": "http://localhost:8000",
"CANOPY_PASSWORD": "your-password"
}
}
}
}
في هذا الوضع، يصادق الخادم مباشرةً باستخدام البريد الإلكتروني وكلمة المرور (دون OAuth)، ويحدّث JWT الخاص بـ Canopy تلقائيًا في الخلفية.