NumRadar MCP

Check whether phone numbers are registered on WhatsApp from your AI agent. Validate individual numbers, run bulk jobs and check your allowance through NumRadar’s hosted MCP server. Uses the same account and API key as the REST API. Paid plans start at $9 USD/month for 5,000 validations. No WhatsApp account connection required; checks do not send messages.

Gehosteter MCP-Server

npx add-mcp 'https://numradar.app/mcp'

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

@numradar/mcp

Check whether phone numbers are registered on WhatsApp, from your AI agent.

numradar answers one question well: is this number on WhatsApp? This is its Model Context Protocol server, so an agent can ask that question directly — validating a list, auditing contacts before a campaign, or checking a balance before spending it.

npx @numradar/mcp --token nr_live_YOUR_KEY

Create a key at numradar.app/app/keys.


Most people should not install anything

numradar runs a hosted MCP server. No package, no local process, no version to go stale on anyone's laptop:

https://numradar.app/mcp

Point your client at that URL with an Authorization: Bearer nr_live_... header and you are done.

{
  "mcpServers": {
    "numradar": {
      "type": "http",
      "url": "https://numradar.app/mcp",
      "headers": {
        "Authorization": "Bearer nr_live_xxx"
      }
    }
  }
}

The npm package exists for one real case: clients whose config file accepts a command to spawn but not a URL. claude_desktop_config.json is the common one. If you are editing a file like that, you need the package:

{
  "mcpServers": {
    "numradar": {
      "command": "npx",
      "args": ["-y", "@numradar/mcp", "--token", "nr_live_xxx"]
    }
  }
}

Configuration for 15 verified clients — Claude Code, Cursor, Windsurf, Zed, VS Code, Cline and the rest — is at numradar.app/mcp-server.

Tools

ToolWhat it doesCost
validate_numberOne number. Registered or not, business account, line type, country.1 credit
bulk_validateUp to 10,000 numbers. Returns a job id immediately.1 per definitive result
get_job_statusProgress counters, optionally per-number results.Free
list_jobsRecent bulk jobs on the account.Free
get_balanceCredits remaining.Free

Prompts

Clients that support MCP prompts surface these as slash commands.

PromptArgumentsWhat it does
/check_numbersnumbersValidate a list and summarise which are reachable on WhatsApp.
/clean_contact_listnumbers, purposeAudit a list before a campaign, and report what to fix.
/check_before_spendingcountEstimate the cost of a run and check the balance covers it.

Billing, and why it should change how an agent uses this

One credit per definitive answer — registered or not registered. Beyond that:

  • Invalid and unparseable numbers cost nothing. Send them. An agent that pre-filters numbers it is unsure about drops real contacts to save credits it was never going to spend.
  • An inconclusive upstream result costs nothing.
  • Credits never expire.

Numbers should be E.164 (+14155550100). Past a handful, prefer bulk_validate over a loop of validate_number: it is one job to poll rather than N round trips.

Options

--token <key>Your API key. Also read from NUMRADAR_API_KEY; the flag wins if both are set.
--base <url>API origin. Defaults to https://numradar.app.
--versionPrint the version and exit.
--helpPrint usage and exit.

Security

The API key is a bearer credential for your account. --token puts it in your shell history and in whatever config file spawns the process — prefer NUMRADAR_API_KEY from a secret store where your client supports it. Keys are revocable from the dashboard; revoke immediately if one is exposed.

Every tool call is authenticated, rate-limited and billed through numradar's ordinary public REST API. The MCP server does not embed the checker and has no separate billing path, so an agent calling a tool is treated exactly like a backend calling curl.

About this repository

This is the home of the npm package — its issue tracker and documentation. The server's source lives in a private monorepo and is not published here.

Found a bug, or a client whose configuration does not work? Open an issue.

Licence

MIT