mcpbeat Sign in

MyOTP.App MCP Server

answering

MyOTP.App is answering right now. Last checked 10 min ago. 108 installs a week from npm. It exposes 10 tools. Last commit 27 Oct 2026.

Send and verify one-time passcodes over SMS, WhatsApp and Telegram.

Installs per day peak 58 · avg 9 · +108% w/w
a month agotoday
Uptime history 61 days of history · worst day 99%
61 days agonow
100.0%
Uptime 24h
91 of 91 checks
10
Tools
read from the server
182 ms
Response time
average over 24h
108
Installs / week
npm and PyPI

What changed 14

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 3 September 2026. No other catalogue keeps this.

13 Oct a tool changed the parameters it asks for generate_otp
13 Oct a tool changed version
21 Sep a tool description was rewritten check_otp_status
21 Sep a tool changed the parameters it asks for generate_otp
21 Sep a tool changed version
4 Sep a tool changed version2 times that day
3 Sep 3 tools appeared get_account_status, get_topup_quote, top_up_credits
3 Sep a tool description was rewritten2 times that day create_account
3 Sep a tool changed the parameters it asks for create_account
3 Sep a tool changed version
and 2 more, back to 3 September 2026

What the code does

We read the source, 5 d ago · tools taken from the live server · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Runs an external command cli/src/commands/topup.ts:77
    const child = spawn(inv.command, inv.args, { stdio: 'inherit' });

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add myotp --transport http https://mcp.myotp.app/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.myotp.app/mcp
~/.codex/config.toml
[mcp_servers.myotp]
url = "https://mcp.myotp.app/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "myotp": {
      "url": "https://mcp.myotp.app/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "myotp": {
      "type": "http",
      "url": "https://mcp.myotp.app/mcp"
    }
  }
}

Available tools 10

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

account
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_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 configured correctly.
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.
extend
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 (Business or Enterprise plan). Some destination countries don't allow extensions — the API will return 403 in that case. Cheaper and less spammy than calling `generate_otp` again.
generate
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 call deducts credits from the account balance; the per-message cost varies by destination country and channel and is returned in the `cost` field. Use this whenever an app needs to verify someone's phone — signup, login 2FA, password reset, transaction confirmation, etc.
otp
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 as `failed.<reason>` (on WhatsApp, `failed.Undeliverable` means the number cannot receive WhatsApp and `failed.Provider` means a retry is worth it). Useful when an end user reports they didn't receive the code — you can confirm whether MyOTP delivered it before deciding to resend. Does NOT verify a code; use `verify_otp` for that.
top
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 for the agent's own MPP client; if fetch is already wrapped by a credential-carrying MPP runtime, it returns the credited response directly.
topup
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 the configured API key.
usage
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 entitlement (Business or Enterprise plan). Use this to: audit recent activity, build internal dashboards, reconcile billing, or debug delivery issues across many recipients.
verify
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 pass either `phone_number` or `message_id` to identify which OTP you're verifying against. Call this after collecting the code from the user (login form, signup screen, etc.).

Endpoints

URLTransportStateLatencyChecked
https://mcp.myotp.app/mcp streamable-http answering 204 ms 10 min ago

Alternatives to MyOTP.App

same job, measured the same way
SendKuy
by sendkuy

Send WhatsApp, SMS and email, verify OTP codes and run campaigns with SendKuy.

231 installs/wk local only
JetAPI
by jetapi

Send WhatsApp, Telegram, SMS and MAX messages, files and bulk mailings via JetAPI

64 installs/wk local only
EnvoiSMS
by envoisms

Send SMS/WhatsApp and verify OTP codes in Morocco (+212) and worldwide. Direct carrier routing.

19 tools answering
A
Androidapi MCP
by tecniforgemaryam

Send SMS & WhatsApp, verify OTPs, manage contacts, and control Android devices via AndroidAPI.net.

38 installs/wk local only
WSENDER
by wsender

Manage WhatsApp, Telegram and MAX mailings: audiences, drafts, moderation and sending.

answering
Uxen
by rrrfirstchat

Your Telegram, WhatsApp, Instagram, mail and calendar in Claude or ChatGPT. Never sends messages.

answering
Twilio MCP Server
by mrfentmen

Send SMS, MMS, WhatsApp messages, make voice calls, and manage Twilio phone numbers.

382 installs/wk local only
Bird
by bird

Send and receive across email, SMS, WhatsApp, and voice. One API, one contract.

answering

MyOTP.App — questions

Answers built from our own checks of this server.

What can MyOTP.App do?
It exposes 10 tools, read directly from the server on our last check. Among them: check_otp_status, create_account, extend_otp, generate_otp, get_account_info, get_account_status and 4 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is MyOTP.App working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 182 ms. The bar chart above shows every period we have measured.
How do I connect MyOTP.App?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does MyOTP.App need an API key?
No. MyOTP.App completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 10 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is MyOTP.App?
It answers our handshake in 182 ms on average, which is faster than 75% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use MyOTP.App?
The npm package @myotp/mcp was installed 108 times in the last week. Week over week that is +108%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is MyOTP.App open source?
The code is open source: it is published under the MIT licence, written in TypeScript and 1 stars on GitHub. The licence covers the code in the repository, not the hosted service at mcp.myotp.app, which runs on its operator's own terms.