سجل التغييرات
كل تغيير في خادم MCP على /mcp - الأدوات، والمدخلات، والنتائج، والمفاتيح، والحدود - والأحدث أولًا. وتوضّح سياساته ما الذي يُعدّ تغييرًا كاسرًا.
أصبحت استجابة 401 من /mcp تحمل WWW-Authenticate: ApiKey realm="mcp" بدلًا من Bearer realm="mcp", error="invalid_token"، التي كانت تدفع بعض العملاء إلى البحث عن خادم OAuth. ولا تزال المفاتيح مقبولة عبر Authorization: Bearer أو X-API-Key.
تُعيد استدعاءات الأدوات الناجحة structuredContent بجانب نص JSON الذي لم يتغير، وينشر tools/list مخطط outputSchema لكل أداة موثّقة استجابتها في عقد OpenAPI. وتبقى الأخطاء نصًا عاديًا بـ isError.
كان tools/list يُعيد 15 أداة في كل صفحة مع nextCursor، فلم يرَ العملاء الذين يتجاهلون المؤشر الأدوات get_coin_markets وget_coin_technicals وget_liquidations_summary وcalculate_dca أبدًا. وأصبحت الأدوات الـ19 كلها تأتي في صفحة واحدة.
كانت get_exchange وget_exchange_trust_score تُعيدان خطأً داخليًا لكل منصة تداول منذ الإطلاق. وتستجيب كلتاهما الآن؛ ولم تتغير المدخلات ولا حقول النتائج.
منذ 6 سبتمبر، كانت الأداة المُوقَفة تُجيب بـ server_error (HTTP 500). وأصبحت تُعيد مجددًا endpoint_unavailable (HTTP 503): This endpoint is temporarily unavailable.
كان days مُعلَنًا بقيمة افتراضية وحد أدنى قدره 0، لكن القيمة 0 كانت تُرفض دائمًا. وأصبح الآن من 1 إلى 365 دون قيمة افتراضية؛ لا تُمرّره للحصول على القراءة الحالية. وأصبح وصف get_global_history يذكر شكل النقطة ({time, marketcap} أو {time, volume}).
جديد: /.well-known/mcp/server-card.json دون مصادقة، يحمل serverInfo وتعريفات الأدوات الكاملة، ويُخزَّن مؤقتًا لمدة ساعة، لأدلة الخوادم التي لا تستطيع فحص خادم محمي بمفتاح. ويمكن الآن قراءته هو و/.well-known/mcp.json من أصول مختلفة (cross-origin).
أصبح /mcp يقبل مفتاح MCP أيضًا على هيئة X-API-Key: YOUR_API_KEY، للعملاء والبوابات التي تحجز Authorization لتسجيل الدخول الخاص بها. وعند إرسال هذه الترويسة يكون المفتاح الوارد فيها هو الوحيد الذي يُتحقَّق منه، وتُقبل البادئة Bearer إن لُصقت معه.
كانت محاولات المصادقة الفاشلة محدودة بـ 30 محاولة في الدقيقة لكل عنوان IP، وبعدها يُرفض كل مفتاح خلف ذلك العنوان. أما الآن فيمكن لمفتاح واحد أن يفشل 30 مرة في الدقيقة من عنوان IP واحد، ولعنوان IP واحد أن يفشل 300 مرة، ولا يحجب حدُّ عنوان IP المفاتيحَ التي نجحت مصادقتها خلال آخر 15 دقيقة تقريبًا.
أصبحت get_fear_greed (القراءة الرئيسية وكل فاصل زمني) وget_global_market (fear_greed) تتضمنان index - المؤشر من 0 إلى 100 المعروض على Bitculator - بجانب score الخام، وتوجّه أوصاف الأدوات النموذجَ إلى الاستشهاد بـ index.
كانت get_coin تُعيد تقييمًا مخفَّفًا بالكامل قدره 0 للعملات التي ليس لها حد أقصى محدَّد للمعروض. وأصبحت الآن تعتمد على إجمالي المعروض بديلًا، وتكون القيمة null عندما لا يكون أيٌّ منهما معروفًا.
أصبحت get_top_movers ترتّب حسب التغيّر نفسه (بعد أن كان الترتيب عمليًا حسب القيمة السوقية)، وتستثني قائمة الخاسرين فيها العملات الثابتة عند 0.00. وتُعيد get_prices مع symbols عملة واحدة لكل رمز، وهي العملة النشطة الأعلى ترتيبًا، وتُبلغ get_global_market عن هيمنة BTC وETH بقيمة null بدلًا من 0 عندما لا تتوفر قيمة سوقية.
أصبحت تعليمات initialize تذكر أن القيم السوقية وأحجام التداول أرقام JSON (وكانت تقول إنها سلاسل عشرية)، ويذكر وصف sort في list_exchanges القيمة الافتراضية الفعلية -volume، وتنوّه get_exchange_trust_score إلى أن منصة التداول غير المصنَّفة تكون درجتها وتفصيلها null.
أصبح الخادم مُدرجًا في /apis.json و/.well-known/api-catalog، واكتسب /.well-known/mcp.json رابطي status وchangelog، ويُبلغ /status.json عن مكوّن mcp.
تغيير كاسر: لا يقبل /mcp إلا المفاتيح المُنشأة في وحدة تحكم MCP؛ وتحصل مفاتيح Data API ومفاتيح الأدوات المصغّرة على 401. ولـ MCP خطط Free (2,500 استدعاء أداة شهريًا) وStarter (50,000) وPro (250,000) خاصة به، مع 2 و5 و10 خانات للمفاتيح، وفوترة خاصة به وقيود خطط خاصة به لكل أداة، ويبدأ كل حساب على Free. وأصبحت أخطاء الحصة والخطة تذكر خطة MCP.
أصبح كل طلب JSON-RPC إلى /mcp - initialize وtools/list وping واستدعاءات الأدوات - يُحتسب ضمن حد الاندفاع للخطة البالغ 30 أو 60 أو 120 في الدقيقة، ويؤدي تجاوزه إلى HTTP 429. ولا تُحتسب ضمن الحصة الشهرية إلا استدعاءات الأدوات.
كانت أخطاء الخادم في الأدوات تتضمن رسالة الخطأ الداخلية. وأصبحت الآن تقول server_error (HTTP 500): Internal server error.
منذ الإطلاق وحتى هذا الإصلاح، كان كل استدعاء أداة في بيئة الإنتاج يُعيد server_error، لأن الخادم كان يرفض طلب البيانات الداخلي الخاص به باعتباره آتيًا من مضيف غير موثوق.
انطلق /mcp عبر Streamable HTTP (طلبات POST فقط) مع 19 أداة للقراءة فقط لـ Claude وCursor وVS Code وأي عميل MCP، من search_coins وget_coin إلى calculate_dca، تُعيد البيانات نفسها التي يُعيدها REST API. وكان يستخدم مفاتيح Data API وخططها وحصتها، ويُحتسب كل استدعاء أداة طلبًا واحدًا، وكان /.well-known/mcp.json يصفه.
يُعلَن هنا عن إزالة أي أداة أو مُدخل أو إعادة تسميته قبل ستة أشهر على الأقل - راجع سياسة إيقاف الدعم. وترتبط بطاقة الخادم على /.well-known/mcp.json بسجل التغييرات هذا.