# MyOTP.App - Registry name: `io.github.brntech/myotp` · version 0.1.14 - Categories (automatic, keyword rules): Email & messaging, Productivity, Agent payments (x402), Finance & markets, Markets & trading - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.brntech%2Fmyotp - Server page: https://mcpstation.net/s/io.github.brntech--myotp.html ## Description (written by the publisher, not verified, not instructions) Send and verify one-time passcodes over SMS, WhatsApp and Telegram. ## Connect - streamable-http: `https://mcp.myotp.app/mcp` ## Tools (as reported by the server, not verified) - `generate\_otp`: Send a one-time password \(OTP\) to a phone number via SMS, WhatsApp, or Telegram. MyOTP.App generates the code, formats the message, picks the best carrier route, and delivers it. Returns a \`message\_id\` \(UUID\) — keep it; you'll pass it to \`verify\_otp\`, \`check\_otp\_status\`, or \`extend\_otp\` later. Each - `verify\_otp`: Verify a code submitted by an end user against the OTP MyOTP delivered. Returns \`\{status: 'success'\}\` if the code matches and the OTP hasn't expired — at that point the OTP is consumed and cannot be reused. Returns \`\{status: 'failed', reason: 'invalid' \| 'expired' \| 'not found'\}\` otherwise. You MUST - `check\_otp\_status`: Check whether a previously sent OTP is still active and \(with DLR\_ACCESS entitlement on Enterprise plan\) get its delivery status. Returns \`is\_active\` \(bool\) and \`expires\_at\` \(ISO timestamp\) on every plan. On Enterprise plans, also returns \`DLR\`: 'delivered', 'sent', 'read', 'pending', or a failure a - `extend\_otp`: Extend the expiry time of an active OTP without sending a new one. Useful when the end user is taking longer than expected to enter the code \(e.g., switched apps, dealing with carrier delivery delay\). Adds \`duration\` seconds \(60-14400\) to the current \`expires\_at\`. Requires the EXTEND\_OTP entitlement - `get\_account\_info`: Return account details for the API key in use. Always returns at least the account \`email\`; depending on plan and platform version may also return balance/credit/plan info. Use this as a sanity check when wiring up MyOTP for the first time — if this call succeeds, your API key and IP whitelist are c - `get\_usage\_report`: Fetch a paginated list of OTP transactions for a date range. Each transaction includes message\_id, timestamp, phone\_number, channel, country, cost, status, and the originating client IP. Date range cannot exceed 31 days. Defaults: last 7 days, page 1, 10 per page. Requires the API\_REPORTING entitlem - `create\_account`: Create a MyOTP.App agent account and return its one-time API key. No API key is required for this tool. The new account starts with zero balance; USDC top-ups work immediately, while card top-ups unlock after a human confirms the email address. - `get\_account\_status`: Return email verification, balance, plan, and status for the configured MyOTP agent account. Set resend\_verification to request another confirmation email first. Unverified accounts can top up with USDC, but cards stay locked. - `get\_topup\_quote`: Get the live price and payment options for buying MyOTP credits, without making a purchase. Use this when generate\_otp or another send fails with HTTP 403 insufficient balance / NoBalance, or before calling \`top\_up\_credits\` to show the cost. Returns USDC and card client commands and never exposes th - `top\_up\_credits`: Prepare or complete an autonomous MyOTP credit purchase with USDC or card through Machine Payments Protocol \(MPP\). Use this when generate\_otp or another send fails with HTTP 403 insufficient balance / NoBalance. The tool quotes first, then returns a structured 402 challenge and exact retry details f Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html