MCP server for AI agents

Connect Claude, Cursor and other MCP clients to MobileValidate: tools, remote and local setup, agent keys and spend confirmation.

Last updated

View as MarkdownMCP server card

Status: the hosted MCP server at https://mcp.mobilevalidate.com/mcp is live for customers with an agent key or a test key. The local package @mobilevalidate/mcp runs the same tools over stdio.

The MobileValidate MCP server lets AI agents run checks on phone numbers and e-mail addresses through the Model Context Protocol. Agents can check registration on messaging apps, carrier and line type, spam reputation, and mailbox or account existence. It is a thin client of the public API with its own spend safeguards, and it accepts only agent keys and test keys.

Which tools does it offer?

ToolWhat it doesSpends credit
normalize_numbersFormats numbers as E.164 locally; flags ambiguous inputs and duplicatesno
estimate_costFree pre-flight for numbers and/or e-mails: valid, invalid, duplicate and cached counts plus maximum costno
lookup_numbersChecks up to 100 numbers (optionally with e-mails) against one or more real-time servicesyes
lookup_emailsChecks up to 100 e-mail addresses in real time (default check email)yes
check_spam_reputationSpam reputation for up to 100 US, CA or DE numbers: level, score, reasons, counts per levelyes
create_lookup_jobBulk job with up to 50,000 numbers and/or e-mails, for any active service including bulk-only onesyes
get_lookup_jobJob status plus a filtered, paginated page of resultsno
list_servicesServices the key can use: input type, real time or bulk only, attributes, countries, pricesno
get_accountBalance, reserved credit, today's usage, limitsno

Each tool declares a title, annotations (read-only, idempotent), an input schema and an output schema. It returns structured content plus a one-line summary. checks takes codes or aliases such as whatsapp, telegram, carrier or spam. Live network status (hlr) is coming soon and not offered yet.

How do I connect a remote client?

The hosted server speaks Streamable HTTP at https://mcp.mobilevalidate.com/mcp. Send your agent or test key as a bearer token. The key is passed on to the API for that request only and is never stored.

One-click install links for Cursor and VS Code are in the Copy page menu at the top of every docs page.

Shell
claude mcp add --transport http mobilevalidate https://mcp.mobilevalidate.com/mcp \
  --header "Authorization: Bearer $MOBILEVALIDATE_API_KEY"

.mcp.json / Cursor equivalent:

JSON
{
  "mcpServers": {
    "mobilevalidate": {
      "type": "http",
      "url": "https://mcp.mobilevalidate.com/mcp",
      "headers": { "Authorization": "Bearer ${MOBILEVALIDATE_API_KEY}" }
    }
  }
}

How do I run it locally (stdio)?

Run the @mobilevalidate/mcp package with npx:

Shell
claude mcp add mobilevalidate --env MOBILEVALIDATE_API_KEY=mv_test_... -- npx -y @mobilevalidate/mcp

For Claude Desktop (claude_desktop_config.json) or Cursor (~/.cursor/mcp.json), use:

JSON
{
  "mcpServers": {
    "mobilevalidate": {
      "command": "npx",
      "args": ["-y", "@mobilevalidate/mcp"],
      "env": { "MOBILEVALIDATE_API_KEY": "mv_agent_..." }
    }
  }
}

Then ask: "Check +447700900001, +447700900002 and +447700900003 on WhatsApp." With a test key, you get registered, not registered and unknown, at no cost.

How does spend confirmation work?

Before any tool that spends credit (lookup_numbers, lookup_emails, check_spam_reputation, create_lookup_job) runs, the server gets the free estimate. The real-time tools price it at your key's real-time prices, and create_lookup_job at bulk prices. Because the estimate is POST /v1/jobs/estimate, an agent key needs jobs:write for every spending tool, plus lookup:write for the three real-time tools. It refuses the call with confirmation_required if the maximum cost is above the threshold (default USD 1.00), or if a job has more than 100 numbers and e-mails. The message states the amount. The agent should ask the user, then call again with confirm_max_cost set to that amount. The confirmed amount is sent to the API as max_cost, so the request can never cost more.

This confirmation goes through the agent, so the server can't prove a human approved it. The hard limits are the agent key's daily spend cap and its scopes, which is why live keys (mv_live_…) are rejected. Other safeguards: tools have no webhook URL parameter, request metadata is never echoed into tool output, and the anti-enumeration rules (20 or more consecutive numbers, generated e-mail lists) apply exactly as in the API.

Frequently asked questions

Can I use my live key with the MCP server?

No. The MCP server accepts only agent keys (mv_agent_…, scoped and spend-capped) and test keys. Live keys are rejected so an agent can never spend without a cap.

Can an agent spend a lot of credit by mistake?

Calls above the confirmation threshold (default USD 1.00) or with more than 100 numbers are refused until the agent repeats them with the confirmed amount, and the API enforces that amount as max_cost. The agent key's daily spend cap is the hard limit.

Does the agent get names or profiles?

No. Tools return yes/no/unknown per service, carrier and line type, or spam-reputation attributes. They never return names, photos or profiles.