Server data from the Official MCP Registry
Read-only phone intelligence for AI voice agents — line type, risk, DNC, signed receipts.
Read-only phone intelligence for AI voice agents — line type, risk, DNC, signed receipts.
Remote endpoints: streamable-http: https://numbers.online/api/v1/mcp
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
Endpoint verified · Open access · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"online-numbers-numbers-online": {
"url": "https://numbers.online/api/v1/mcp"
}
}
}From the project's GitHub README.
A hosted, read-only Model Context Protocol server that gives an AI voice agent phone intelligence in a single call: who is this inbound caller, and is this outbound number one to think twice about dialing — before it burns agent minutes.
POST https://numbers.online/api/v1/mcp (Streamable HTTP, JSON-RPC 2.0)Authorization: Bearer <api_key> for tool calls; discovery is public.Positioning. Every output is an advisory, low-confidence supplementary signal. The calling agent keeps every routing and dialing decision and remains responsible for compliance. Nothing here asserts that a call is lawful, unlawful, "safe", or "spam".
Four read-only tools (all annotated readOnlyHint, idempotentHint). Discover them
live with tools/list (no auth required).
| Tool | Returns | Billed |
|---|---|---|
phone_lookup | Full bundle — validity, formatting, line type, range carrier, country, caller name (CNAM where available), STIR/SHAKEN verstat, a labeled spam signal, first-party DNC signal, signed receipt | bundled per-call |
caller_risk | Spam signal + verstat + first-party DNC signal + receipt (no name dip) | bundled per-call |
line_type | Deterministic only — validity, line type (mobile / fixed line / VoIP / …), carrier, country, formatting | free |
dnc_check | First-party do-not-contact signal + signed receipt | free |
The DNC signal is first-party, consent-first: it reflects a do-not-contact preference registered and verified by the number's own owner inside Numbers Online. It is not a copy, mirror, or replica of any government or licensed do-not-call registry. The values:
SUPPRESS — the owner registered a do-not-contact preference for this channel.NO_MATCH — no suppression preference on record (absence of suppression is not consent).UNKNOWN — the number couldn't be evaluated.Treat it as a supplementary input to your own TCPA process, never a verdict that a call is
lawful. (Reassigned-number status is inherently a carrier/FCC dataset and is intentionally
not offered as a first-party signal — there's no reassigned_check tool.)
Add a remote server pointing at the endpoint. Example mcp.json fragment:
{
"mcpServers": {
"numbers-online": {
"type": "streamable-http",
"url": "https://numbers.online/api/v1/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
A key needs the mcp use case. initialize, ping, and tools/list work without auth
(capability discovery); tools/call is fail-closed and requires the key.
Register Numbers Online as an MCP tool — the transport literal is shttp
(see integrations/mcp/vapi-mcp-tool.json).
A Vapi custom-function-tool alternative lives at
integrations/vapi/numbers-online-tool.json.
Point your agent's call_inbound webhook at the drop-in config in
integrations/retell/inbound-webhook.json.
It always returns HTTP 200 within Retell's budget (fail-open) so a slow lookup never
keeps the caller ringing.
Full walkthrough: docs/ai-voice-agents.md.
# discover tools (no auth)
curl -s https://numbers.online/api/v1/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# call a tool (needs an mcp-scoped key)
curl -s https://numbers.online/api/v1/mcp \
-H "Authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"phone_lookup","arguments":{"number":"+14155552671"}}}'
Runnable reference clients (zero-dependency) are in examples/ —
Node and Python.
Every billable answer can carry a receipt_id and an Ed25519 response_signature.
Fetch the receipt later — no API key required, the id is the capability:
GET https://numbers.online/api/v1/receipts/{id}
No raw phone number is stored — only number_hash = sha256(E.164). Verify with the
public key at GET https://numbers.online/api/v1/publickey. A receipt is verifiable
evidence that a status was checked at a point in time — not proof that dialing was
lawful. Treat a receipt id as sensitive (a phone number is a small keyspace, so the hash
is bindable to a candidate number).
Raw phone numbers are never logged or stored; they are hashed (sha256). The MCP path is
read-only and stateless. Privacy policy: https://numbers.online/privacy
The full bundle is metered as one bundled per-call dip (validation + line type + risk +
first-party DNC in a single call). line_type and dnc_check are free. See
https://numbers.online for current rates.
Developer: Evergrow · Product: Numbers Online · Contact: contact@numbers.online · License: MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.