lookup
Is this number safe to call or text right now? Live carrier, CNAM, spam and SMS checks for agents.
Should I use this
Quality & Safety
Findings (1)
- LOWin vri_bulk_status
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"lookup": {
"command": "npx",
"args": [
"veriroute-intel-mcp"
]
}
}
}Runnable packages
1.2.2stdioRemote endpoints
https://verirouteintel.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢vri_number_lookup(phone_number, products)
Live intelligence for ONE North American phone number: current carrier of record, line type, LRN routing data, porting activation date, and optionally caller-ID name (cnam), spam reputation, and messaging provider. Always a fresh read of live numbering infrastructure — never cached carrier data.
Input Schema
{
"type": "object",
"properties": {
"phone_number": {
"description": "US/Canada number, any common format",
"type": "string"
},
"products": {
"description": "Data sets to include. Default ['lrn'] (carrier/line-type/routing).",
"items": {
"enum": [
"lrn",
"cnam",
"spam",
"messaging"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"phone_number"
]
}Output Schema
{
"type": "object",
"properties": {
"billed": {
"description": "Whether this lookup was charged",
"type": "boolean"
},
"data": {
"additionalProperties": true,
"description": "Carrier, line type, LRN, and any requested cnam/spam/messaging fields",
"type": "object"
},
"phone_number": {
"description": "Normalized number",
"type": "string"
},
"risk": {
"additionalProperties": true,
"description": "Explainable spam/risk verdict: WHY the number is flagged (or not), with an honest confidence band. A clean verdict means \"nothing found against it\", never \"verified safe\".",
"properties": {
"confidence": {
"description": "How much weight the evidence actually carries",
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"confidence_note": {
"description": "One plain sentence explaining the band",
"type": "string"
},
"reasons": {
"description": "Individual pieces of evidence behind the verdict",
"items": {
"additionalProperties": true,
"properties": {
"code": {
"description": "provider_flag, ftc_complaints, complaint_category, community_reports, line_type_voip, recently_ported, no_complaints",
"type": "string"
},
"signal": {
"enum": [
"negative",
"positive",
"context"
],
"type": "string"
},
"text": {
"description": "Human-readable evidence",
"type": "string"
},
"weight": {
"enum": [
"strong",
"moderate",
"weak"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"verdict": {
"description": "unknown = no reputation data was read for this number",
"enum": [
"scam",
"robocall",
"reported",
"clean",
"unknown"
],
"type": "string"
}
},
"type": "object"
},
"status": {
"description": "success or error",
"type": "string"
}
},
"additionalProperties": true,
"description": "Lookup result for the number"
}🟢vri_spam_check(phone_number)
Spam/scam/robocall reputation for one North American phone number, with an explainable `risk` block: the verdict, a confidence band, and the individual reasons behind it (complaint volume and recency, complaint category, community reports, line type, recent porting).
Input Schema
{
"type": "object",
"properties": {
"phone_number": {
"description": "US/Canada number, any common format",
"type": "string"
}
},
"required": [
"phone_number"
]
}Output Schema
{
"type": "object",
"properties": {
"is_spam": {
"description": "True if flagged spam/scam/robocall",
"type": "boolean"
},
"phone_number": {
"type": "string"
},
"risk": {
"additionalProperties": true,
"description": "Explainable spam/risk verdict: WHY the number is flagged (or not), with an honest confidence band. A clean verdict means \"nothing found against it\", never \"verified safe\".",
"properties": {
"confidence": {
"description": "How much weight the evidence actually carries",
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
"confidence_note": {
"description": "One plain sentence explaining the band",
"type": "string"
},
"reasons": {
"description": "Individual pieces of evidence behind the verdict",
"items": {
"additionalProperties": true,
"properties": {
"code": {
"description": "provider_flag, ftc_complaints, complaint_category, community_reports, line_type_voip, recently_ported, no_complaints",
"type": "string"
},
"signal": {
"enum": [
"negative",
"positive",
"context"
],
"type": "string"
},
"text": {
"description": "Human-readable evidence",
"type": "string"
},
"weight": {
"enum": [
"strong",
"moderate",
"weak"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"verdict": {
"description": "unknown = no reputation data was read for this number",
"enum": [
"scam",
"robocall",
"reported",
"clean",
"unknown"
],
"type": "string"
}
},
"type": "object"
},
"spam_type": {
"description": "SCAM, ROBOCALL, or null when clean",
"type": [
"string",
"null"
]
}
},
"additionalProperties": true,
"description": "Spam reputation verdict"
}🟢vri_bulk_status(job_id)
Status and progress of a VRI bulk lookup job by job id.
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"description": "Job id returned by vri_bulk_lookup or vri_submit_job",
"type": "string"
}
},
"required": [
"job_id"
]
}Output Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string"
},
"processed": {
"description": "Numbers completed so far",
"type": "integer"
},
"status": {
"description": "Job state, e.g. RUNNING or COMPLETED",
"type": "string"
}
},
"additionalProperties": true,
"description": "Job status snapshot"
}🟢vri_bulk_lookup(phone_numbers, products)
Live lookup for up to 100 North American phone numbers in one call (carrier, line type, routing; optional cnam/spam/messaging). Each number is a fresh paid read — spend scope required.
Input Schema
{
"type": "object",
"properties": {
"phone_numbers": {
"description": "US/Canada numbers, any common format (max 100)",
"items": {
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"products": {
"description": "Data sets per number. Default ['lrn'].",
"items": {
"enum": [
"lrn",
"cnam",
"spam",
"messaging"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"phone_numbers"
]
}Output Schema
{
"type": "object",
"properties": {
"results": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"total_charged": {
"description": "USD amount billed for this call",
"type": "string"
}
},
"additionalProperties": true,
"description": "Per-number results plus total charged"
}🟢vri_sms_deliverability(phone_number)
ONE verdict for AI outreach: can this North American number receive SMS, and is now a reasonable time to send? Returns sms_capable (live line-type read), VoIP flag, spam reputation, the recipient's approximate local time with an 8am-9pm calling-window flag, and plain-language reasons. Deliverability and reputation signals only — not a legal compliance determination (no DNC/reassigned-number/litigator data).
Input Schema
{
"type": "object",
"properties": {
"phone_number": {
"description": "US/Canada number, any common format",
"type": "string"
}
},
"required": [
"phone_number"
]
}Output Schema
{
"type": "object",
"properties": {
"line_type": {
"type": [
"string",
"null"
]
},
"ok_to_message_now": {
"description": "sms_capable AND clean AND inside the calling window",
"type": "boolean"
},
"reasons": {
"description": "Plain-language reasons this number is or is not a good send. Empty means nothing is wrong. When reputation is against the number these also carry the evidence behind it (complaint counts and recency, complaint category, community reports, recent porting) and a closing \"reputation confidence: low|medium|high\" line.",
"items": {
"type": "string"
},
"type": "array"
},
"recipient_local": {
"description": "Approximate timezone, local_time, quiet_hours_ok",
"type": [
"object",
"null"
]
},
"sms_capable": {
"description": "Wireless line that can receive SMS",
"type": "boolean"
},
"spam_flagged": {
"type": "boolean"
},
"voip": {
"type": "boolean"
}
},
"additionalProperties": true,
"description": "Deliverability verdict"
}🟡vri_submit_job(phone_numbers, products)
Submit an ASYNC bulk lookup job for up to 10000 North American phone numbers. Balance is reserved up front and the job runs in the background; check progress with vri_bulk_status. Requires a customer API key (jobs bill the account that owns the key).
Input Schema
{
"type": "object",
"properties": {
"phone_numbers": {
"description": "US/Canada numbers to process asynchronously (max 10000)",
"items": {
"type": "string"
},
"maxItems": 10000,
"type": "array"
},
"products": {
"description": "Default ['lrn'].",
"items": {
"enum": [
"lrn",
"cnam",
"spam",
"messaging"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"phone_numbers"
]
}Output Schema
{
"type": "object",
"properties": {
"job_id": {
"description": "Use with vri_bulk_status",
"type": "string"
},
"reserved": {
"description": "USD balance reserved for the job",
"type": "string"
},
"status": {
"type": "string"
}
},
"additionalProperties": true,
"description": "Accepted job receipt"
}Community
Evidence