خادم MCP
خادم MCP الرسمي لـ CrispHive. وجّه Claude أو ChatGPT أو Cursor أو أي عميل MCP نحو CrispHive ليتمكّن من إدارة العملاء، وتصفّح كتالوج خدماتك، والتحقق من توفّر الجدولة الفعلي، وحجز الأعمال لنشاط تجاري ميداني الخدمة — كل نقطة نهاية REST في واجهة Developer API، مكشوفة كأداة.
https://api.crisphive.com/mcpالمتطلبات
أي عميل MCP يتحدّث مع الخوادم البعيدة عبر Streamable HTTP ويستطيع إرسال ترويسة مخصّصة — claude.ai وClaude Desktop وClaude Code وChatGPT وGemini CLI وCursor وVS Code وWindsurf وCline وZed وLM Studio وغيرها. النقل عديم الحالة (استجابات JSON صِرفة — لا SSE ولا جلسات) والخادم يكشف الأدوات فقط.
التثبيت
اختر عميلك أدناه لترى بالضبط كيفية ربطه:
Run one command. Omit the header to authorize in your browser (OAuth), or pass an API key to skip the browser step:
# OAuth — you'll be prompted to authorize in the browser claude mcp add --transport http crisphive https://api.crisphive.com/mcp # …or pass an API key to skip the browser step claude mcp add --transport http crisphive https://api.crisphive.com/mcp \ --header "Authorization: Bearer chsk_test_YOUR_KEY"
المصادقة
تُصادَق الطلبات بمفتاح API سرّي يُرسَل كرمز حامل (bearer token) — المفتاح نفسه المستخدم في واجهة REST /v1 API. أنشئ المفاتيح من لوحة تحكم نشاطك التجاري في CrispHive. تحدّد بادئة المفتاح البيانات التي يعمل عليها الوكيل:
chsk_live_…→ البيانات الحيّة (الإنتاج).chsk_test_…→ بيانات بيئة الاختبار (المعزولة). الوكيل الذي يحمل مفتاح اختبار لا يمكنه إطلاقًا المساس إلا ببيانات بيئة الاختبار — وهي الطريقة المُوصى بها لتركه يجرّب.
أبقِ المفتاح على الخادم وحمّله من البيئة — لا تُودِعه أبدًا ولا تشحن مفتاح chsk_ في تطبيق يعمل على جانب العميل.
OAuth 2.1 (بلا مفتاح API)
هل تبني موصّل claude.ai / ChatGPT — أو أي منتج يأتي فيه مستخدموك بنشاطهم التجاري الخاص في CrispHive؟ نقطة النهاية /mcp هي أيضًا خادم تفويض OAuth 2.1 كامل: يفوّض مالك النشاط التجاري وكيلك عبر شاشة موافقة، ولا يُنسخ أي مفتاح على الإطلاق. يشغّل العميل المتوافق مع MCP التدفق بأكمله تلقائيًا (لا تكتب عادةً أي كود OAuth)، ويُطلَق بواسطة رمز 401 يحمل WWW-Authenticate: Bearer resource_metadata="…":
| الخطوة | الطلب |
|---|---|
| 1. اكتشاف المورد | GET /.well-known/oauth-protected-resource (RFC 9728) → عنوان URL لخادم التفويض |
| 2. اكتشاف الـ AS | GET /.well-known/oauth-authorization-server (RFC 8414) → نقاط النهاية؛ PKCE S256 مطلوب؛ المنح authorization_code + refresh_token |
| 3. التسجيل | POST /oauth/register (RFC 7591 التسجيل الديناميكي للعميل) → client_id (عميل عام، بلا سر — إذ إن PKCE هو الإثبات) |
| 4. التفويض | GET /oauth/authorize?… — يسجّل مالك النشاط التجاري الدخول إلى CrispHive ويوافق |
| 5. التبادل | POST /oauth/token (grant_type=authorization_code وcode وcode_verifier) → { access_token, refresh_token, expires_in } |
| 6. التجديد | POST /oauth/token (grant_type=refresh_token) → زوج رموز مُدوَّر (رمز التجديد القديم يُستخدم مرة واحدة فقط) |
من هناك، استدعِ /mcp مع Authorization: Bearer <access_token> — بشكل مطابق لمسار مفتاح API. الرمز مرتبط بنشاط المالك الموافِق ومنطقته وبيئته، فلا يستطيع الوكيل أبدًا الوصول إلى مستأجر آخر أو التبديل بين live↔sandbox. اطلب scope أضيق (رموز أذونات مفصولة بمسافات، مثل customers_view job_requests_view) لتقييد الوكيل؛ واحذفه للوصول الكامل إلى النشاط التجاري. تعيش رموز الوصول نحو ساعة واحدة — استخدم رمز التجديد لتبقى متصلًا.
الأدوات
هناك 22 أداة، واحدة لكل عملية في واجهة /v1 API العامة — بالأسماء نفسها لدوال SDK (listCustomers وcreateJobRequest و…)، مولَّدة من مواصفة OpenAPI نفسها بحيث لا يتباعد REST وMCP أبدًا. تُسطَّح معاملات المسار/الاستعلام وحقول متن الطلب في كائن وسيطات واحد لكل أداة.
| المجموعة | الأدوات |
|---|---|
| العملاء مزامنة CRM، وعمليات CRUD كاملة | listCustomers · createCustomer · getCustomer · updateCustomer · deleteCustomer |
| الحجوزات الإنشاء والتتبّع | createJobRequest · listJobRequests · getJobRequest · getJobRequestTimeline · listJobRequestBookingWindows · listJobRequestChanges |
| الكتالوج للقراءة فقط | listJobTypes · getJobType · listSkills · listSkillCategories · listSkillsByCategory · listServiceAreas · getServiceArea |
| الفريق والأسطول للقراءة فقط | listTechnicians · getTechnician · listVehicles · getVehicle |
- تُعيد كل أداة غلاف REST الخام —
{ error_code, message, data }— كنص؛ يفكّ الوكلاءdataعند النجاح ويقرؤونerror_codeعند الفشل. - المفاتيح المقيّدة تنطبق دون تغيير: المفتاح المحصور في
customers_viewيتلقّى403من أدوات الكتابة. - تقبل أدوات الإنشاء (
createCustomerوcreateJobRequest) وسيطًا اختياريًا باسمidempotency_keyيُمرَّر كترويسةIdempotency-Key— مرّر القيمة نفسها عند إعادة المحاولة فلا تُنشئ إعادة المحاولة نسخة مكرّرة أبدًا. - مُدخلات الترويسات وسيطات أيضًا: مثلًا تأخذ
listJobRequestBookingWindowsالمعاملx_timezone(منطقة زمنية بمعيار IANA، تُرسَل كترويسةX-Timezone). - تعلن كل أداة عن
outputSchemaوتُعيدstructuredContent(الغلاف المُحلَّل) إلى جانب النص، فيتمكّن العملاء ذوو الأنواع المحدّدة من تخطّي إعادة التحليل. - تُضبَط تلميحات السلوك لكل أداة — عمليات القراءة تحمل
readOnlyHintوعمليات الحذف تحملdestructiveHint، فيتمكّن عملاء مثل Claude من السؤال قبل تنفيذ الإجراءات المدمِّرة.
يبدو تدفّق الوكيل النموذجي كالتالي:
listSkills / listJobTypes → discover reference IDs
createCustomer → { customer_id }
listJobRequestBookingWindows → offer only the returned windows
createJobRequest → booking created
getJobRequest / listJobRequestChanges → track statusتقسيم الصفحات
تقبل أدوات السرد page / limit وتُعيد كائن meta (per_page وcurrent_page وtotal_pages)، فيتمكّن الوكيل من اجتياز مجموعات النتائج الكبيرة صفحةً تلو الأخرى.
حدود المعدّل
الطلبات محدودة المعدّل لكل مفتاح، ومشتركة مع REST: 240 في الدقيقة. عند غلاف 429، تراجَع وأعِد المحاولة.
الأخطاء
تُعيد كل أداة غلاف استجابة CrispHive (كنص وكـ structuredContent): تكون قيمة error_code هي 0 عند النجاح، أو سلسلة ثابتة عند الفشل (CUSTOMER_NOT_FOUND وAPI_KEY_INVALID و…). طابِق على الرمز، لا على نص الرسالة أبدًا. المفتاح غير الصالح أو المُبطَل يُعيد HTTP 401 (API_KEY_INVALID) — أصلِح الترويسة وأعِد الاتصال.
ملاحظات البروتوكول
- أرسِل عبر POST رسالة JSON-RPC 2.0 واحدة (أو دفعة من 20 كحدٍّ أقصى) لكل طلب؛ الاستجابات من نوع
application/json، والإشعارات تُؤكَّد بـ202. - الخادم عديم الحالة — لا يُصدَر معرّف جلسة ولا يُشترط؛ و
GET /mcpيُعيد405(لا يوجد بث دفعٍ من الخادم). - يُتحقَّق من وسيطات المسار من نوع UUID قبل الإرسال — المعرّف الذي ليس UUID يُعيد خطأ أداة ضمن النطاق، لا عملية مختلفة أبدًا.
- مراجعات البروتوكول المقبولة:
2025-06-18و2025-03-26و2024-11-05.
التوثيق
- الأدلة — ابدأ من هنا للتعرّف على المفاهيم وتدفقات الحجز.
- مرجع API — كل نقطة نهاية ووسيط ومخطط.
- للذكاء الاصطناعي — مواصفة OpenAPI إضافة إلى موجّه تهيئة جاهز للّصق للمساعد.
openapi.json— المواصفة القابلة للقراءة آليًا التي تُولَّد منها الأدوات.