Numbers Online — phone intelligence

online.numbers由 numbers.online 发布官方发布者v1.0.0更新于 Oct 24, 2026

Read-only phone intelligence for AI voice agents — line type, risk, DNC, signed receipts.

已验证Streamable HTTP可网页运行沟通与协作安全与监控

概览

AI 生成的概览

托管式只读 MCP 服务器,为 AI 语音代理提供电话号码情报:线路类型、垃圾呼叫风险、第一方 DNC 信号与签名回执。

可以做什么
  • 查询完整号码情报包:有效性、格式、线路类型、号段运营商、国家、来电者姓名、STIR/SHAKEN 验证状态、垃圾呼叫信号、DNC 信号与签名回执
  • 免费做确定性号码分类:有效性、线路类型、运营商、国家与格式
  • 读取来电者的标注风险信号,含验证状态透传与第一方免打扰信号,不查询姓名
  • 查询某号码的第一方免打扰偏好(抑制、无匹配或未知)
  • 获取并验证计费查询的签名回执
适用场景
适合构建或运营 AI 语音代理、需要在消耗代理时长前筛查来电者或核验外呼号码的团队。也适合希望用托管式增强步骤替代自建电话数据管线的场景。
运行要求
远程 Streamable HTTP 端点,无需安装。调用工具需具备 mcp 用途的 API 密钥,通过 Authorization Bearer 请求头发送;发现类请求(initialize、ping、tools/list)无需认证。需要能访问该托管服务的网络。
安装前请注意
完整情报包按次计费;line_type 与 dnc_check 免费。输出仅为低置信度的辅助信号,不构成合规判定;DNC 信号仅来自第一方,并非政府登记库。回执 ID 相当于凭证,应视为敏感信息,因为号码哈希可与候选号码对应。原始号码以哈希形式处理而非存储。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Numbers Online — phone intelligence,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/online.numbers%2Fnumbers-online/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "numbers-online-phone-intelligence": {
      "type": "http",
      "url": "https://numbers.online/api/v1/mcp"
    }
  }
}

README

Numbers 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).

ToolReturnsBilled
phone_lookupFull 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 receiptbundled per-call
caller_riskSpam signal + verstat + first-party DNC signal + receipt (no name dip)bundled per-call
line_typeDeterministic only — validity, line type (mobile / fixed line / VoIP / …), carrier, country, formattingfree
dnc_checkFirst-party do-not-contact signal + signed receiptfree

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:

json
{  "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

bash
# 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

来源:README.md,提交 3d9cec4

工具

4

phone_lookup

Phone number intelligence

Return a supplementary, low-confidence intelligence bundle for a phone number: validity, formatting, line type, range carrier, country, caller name (CNAM, where available), STIR/SHAKEN verstat (supply the call's verstat to fold it into the spam signal), a labeled spam signal, and a first-party do-not-contact (DNC) signal — a suppression preference registered by the number's own owner, never a copy of any government registry. Advisory only — the agent keeps every routing and dialing decision.

输入参数number必填verstatmax_cache_age_seconds

line_type

Line type

Return only the deterministic fields for a number — validity, line type (mobile / fixed line / VoIP / …), range carrier, country, and formatting. No paid dip; a free, fast classification a voice agent can call before deciding to enrich.

输入参数number必填

caller_risk

Caller risk signal

Return a labeled, low-confidence risk read for an inbound caller: a spam signal (0–100, higher = riskier), verstat passthrough, and a first-party do-not-contact (DNC) signal — without a name dip. A supplementary input to the agent's own policy, never a verdict on whether to accept or reject the call. Supply the call's STIR/SHAKEN verstat to fold it into the signal — a failed validation raises the risk.

输入参数number必填verstat

dnc_check

Do-not-contact supplementary signal

Return a first-party do-not-contact signal (suppress / no_match / unknown) for a number, sourced ONLY from suppression preferences registered and verified by the number's own owner inside Numbers Online — never a copy of any government or licensed do-not-call registry. "suppress" = the owner asked not to be contacted on this channel; "no_match" = no suppression preference on record (absence of suppress is not consent); "unknown" = the number could not be evaluated. Comes with a signed receipt recording the status "as of T". Advisory input to the agent's own process — it does not assert that a call is lawful.

输入参数number必填

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Numbers 集成