يأتي Entity Enricher مزوّدًا بخادم Model Context Protocol مضمّن على /api/mcp — اعرض قائمة مخططاتك، وأثرِ كيانًا، وافحص النتيجة، وعالِج تحذير تصنيف كل ذلك من داخل محادثة Claude واحدة. دون الحاجة إلى محرّر لسير العمل.
شكل مختلف، وحالة استخدام مختلفة. يغلّف موصّلا n8n وMake واجهة الـ API من أجل أتمتة سير العمل: المشغّلات، والتشغيلات المجدولة، والمسارات متعددة الخطوات، والحالة الدائمة. أما MCP فيغلّفها من أجل المحادثة التفاعلية: الأسئلة الفورية، وعمليات الإثراء الاستكشافية، والتوضيحات اللاحقة. سير العمل ذو طابع الدُفعات، والمحادثات ذات طابع الحوار — يختلف السطح وتختلف تجربة المستخدم.
الميزة الأبرز التي لا يفتحها سوى MCP: استئناف التصنيف التفاعلي. عندما يرفض مُصنِّف ما قبل التشغيل كيانك (مثلاً طلبت إثراء "Titan" مقابل مخطّط لكوكب، لكن Titan قمر)، يضطر n8n/Make إلى الإلغاء التلقائي لأنهما غير تفاعليين. أما MCP فيُظهِر التحذير إلى Claude، فيطلب منك Claude التأكيد، وعند "نعم" تُعاد الأداة دون المُصنِّف. لا فشل في منتصف المسار، ولا إعادة تشغيل من البداية.
لأجل claude.ai وClaude Code وCursor وأي عميل MCP يدعم مسار OAuth القياسي. لا حاجة لإنشاء مفتاح API أو لصقه — إذ يكتشف العميل خادم التفويض تلقائيًا.
https://entityenricher.ai/api/mcp/.للعملاء الذين يُضبطون عبر ملف JSON بدلًا من تسجيل دخول تفاعلي (Claude Desktop وContinue وZed).
ent_… — فهي تُعرض مرة واحدة فقط.بالنسبة إلى Claude Desktop، عدّل ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) أو %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"entityenricher": {
"url": "https://entityenricher.ai/api/mcp/",
"headers": { "X-API-Key": "ent_your_key_here" }
}
}
}أعد تشغيل Claude Desktop. يعمل المقتطف نفسه مع Claude Code وCursor وContinue وZed — أي عميل متوافق مع MCP.
في محادثة جديدة: "اعرض مخططات Entity Enricher الخاصة بي، ثم أثرِ Sanofi وفق مخطط شركة الأدوية باستخدام Claude Sonnet." يكتشف Claude الأدوات تلقائيًا، ويختار الأداة المناسبة، ويطلب منك تأكيد اختيار النموذج والمخطط، ويبث النتيجة ضمن المحادثة.
تغطي 29 أداة كامل مساحة الإثراء وتأليف المخططات. سلوكها مطابق لنقاط نهاية REST التي تغلّفها (التحقق نفسه، والفوترة نفسها، وحدود الخطة نفسها) — وعندما تحصل واجهة الويب على إصلاح، يحصل MCP عليه أيضًا. أما العمل الطويل الأمد (الإثراء بالدفعات، وتوليد العينات، وتشغيل المعايير المرجعية) فيتم بشكل غير متزامن: تُرجع أداة البدء job_id، ويستطلع Claude get_job_status، ثم يجلب المخرجات المحفوظة من سجلاتك بمجرد اكتمال المهمة.
| الفئة | أداة | الوصف |
|---|---|---|
| الاكتشاف | list_models | عرض نماذج LLM المتاحة + profile_limits الخاصة بخطتك حتى يضبط Claude معدله ذاتيًا قبل بلوغ HTTP 402. |
| المخططات | list_schemas | عرض مخططات JSON المحفوظة في مؤسستك، المثبّتة أولًا. |
| المخططات | get_schema | جلب المحتوى الكامل للمخطط باستخدام UUID. |
| المخططات | generate_sample | ولّد كيان عيّنة واقعيًا من وصف نوع الكيان — الخطوة الأولى الطبيعية قبل توليد المخطط. مع المرفقات، قد يتوقف المخطِّط التفاعلي مؤقتًا لطرح أسئلة توضيحية. |
| المخططات | create_schema_from_sample | ولّد مخطط JSON من قاموس كيان عيّنة عبر LLM، مع إمكانية الاستناد إلى مستندات مصدرية مرفوعة (attachment_ids). تُحفظ النتيجة تلقائيًا. |
| المخططات | edit_schema | تعديل مخطط موجود باللغة الطبيعية. يعيد محتوى جديدًا + 5 اقتراحات للمتابعة. |
| المخططات | save_schema | احفظ مخططًا ألّفه Claude مباشرة — دون استدعاء LLM، ودون تكلفة، مع التحقق على جانب الخادم. |
| المخططات | update_schema | أعد تسمية مخطط محفوظ أو استبدل محتواه أو أعد وسمه أو ثبّته دون استدعاء LLM. |
| المخططات | delete_schema | احذف مخططًا محفوظًا حذفًا مؤقتًا حسب UUID. |
| الإثراء | enrich_entity | إثراء متعدد النماذج مع دمج تلقائي اختياري. يقبل قائمة attachment_ids اختيارية. تُعيد حالات عدم تطابق التصنيف استجابة غير خاطئة حتى يتمكّن Claude من مطالبة المستخدم بالتأكيد وإعادة المحاولة. |
| الإثراء | start_batch_enrichment | أثرِ ما يصل إلى 100 كيان بشكل غير متزامن — خط معالجة كامل لكل كيان مع دمج تلقائي. يُرجع job_id؛ وتصل النتائج إلى سجلاتك. |
| الإثراء | fetch_entities | اجلب مصفوفة JSON من الكيانات من خادم REST API خارجي على جانب الخادم (مصادقة bearer / api_key / basic) — يقترن بالإثراء بالدفعات. |
| الإثراء | retry_expertises | أعد تشغيل نطاقات الخبرة الفاشلة فقط من سجلٍ ما، مع دمج القيم المستردة مجددًا — دون دفع مجدد مقابل ما نجح بالفعل. |
| الإثراء | merge_records | ادمج سجلين أو أكثر من السجلات الموجودة في نتيجة مدموجة واحدة — بناءً على القواعد أو باستخدام نموذج تحكيم LLM. |
| المهام | get_job_status | استطلع أي مهمة غير متزامنة (دفعة، توليد عينة، تشغيل معيار مرجعي): عدّادات التقدّم، والملخصات النهائية، وأسئلة التوضيح المعلّقة. |
| المهام | cancel_job | ألغِ مهمة معلّقة أو قيد التشغيل أو موقوفة مؤقتًا. |
| المهام | answer_job_question | أجب عن أسئلة التوضيح لمهمة موقوفة مؤقتًا واستأنفها — الجزء التفاعلي من generate_sample. |
| المعايير المرجعية | list_benchmark_scenarios | اعرض سيناريوهات المعايير المرجعية المحفوظة لديك (اختبارات إثراء قابلة لإعادة الاستخدام). |
| المعايير المرجعية | get_benchmark_scenario | سيناريو واحد مع نتائجه المسجَّلة لكل نموذج (الجودة / التكلفة / السرعة). |
| المعايير المرجعية | create_benchmark_scenario | أنشئ سيناريو: مخطط + كيان ثابت + استراتيجية + حَكَم تسجيل. يتطلب دور المالك + خطة تتضمن المعايير المرجعية. |
| المعايير المرجعية | update_benchmark_scenario | حدّث تعريف اختبار السيناريو أو إعداد التسجيل الخاص به؛ تُوسم النتائج الموجودة بأنها قديمة. |
| المعايير المرجعية | set_benchmark_reference | احفظ المخرَج المرجعي الذهبي وضع علامة عليه بأنه مُتحقَّق منه — مطلوب قبل التشغيل. |
| المعايير المرجعية | delete_benchmark_scenario | احذف سيناريو ونتائجه. |
| المعايير المرجعية | run_benchmark | شغّل سيناريو على قائمة نماذج محددة، أو على كل نموذج نشط للمزوّدين المختارين، أو على جميع النماذج النشطة — تُسجَّل كل نتيجة تلقائيًا مقابل المرجع. |
| السجلات | list_records | تصفّح السجلات السابقة مع عوامل تصفية حسب النوع والنجاح والنموذج والمهمة، وبحث نصي حر. |
| السجلات | get_record | مخرجات منظّمة كاملة + أخطاء التحقق لسجلّ واحد. |
| السجلات | get_stats | إحصائيات مجمَّعة للمؤسسة: الإجماليات، ومعدل النجاح، والرموز، والتكلفة. |
| المرفقات | upload_attachment | رفع ملف base64 (filename، content_base64، media_type؟) وإرجاع معرّف المرفق الخاص به لاستخدامه في enrich_entity. |
| المرفقات | delete_attachment | حذف مرفق حسب المعرّف — خطوة تنظيف مفيدة بعد الإثراء. |
تتيح الموارد لـ Claude تصفّح البيانات دون استهلاك استدعاء أداة — إذ يتعامل معها عميل LLM كأنها ملفات. ويُعرض كلا نوعَي الموارد بصيغة Markdown لعرض مضمَّن منخفض التكلفة.
| قالب URI | الوصف |
|---|---|
| enricher://schemas/{schema_id} | مخطط محفوظ معروض بصيغة Markdown — ترويسة بيانات وصفية + GeneratedJsonSchema ككتلة JSON محاطة بأسوار. |
| enricher://records/{record_id} | سجل إثراء سابق معروض بصيغة Markdown — بيانات وصفية + مخرجات منظَّمة + أخطاء تحقق. |
عندما تطلب من enrich_entity استخدام نموذج تصنيف ولا تتطابق الكينونة مع نوع المخطط، تُعيد الأداة استجابة غير مخطئة مع تفاصيل مُهيكلة. يقرؤها Claude، ويُظهر لك سبب القرار، و(بعد تأكيدك) يعيد المحاولة باستخدام force_after_classification_warning=true — الذي يُسقط المُصنِّف عند إعادة المحاولة.
{
"success": false,
"error_code": "classification_warning",
"message": "Pre-flight classification rejected the entity. ...",
"classification": {
"status": "mismatch",
"reasoning": "Titan is a moon of Saturn, not a planet.",
"confidence": 0.97
},
"job_id": "..."
}يُلغي n8n وMake تلقائياً في هذه الحالة لأنهما لا يستطيعان سؤال المستخدم في منتصف سير العمل. أما MCP فيستطيع، وهذا الفرق الوحيد هو سبب وجود الموصّل.
يُشغِّل التفاعل نفسه تدفقًا ثانيًا: عندما يعمل generate_sample مع مستندات مصدرية، قد يتوقف مخطِّطه مؤقتًا لطرح أسئلة توضيحية بنيوية. ينقلها Claude إليك ويستأنف المهمة باستخدام answer_job_question — جولة تلو الأخرى، حتى يتم توليد العينة.
تُسقَط أخطاء الأدوات في قواميس منظّمة تحتوي على حقل error_code حتى يتمكّن Claude من مطابقة الأنماط بدلًا من تحليل النص الحر. تُطابَق طبقة HTTP بوضوح: 402 → خطأ في الحصة أو الرصيد، 422 → تحذير تصنيف، 504 → انتهاء المهلة، 502 → فشل LLM أعلى المصدر.
| error_code | متى |
|---|---|
| invalid_request | معرّف UUID غير صالح، أو وسائط متنافية (schema_id + target_schema)، أو فشل التحقق من صحة نص الطلب. |
| prompt_limit_reached | استُنفدت حصة الموجّهات اليومية / الأسبوعية / الشهرية (HTTP 402). يتضمّن المحتوى الفترة والحدّ والمستخدَم والمطلوب. |
| insufficient_credits | المؤسسة قد فعّلت الفوترة لكن رصيدها منخفض جدًا لبدء المهمة (HTTP 402). يتضمن المتن الرصيد ورابط الشراء. |
| model_limit_exceeded | تم طلب عدد نماذج أكبر مما تسمح به الخطة (HTTP 402). يردّد الحد الأقصى والعدد المطلوب. |
| language_limit_exceeded | تم طلب عدد لغات أكبر مما تسمح به الخطة (HTTP 402). |
| concurrent_job_limit_reached | عدد كبير جدًا من مهام الإثراء النشطة لهذه المؤسسة. انتظر أو قم بترقية الخطة. |
| classification_warning | ⚡ ليست خطأً: رفض المصنّف التمهيدي الكيان. تحمل الاستجابة سياق التصنيف كي يتمكن Claude من طلب التأكيد من المستخدم وإعادة المحاولة باستخدام force_after_classification_warning=true. |
| benchmarks_not_in_plan | تتطلب أدوات المعايير المرجعية دور المالك وخطة تتضمن معايير النماذج المرجعية (HTTP 403). |
| enrichment_timeout | تجاوزت المهمة timeout_seconds. نقترح تقليل عدد النماذج أو تقسيم الكيان. |
| schema_generation_timeout | تجاوز توليد المخطط timeout_seconds. |
| schema_generation_failed | خطأ في LLM المصدر أثناء توليد المخطط (HTTP 502). |
| cancelled | أُلغيت المهمة أثناء التشغيل (HTTP 499). |
| not_found | معرّف المخطط أو السجل غير موجود في مؤسستك. |
| http_error | معالج شامل لأخطاء HTTP التي لا تحتوي على نص تفاصيل مهيكل. |
get_stats الملخصات على جانب المحادثة؛ أما لوحات المعلومات الكاملة فتبقى في التطبيق.