صِل Claude أو Cursor أو VS Code أو أي عميل MCP بمحرك Qurak.
المساعد الذي يخمّن الحساب يخطئ بقدرٍ يكفي لأن يهم. موصولًا هنا، يسلّم الرياضيات إلى محرك حقيقي ويعيد إجابة محسوبة بدل إجابة تبدو معقولة — التفاضل والتكامل، والمعادلات التفاضلية، والجبر، والإحصاء، والمخططات.
يخبر الاتصال وكيلك الحقيقة عن نفسه قبل إنفاق أي حوسبة: check_support يجيب عمّا إذا كانت دالة موجودة، وget_capabilities يبلّغ عن الحدود السارية فعلًا، وplan_computation يحوّل هدفًا إلى طريقة عمل مع وصفات متحقَّق منها مرفقة. والوكيل يواصل استدعاء أداة تقول مسبقًا ما لا تستطيع فعله.
وهو مفتوح في كل الخطط، بما فيها المجانية، والاتصال كله عنوان URL واحد. ما تشتريه الخطة المدفوعة هو ميزانية الحوسبة والمعدّل — لا الوصول أبدًا.
| URL | وسيلة النقل | الاستخدام |
|---|---|---|
| https://qurak.com/mcp | Streamable HTTP | المفضَّل. استخدمه ما لم يعجز عميلك عنه. |
| https://qurak.com/mcp/sse | HTTP+SSE (2024-11-05) | مهمل، للعملاء الأقدم فقط. |
وسيلة النقل عديمة الحالة: لا تصدر معرّف جلسة للبروتوكول، لذا فإن GET و DELETE على /mcp تجيب بـ 405 عمدًا. وهذا منفصل عن session_id الاختياري الذي تقبله أدوات التقييم — انظر الأدوات — وهو معطى أداة تختاره أنت، لا شيء توزعه وسيلة النقل.
معظم العملاء يتولّون هذا عنك. اختر عميلك أدناه واتبع المسار الوحيد الذي يعرضه — لست بحاجة إلى كليهما.
| الطريقة | كيف يعمل | استخدمه عندما |
|---|---|---|
| OAuth | يفتح العميل متصفحك، فتسجّل الدخول إلى Qurak وتوافق على الطلب. لا يُنسخ أي اعتماد يدويًا. | عميلك لا يطلب سوى عنوان URL — ليس في Claude Desktop وclaude.ai مكان لوضع رمز. |
| رمز Bearer | تنشئ رمزًا وتضعه في ترويسة Authorization في إعدادات العميل. | عميلك يدعم الترويسات وتريد بيانات اعتماد ثابتة — مفيد في CI أو على جهاز مشترك. |
| النطاق | يمنح |
|---|---|
| qurak:evaluate | تشغيل التعبيرات وإنتاج المخططات على حسابك. ينفق ميزانية الحوسبة وحد المعدل في خطتك. |
| qurak:docs | قراءة مرجع الدوال. لا ينفق أي حوسبة، لذا فاتصال الوثائق فقط آمنٌ منحه بسخاء. |
خلف الكواليس هذا تدفق OAuth 2.1 قياسي مع PKCE، قابل للاكتشاف عبر /.well-known/oauth-protected-resource و /.well-known/oauth-authorization-server (ويُجاب عنه أيضًا تحت /.well-known/openid-configuration، وهو ما يجرّبه بعض العملاء أولًا). يمكن للعميل تعريف نفسه بثلاث طرق — وثيقة بيانات معرّف العميل، أو التسجيل الديناميكي، أو معرّف عميل وسرّ تسجّلهما أدناه — والعملاء الداعمون لأيٍّ منها سيجدونها بأنفسهم.
claude mcp add --transport http qurak https://qurak.com/mcp \
--header "Authorization: Bearer qk_..."<code>type</code> مطلوب. المدخلة التي فيها <code>url</code> بلا <code>type</code> تُقرأ كخادم stdio وتُتجاهل بصمت.
{
"mcpServers": {
"qurak": {
"type": "http",
"url": "https://qurak.com/mcp",
"headers": { "Authorization": "Bearer qk_..." }
}
}
}احذف علم <code>--header</code> لاستخدام OAuth بدلًا منه: يفتح Claude Code متصفحًا عند أول اتصال.
هذا المسار OAuth فقط بالضرورة — لا حقل فيه لرمز. الخطوات نفسها تنطبق على موصلات claude.ai.
يفضّل Cursor استخدام OAuth متى نشر الخادم بيانات الاكتشاف، وهذا الخادم ينشرها — لذا من المرجح تجاهل كتلة <code>headers</code> في إعداداته. توقّع مسار المتصفح ودعه يكتمل.
المفتاح هو <code>servers</code> لا <code>mcpServers</code>.
{
"servers": {
"qurak": {
"type": "http",
"url": "https://qurak.com/mcp",
"headers": { "Authorization": "Bearer ${input:qurak-token}" }
}
},
"inputs": [
{ "id": "qurak-token", "type": "promptString",
"description": "Qurak Bearer token", "password": true }
]
}استخدام <code>inputs</code> يبقي الرمز خارج الملف، فيكون الإعداد آمنًا للإيداع.
إن كان عميلك لا يتحدث إلا وسيلة النقل الأقدم HTTP+SSE، فوجّهه إلى <code>https://qurak.com/mcp/sse</code> بدلًا من ذلك.
https://qurak.com/mcp| الأداة | ما تفعله | النطاق |
|---|---|---|
| evaluate | تقييم تعبير Qurak (بصياغة متوافقة مع .wl). يعيد النتيجة منسّقة مع الوقت الذي استغرقته. اختياريًا session_id, format (Standard, TeX, JSON) و timeout_ms. | qurak:evaluate |
| plot | تشغيل تعبير رسم وإعادة المخطط صورة PNG. يقبل نفس session_id و timeout_ms. | qurak:evaluate |
| clear_session | التخلص من جلسة تقييم وكل ما عُرِّف فيها. | qurak:evaluate |
| search_docs | البحث في مرجع الدوال بالاسم أو الوصف، وفي وصفات المهام إلى جانبه. اختياريًا kind (function, task, any)؛ وكل نتيجة تقول أيّهما هي. | qurak:docs |
| get_task | وصفة مهمة واحدة كاملة: خطواتها بالترتيب، والمخرج الذي أنتجته كل خطوة عند التحقق منها على هذا المحرك. تُشغَّل الخطوات تباعًا في جلسة واحدة. | qurak:docs |
| get_symbol | كل ما يُعرف عن رمز واحد: التوفر والصيغ والخيارات والأمثلة. | qurak:docs |
| check_support | تحقّق من توفر دوال بعينها قبل استخدامها. | qurak:docs |
| plan_computation | يؤسس الهدف قبل الحساب: أحكام دعم لكل دالة في مسودة التعبير، وأقرب الوصفات المتحقَّق منها، وتوصية توجيه بأرقام ميزانية هذا الاتصال نفسها. لا ينفق أي حوسبة. | qurak:docs |
| evaluate_async | يرسل تعبيرًا كمهمة خلفية بميزانية تُقاس بالدقائق وتتبع الخطة، للعمل الذي لا تتسع له الميزانية التفاعلية. يعيد معرّف مهمة فورًا؛ والمهام مخصص يومي. | qurak:evaluate |
| get_job list_jobs cancel_job | حالة مهمة، ونتيجتها الكاملة متى انتهت (مرّر wait_ms فيطيل استدعاء واحد الانتظار بدل عشرات الاستدعاءات المتلاحقة)؛ والمهام الأخيرة على الحساب؛ والإلغاء. الاستعلام مجاني. | qurak:evaluate |
| simulate_circuit | يحاكي دارة كمومية - متجه حالة مثالي ومجموعة بوابات قياسية - ويعيد مدرّج قياساتها. تُشغَّل المحاكاة كمهمة خلفية، بسقف كيوبتات يتبع الخطة. | qurak:evaluate |
| save_guide get_guide list_guides delete_guide | ملاحظات دائمة على الحساب: احفظ تعريفات نموذج عمل وافتراضاته تحت اسم، واقرأها لاحقًا في محادثة أخرى. القراءة تحتاج إلى نطاق docs؛ والكتابة إلى evaluate. | qurak:docs qurak:evaluate |
| get_capabilities | الحدود السارية لهذا الاتصال، أرقامًا: سقف ميزانية الحوسبة، والمخصص في الدقيقة وما تبقى منه، وأكبر مخطط يُخزَّن، والنطاقات الممنوحة، وحدود الجلسات. بلا معطيات. | أي |
| WolframLanguageEvaluator | اسم بديل قديم لـ evaluate، أُبقي للعملاء الذين يتوقعون اسم أداة AgentTools. المعطيات نفسها والسلوك نفسه. | qurak:evaluate |
evaluate و plot عديمة الحالة ما لم تمرّر session_id. معها تنتقل التعريفات — a = 10 في استدعاء، ثم a + 5 في التالي بالمعرّف نفسه، يعطي 15. الجلسات خاصة بحسابك، فحسابان يستخدمان المعرّف نفسه لا يريان متغيرات بعضهما أبدًا. تُسقَط بعد 30 دقيقة خمول، أو عندما تنتهي مهلة تقييم فيها (لا يمكن مقاطعة المحرك، فتذهب الجلسة معه)، أو عندما تستدعي clear_session.
ميزانية الحوسبة وحد المعدل يتبعان خطتك — انظر الخطط، أو استدعِ get_capabilities من الاتصال نفسه للأرقام السارية. تجاوز أيٍّ منهما يعود كنتيجة أداة فيها isError مضبوطًا، لا كخطأ نقل، ليتمكن وكيلك من قراءة الرسالة والتكيّف. وينطبق الأمر نفسه على خطأ الصياغة والمهلة والفشل داخل المحرك: كلها إجابات، ويبقى الاتصال مفتوحًا.
check_support يخبرك بما هو متاح دون إنفاق تقييم. timeout_ms يتيح للاستدعاء طلب ميزانية أقصر مما تسمح به الخطة — مفيد للفشل السريع في تعبير تتوقعه رخيصًا. وهو مقيّد بميزانية الخطة نفسها، فلا يشتري وقتًا أكثر مما لديك. دوال الملفات والعمليات والشبكة محظورة.