Numbers Online — Phone Intelligence
RemoteAbout Numbers Online — Phone Intelligence
Numbers Online is a hosted, read-only MCP server for voice agents that need phone-number intelligence before handling calls. Its four tools return advisory signals, including line type, caller information, spam indicators, and a first-party do-not-contact preference.
Key features
- 01Phone validity and formatting lookup
- 02Line type and carrier details
- 03Caller name and risk signals
- 04First-party DNC preference check
- 05Signed, verifiable lookup receipts
Use cases
- 01Check an inbound caller before routing
- 02Review a number before outbound dialing
- 03Check line type or DNC preference
- 04Keep evidence of lookup time
MCP support
It provides a remote MCP server over Streamable HTTP at https://numbers.online/api/v1/mcp. Clients can discover tools publicly; authenticated tool calls return read-only phone intelligence.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://numbers.online/api/v1/mcpclaude mcp add --transport http numbers-online https://numbers.online/api/v1/mcp{"mcpServers":{"numbers-online":{"type":"http","url":"https://numbers.online/api/v1/mcp"}}}Open in Cursor{"servers":{"numbers-online":{"type":"http","url":"https://numbers.online/api/v1/mcp"}}}Open in VS Code{"mcpServers":{"numbers-online":{"type":"http","url":"https://numbers.online/api/v1/mcp"}}}{"mcpServers":{"numbers-online":{"serverUrl":"https://numbers.online/api/v1/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
4| Parameter | Type | Required | Description |
|---|---|---|---|
| number | string | Yes | Phone number in E.164, e.g. +14155552671 (loose input is normalized). |
| verstat | string | No | Optional STIR/SHAKEN verstat for THIS call — TN-Validation-Passed / -Failed / No-TN-Validation, or a full Identity / P-Asserted-Identity header value. When supplied it folds into the risk signal (a failed validation raises it). |
| max_cache_age_seconds | integer | No | Operator TTL control; 0 forces a fresh dip. |
Details
From the project READMENumbers Online — phone-intelligence MCP server
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.
- Endpoint:
POST https://numbers.online/api/v1/mcp(Streamable HTTP, JSON-RPC 2.0) - Transport: remote / hosted — nothing to install or run. Point your agent at the URL.
- Auth:
Authorization: Bearer <api_key>for tool calls; discovery is public. - Docs: https://numbers.online/docs/integrations · Site: https://numbers.online
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".
Tools
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 |
About the DNC signal
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.)
Connect
Any MCP client (Claude Desktop, Claude Code, IDEs)
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.
Vapi
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.
Retell
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.
Quick smoke test
# 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.
Signed receipts (verifiable "checked as of T" evidence)
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).
Privacy
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
Pricing
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: [email protected] · License: MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.