استقبال رسائل 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 Codeclaude 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.

كيف يبدو المسار كاملاً؟

خمسة استدعاءات من البداية إلى النهاية. وخطوة واحدة فقط تنتظر العالم الخارجي: تأكيد الشبكة لعملية الشحن.

  1. create_account — يعيد عبارة. احفظها: فهي طريق العودة الوحيد إلى الحساب، ولا يمكن إعادة ضبطها.
  2. topup — حدّد عملة ومبلغاً، فتتلقى عنواناً والمبلغ الدقيق الواجب إرساله ومهلة انتهاء. أرسل المال من محفظة الوكيل.
  3. topup_status — استعلم حتى تُضاف عملية الشحن إلى الرصيد.
  4. buy_number — حدّد خدمة ودولة. يُخصم الرصيد ويُسلَّم الرقم في الحال: بلا عنوان لكل عملية شراء، وبلا انتظار ثانٍ.
  5. get_sms — استعلم حتى وصول الرمز. وإن لم يصل قبل انتهاء مهلة الطلب، عاد ثمنه تلقائياً إلى الرصيد.

اشحن مرة واشترِ مراراً. فعملية شحن واحدة تغطي من الأرقام ما يسمح به الرصيد، حتى إن أول عملية اقتناء في الجلسة وحدها هي التي تنتظر تأكيداً.

ماذا تقول لوكيلك؟

  • العبارة لا تُستعاد. والوكيل الذي ولّدها ولم يحفظها قد رمى الرصيد معها.
  • تُضاف عملية الشحن إلى الرصيد بعد تأكيد الشبكة، وهذا ليس فورياً — فاستعلم عبر topup_status بدل افتراض النجاح.
  • لا ترسل إلا العملة والشبكة المذكورتين في الفاتورة. فالتحويل على شبكة خاطئة لا يُسترجع.
  • الرمز الذي يصل يُنهي الطلب ويُدفع ثمنه، ولو رفضته الخدمة المقصودة. راجع شروط الاسترداد.
  • تصل المبالغ المستردة إلى رصيد OTPDrop، لا إلى محفظة.

أتكتب تكاملاً عادياً؟ توثيق واجهة REST يصف نقاط الوصول والمصادقة ورموز الأخطاء.