Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:c2e6de5e57798713c78c678ee700b1717013771e247bd9e1294c0b0137a029ff
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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.", "inputSchema": { "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" ], "type": "object" }, "name": "vri_bulk_lookup", "outputSchema": { "additionalProperties": true, "description": "Per-number results plus total charged", "properties": { "results": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "total_charged": { "description": "USD amount billed for this call", "type": "string" } }, "type": "object" } }, { "description": "Status and progress of a VRI bulk lookup job by job id.", "inputSchema": { "properties": { "job_id": { "description": "Job id returned by vri_bulk_lookup or vri_submit_job", "type": "string" } }, "required": [ "job_id" ], "type": "object" }, "name": "vri_bulk_status", "outputSchema": { "additionalProperties": true, "description": "Job status snapshot", "properties": { "job_id": { "type": "string" }, "processed": { "description": "Numbers completed so far", "type": "integer" }, "status": { "description": "Job state, e.g. RUNNING or COMPLETED", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "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" ], "type": "object" }, "name": "vri_number_lookup", "outputSchema": { "additionalProperties": true, "description": "Lookup result for the number", "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" } }, "type": "object" } }, { "description": "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).", "inputSchema": { "properties": { "phone_number": { "description": "US/Canada number, any common format", "type": "string" } }, "required": [ "phone_number" ], "type": "object" }, "name": "vri_sms_deliverability", "outputSchema": { "additionalProperties": true, "description": "Deliverability verdict", "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" } }, "type": "object" } }, { "description": "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).", "inputSchema": { "properties": { "phone_number": { "description": "US/Canada number, any common format", "type": "string" } }, "required": [ "phone_number" ], "type": "object" }, "name": "vri_spam_check", "outputSchema": { "additionalProperties": true, "description": "Spam reputation verdict", "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" ] } }, "type": "object" } }, { "description": "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).", "inputSchema": { "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" ], "type": "object" }, "name": "vri_submit_job", "outputSchema": { "additionalProperties": true, "description": "Accepted job receipt", "properties": { "job_id": { "description": "Use with vri_bulk_status", "type": "string" }, "reserved": { "description": "USD balance reserved for the job", "type": "string" }, "status": { "type": "string" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c2e6de5e57798713c78c678ee700b1717013771e247bd9e1294c0b0137a029ff | sha256sum