للمطوّرين
كل ما نقيسه
يمكن قراءته.
المفتاح نفسه يفتح واجهة REST ونقطة MCP معًا؛ وكلتاهما للقراءة فقط وتأتيان مع باقة Studio. بياناتك ليست محبوسة في شاشتنا - فهي تصل إلى نصك البرمجي أو لوحتك أو مساعدك بالصورة نفسها.
انقلها إلى لوحتك أنت
اسحب سجل الترتيب إلى لوحة داخلية أو جدول أو تقرير أسبوعي. البيانات بياناتك، وليست ملزَمة بالبقاء على شاشتنا.
فحص قبل الإصدار
قبل إرسال البيانات الوصفية الجديدة، دع نصك يقرأ النطاق الحدّي: في أي مركز أنت على الكلمة التي أزلتها للتو من العنوان الفرعي، وهل يمكن التضحية بها فعلًا؟
اسأل مساعدك
مع توصيل نقطة MCP يأتي جواب سؤال «أي كلماتي في النطاق الحدّي وأيها الأكثر شيوعًا؟» دون لقطة شاشة واحدة.
ابدأ بسطر واحد
ثلاثة مداخل ومفتاح واحد. اختر ما ينطبق عليك: مساعد يتحدث MCP، أو طرفية، أو نص برمجي.
claude mcp add --transport http rankcusp \
https://rankcusp.com/api/mcp \
--header "Authorization: Bearer rc_live_…" \
--header "Accept-Language: tr"هذا كل الإعداد. والترويسة الثانية هي ما يجعل الأحكام تعود بلغتك؛ فإن حذفتها جاءت بالإنجليزية. اسأل «أي كلماتي في النطاق الحدّي؟» وسيستدعي المساعد الأدوات أدناه من تلقاء نفسه.
المفتاح
أنشئه من شاشة الحساب. يُعرض المفتاح مرة واحدة فقط - فنحن لا نحفظ سوى بصمته، ولذلك لا يمكن استرجاعه إن ضاع؛ تلغيه وتأخذ غيره.
ما يستطيع المساعد فعله
تسع أدوات. ثمانٍ منها تقرأ فقط؛ والأخيرة تضيف كلمات، وتعلن ذلك للعميل قبل أن تُستدعى. يصل إليها المساعد فور اتصاله، وهي نفسها ما تستدعيه الأداة في الخلفية.
list_apps- تطبيقات الحساب ومنافسوها. ومن هنا يأتي
appIdالذي تطلبه بقية الأدوات. cusp_actions- النطاق 11-30 مرتبًا حسب الشيوع: القائمة القصيرة للكلمات التي يستحق إنفاق الأحرف عليها.
get_keyword- كلمة واحدة - الترتيب والشيوع والصعوبة - مع الحكم مكتوبًا بلغتك: هل تستحق الاستهداف، وعلى أي أساس.
ranking_keywords- الكلمات التي يحتلّ التطبيق ترتيبًا فيها فعلًا، من السجل المشترك لكل بحث أجراه هذا المنتج. وجّهها إلى منافس لتقرأ كلماته: لا تنشر آبل نقطة لهذا، فالجواب واسع بقدر ما رُصد فقط.
keyword_competitors- من غيرك يحتل ترتيبًا في هذه العبارة، أعمق من العشرة التي تعرضها الصفحة الأولى. التطبيق في المركز 40 حيث تقف أنت في 60 هو الجدير بالدراسة.
audit_metadata- يقرأ مسودة العنوان والعنوان الفرعي وحقل الكلمات قبل النشر، ويقول ما الذي يتكرر وما الذي يضيع وكم حرفًا تسترجع.
country_priorities- أي متجر يستحق الساعة القادمة: عدد الكلمات الحدّية في كل بلد، وأين يكون المنافسون أضعف.
list_keywords- كل الكلمات المتابَعة في بلد واحد، مع ترتيبها الحالي والسابق.
add_keywords- الوحيدة التي تكتب. تضيف كلمات إلى قائمة متابعة تطبيق في متجر واحد، من قائمة أو من سطر ملصوق. تصل بلا تقييم - فالتقييم يكلّف طلبات إلى آبل وينتظر دور المجمّع - ولذلك فالشيوع الفارغ هنا ليس صفرًا.
أداة سطر الأوامر
أمر `curl` واحد ومفتاح. تطبع جداول مصمّمة للقراءة في الطرفية - والقيمة غير المقيسة تبقى شَرطة هناك أيضًا، فلا يُختلق صفر في أي موضع.
$ rankcusp cusp 1544… --country us
KEYWORD RANK Δ POP DIFF CUSP
─────────────── ──── ── ─── ──── ────
habit tracker 14 +5 32 41 •
streak tracking 23 - - 38 • rankcusp- يفتح الجلسة: بماذا أنت متصل، وما الذي يمكنك سؤاله، وسطر أوامر.
rankcusp apps- تطبيقات الحساب ومنافسوها.
rankcusp keywords <appId> --country <cc>- كل الكلمات المتابَعة في متجر واحد.
rankcusp cusp <appId> --country <cc>- النطاق الحدّي لتطبيق واحد، مرتبًا حسب الشيوع.
rankcusp keyword <appId> <phrase> --country <cc>- كلمة واحدة مع حكمها.
rankcusp audit --country <cc> --title … --keywords …- يفحص مسودة البيانات الوصفية قبل نشرها.
rankcusp countries <appId>- أي متجر تعمل عليه تاليًا.
rankcusp tools- يسرد الأدوات - هكذا يهتدي المساعد إلى طريقه.
النقاط
- GET
/api/v1/apps - تطبيقات الحساب ومنافسوه. ومن هنا يأتي
appIdالذي تطلبه بقية النداءات. - GET
/api/v1/keywords?app=…&country=… - الكلمات المتابَعة: الترتيب، والترتيب السابق، والشيوع، والصعوبة، وهل هي في النطاق الحدّي.
- GET
/api/v1/keywords?app=…&country=…&cusp=1 - النطاق 11-30 فقط - أكثر الكلمات عائدًا على تعديل واحد في البيانات الوصفية.
- GET
/api/v1/keywords?app=…&country=…&keyword=… - كلمة واحدة: صفحتها الأولى والحكم - هل تُستهدف، وبأي مبرّر.
- POST
/api/mcp - نقطة MCP (JSON-RPC 2.0). ومنها تمر الأدوات التسع أعلاه.
كيف يبدو الرد؟
المثال أدناه يبيّن شكل نداء يطلب النطاق الحدّي. انظر إلى السطر الثاني: previousRank وpopularity قيمتهما null. أي أن الكلمة قيست لأول مرة ولم يتيسّر بعد قراءة شيوعها - لا أنه صفر.
{
"total": 2,
"maxPageSize": 200,
"keywords": [
{
"keyword": "habit tracker",
"country": "us",
"rank": 14,
"previousRank": 19,
"delta": 5,
"popularity": 32,
"difficulty": 41,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:09.114Z"
},
{
"keyword": "streak tracking",
"country": "us",
"rank": 23,
"previousRank": null,
"delta": null,
"popularity": null,
"difficulty": 38,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:11.902Z"
}
]
}ما ينبغي أن تعرفه
- القيمة غير المقيسة تعود `null` ولا تعود صفرًا أبدًا.
rank: nullتعني «خارج أول 200»، وpopularity: nullتعني «لم يُقَس بعد». والعميل الذي يستبدلها بالأصفار سينتهي به الأمر إلى حساب متوسطها. - تعود الأحكام بلغتك أنت. تقرأ نقطة MCP لغة العميل، وتأخذ الأداة
RANKCUSP_LANG=ar. أما الأرقام فهي نفسها في كل اللغات. - 120 طلبًا في الدقيقة. وإذا تجاوزتها فستحصل على
429وretry-after. - 200 سطر في الصفحة على الأكثر؛ تقدّم باستخدام
offset. - أداة واحدة فقط تكتب. تضيف
add_keywordsإلى قائمة المتابعة وتعلن عن نفسها ككاتبة، فيستطيع العميل أن يسأل قبل استدعائها. وكل ما عداها، وكل مسارات REST، تقرأ فقط. -
countryمطلوب في كل نداء: العبارة نفسها في متجرين بحثان مختلفان، وبالتالي سطران مختلفان. - المفتاح يمثّل حسابًا لا شخصًا. وتوليد مفاتيح منفصلة بدل مشاركة واحد يتيح إلغاء أحدها دون تعطيل الآخر.