استقبال رسائل SMS لوكلاء الذكاء الاصطناعي
يستطيع الوكيل شراء رقم وقراءة الرمز بلا تدخل بشري.
لا هوية تُقدَّم
الحساب عبارة استرداد يولّدها الوكيل ويحفظها بنفسه. لا شيء يُؤكَّد، ولا شيء يُتنازل عنه، ولا أحد ينبغي أن تكونه.
لا حاجة إلى بطاقة
الشحن بالعملات الرقمية. والوكيل الذي يملك محفظة يدفع بنفسه — بلا رقم بطاقة، ولا عنوان فوترة، ولا إنسان يوافق على الإنفاق.
لا صفحات تُقرأ
الكتالوج والأسعار والشراء والتسليم كلها استدعاءات أدوات. ولا شيء هنا يستلزم متصفحاً ولا لقطة شاشة.
كيف تربط خادم MCP؟
نقطة وصول واحدة، بصيغة JSON-RPC 2.0 على HTTP streamable. لا مفتاح API يُطلب ولا شيء يُثبَّت: فأدوات الكتالوج تعمل قبل وجود حساب أصلاً، والعبارة لا تلزم إلا لما ينفق المال منها.
https://otpdrop.com/mcp
Claude Code
claude mcp add --transport http otpdrop https://otpdrop.com/mcp
Cursor وWindsurf وVS Code ومعظم غيرها
العملاء الذين يديرون HTTP بأنفسهم يقبلون هذه الكتلة نفسها. ويسمّي Cursor وWindsurf المفتاح
mcpServers؛ أما VS Code فيسميه servers.
{
"mcpServers": {
"otpdrop": {
"type": "http",
"url": "https://otpdrop.com/mcp"
}
}
}
| العميل | موضع الإعداد |
|---|---|
| Claude Code | claude mcp add أو .mcp.json في المشروع |
| Claude Desktop | الإعدادات → الموصّلات → إضافة موصّل مخصص |
| Cursor | ~/.cursor/mcp.json أو .cursor/mcp.json لكل مشروع |
| VS Code | .vscode/mcp.json، ضمن servers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
عملاء MCP يتطورون بسرعة، وهذه المسارات معهم. فإن لم يطابق شيء ما تراه، فراجع توثيق العميل — أما من جهتنا فليس هناك إلا العنوان وطريقة النقل.
وماذا لو كان العميل لا يدعم إلا stdio؟
بعض العملاء لا يفتحون خادم MCP على HTTP مباشرة. مرّره محلياً:
{
"mcpServers": {
"otpdrop": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://otpdrop.com/mcp"]
}
}
}
وماذا لو لم يكن هناك عميل MCP أصلاً؟
الخادم نقطة وصول HTTP عادية: وأي لغة تستطيع مخاطبتها. وهكذا تبدو قائمة الأدوات:
curl -s -X POST https://otpdrop.com/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
وللأدوات التي تستلزم حساباً، أضف Authorization: Bearer <seed>. وإن لم تكن
مخاطبة JSON-RPC تغريك، فالعمليات نفسها موجودة نقاطَ REST عادية في
مرجع الواجهة.
ماذا يستطيع الوكيل أن يفعل في OTPDrop؟
| الأداة | الوظيفة | تستلزم العبارة |
|---|---|---|
list_services | جميع الخدمات مع رمزها وفئتها | لا |
list_countries | جميع الدول مع رمز الاتصال | لا |
list_catalog | الكتالوج كاملاً مع مصفوفة الأسعار | لا |
quote | سعر زوج من خدمة ودولة | لا |
agent_help | دليل استعمال هذا الخادم، في السياق مباشرة | لا |
create_account | إنشاء حساب واسترجاع عبارته | لا |
topup | الحصول على عنوان الشحن ومبلغه لعملة بعينها | نعم |
topup_status | التحقق من إضافة عملية الشحن إلى الرصيد | نعم |
buy_number | شراء رقم بالخصم من الرصيد | نعم |
get_order | تفاصيل طلب وحالته الراهنة | نعم |
get_sms | رمز التحقق فور وصوله | نعم |
وللعملاء الذين يفضّلون ذلك، الكتالوج معروض أيضاً عبر ثلاثة موارد للقراءة فقط:
catalog://services وcatalog://countries و
catalog://pairs.
كيف يبدو المسار كاملاً؟
خمسة استدعاءات من البداية إلى النهاية. وخطوة واحدة فقط تنتظر العالم الخارجي: تأكيد الشبكة لعملية الشحن.
- create_account — يعيد عبارة. احفظها: فهي طريق العودة الوحيد إلى الحساب، ولا يمكن إعادة ضبطها.
- topup — حدّد عملة ومبلغاً، فتتلقى عنواناً والمبلغ الدقيق الواجب إرساله ومهلة انتهاء. أرسل المال من محفظة الوكيل.
- topup_status — استعلم حتى تُضاف عملية الشحن إلى الرصيد.
- buy_number — حدّد خدمة ودولة. يُخصم الرصيد ويُسلَّم الرقم في الحال: بلا عنوان لكل عملية شراء، وبلا انتظار ثانٍ.
- get_sms — استعلم حتى وصول الرمز. وإن لم يصل قبل انتهاء مهلة الطلب، عاد ثمنه تلقائياً إلى الرصيد.
اشحن مرة واشترِ مراراً. فعملية شحن واحدة تغطي من الأرقام ما يسمح به الرصيد، حتى إن أول عملية اقتناء في الجلسة وحدها هي التي تنتظر تأكيداً.
الاكتشاف
كل ما يلزم للتكامل مقروء آلياً ويُقدَّم بلا مصادقة.
ماذا تقول لوكيلك؟
- العبارة لا تُستعاد. والوكيل الذي ولّدها ولم يحفظها قد رمى الرصيد معها.
- تُضاف عملية الشحن إلى الرصيد بعد تأكيد الشبكة، وهذا ليس فورياً — فاستعلم عبر
topup_statusبدل افتراض النجاح. - لا ترسل إلا العملة والشبكة المذكورتين في الفاتورة. فالتحويل على شبكة خاطئة لا يُسترجع.
- الرمز الذي يصل يُنهي الطلب ويُدفع ثمنه، ولو رفضته الخدمة المقصودة. راجع شروط الاسترداد.
- تصل المبالغ المستردة إلى رصيد OTPDrop، لا إلى محفظة.
أتكتب تكاملاً عادياً؟ توثيق واجهة REST يصف نقاط الوصول والمصادقة ورموز الأخطاء.