Agents and MCP
Let Claude or Cursor scan lists for you: litigators, reassigned numbers, DNC, score ranking. Configs, prompts, and guardrails.
Connect Claude, Cursor, or any MCP client to DialRight and it can scan numbers for you: paste a list, ask a question, get an answer built from real scan results. No SDK, no glue code.
Monitoring Platform uses a different hub and token: Monitoring Agents.
What you can do
| You ask | The agent does |
|---|---|
| “Scan these 40 numbers and list any litigators with their case.” | POST /v1/scan/bulk, then filters likely_litigator_associated, returns litigator_name, case_reference, repeat_filer |
| “Which of these were reassigned since we last spoke to them on 2025-06-01?” | Same call with reassigned-numbers and last_point_contact, returns reassigned_numbers_result.contact_disconnected |
| “Rank this list by confidence and drop anything under 30.” | Sorts on dialright_score (0–100) |
| “Which are on a federal or state Do Not Call list?” | dnc_fed_number, dnc_state_number |
| “Which are prepaid mobile or non-fixed VoIP?” | is_prepaid, line_type, carrier |
| “Is 12125550123 safe to call?” | POST /v1/scan, summarizes score, risk, DNC, and line type for one number |
“Scan leads.csv in batches of 1000 and give me a clean list.” | Chunks at 1000, one request per second, merges data arrays |
Every result field is documented on the ScanResult schema, so the agent knows what risk_level: "troll" means without guessing.
Connect
MCP URL and header, the same for every client:
https://dialright-developers.calleridrep.com/mcp
Authorization: Bearer YOUR_DIALRIGHT_ORG_TOKENSave as .cursor/mcp.json and restart Cursor.
{
"mcpServers": {
"DialRight": {
"url": "https://dialright-developers.calleridrep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_DIALRIGHT_ORG_TOKEN"
}
}
}
}claude mcp add --transport http dialright https://dialright-developers.calleridrep.com/mcp \
--header "Authorization: Bearer YOUR_DIALRIGHT_ORG_TOKEN"Add to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude.
{
"mcpServers": {
"DialRight": {
"url": "https://dialright-developers.calleridrep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_DIALRIGHT_ORG_TOKEN"
}
}
}
}Do not send a Monitoring Platform API token here.
Get a token
Scans accept organization API tokens only; a web-app login session is rejected on /v1/scan and /v1/scan/bulk.
- Sign in to the DialRight web app as an organization Administrator.
- Open the organization’s API tokens page and create a token with a role that is allowed to scan. Set an expiry.
- Copy the value once (it is not shown again) and paste it into your MCP config.
More tokens can be created over the API with POST /v1/org/apiTokens using an Administrator-role token. See Authentication.
How a scan happens
The server exposes the OpenAPI spec as generic tools (search-endpoints, get-endpoint, execute-request), not one tool per endpoint. Every scan is the same three steps:
search-endpointsforscan→POST /v1/scan/bulkget-endpoint→ readsScanBulkRequestandScanResultexecute-request→ sends the request below and filters thedataarray
The request the agent builds for “which of these were reassigned since 2025-06-01, and are any litigators?”:
{
"data_sources": ["dr-score-and-basic-info", "reassigned-numbers"],
"contacts": [
{ "phone_number": "12125550123", "last_point_contact": "2025-06-01" },
{ "phone_number": "13105550199", "last_point_contact": "2025-06-01" }
],
"phone_number_format": "E164",
"test_mode": false
}Omit data_sources to run everything. reassigned-numbers needs last_point_contact (YYYY-MM-DD) on every contact. Lists over 1000 are chunked; the bulk endpoint allows 1 request per second.
Reading the results
| Question | Field to filter on |
|---|---|
| Which are litigators? | likely_litigator_associated, risk_level (tcpa, troll), litigator_name, case_reference, repeat_filer |
| Which are on a Do Not Call list? | dnc_fed_number, dnc_state_number |
| Which were reassigned or disconnected? | reassigned_numbers_result.contact_disconnected (needs last_point_contact), is_valid |
| Which are mobile / VoIP / prepaid? | line_type, is_prepaid, carrier |
| Which are businesses? | business_associated_number |
| Rank by confidence | dialright_score (0–100, higher is more likely live, reachable, and low risk) |
Do not dial when is_valid is false, likely_litigator_associated is true, risk_level is tcpa / troll / dnc_complainers, a DNC flag is true without consent, or contact_disconnected is true.
Cost and test mode
Real scans bill the organization per number and per data source; metadata.cost and metadata.remaining_funds show the charge. test_mode: true skips billing and returns synthetic placeholder values, so use it to check that the request is shaped right, not to make dialing decisions. Tell the agent to confirm with you before any test_mode: false scan of more than a few numbers.
First conversation
- “List the DialRight MCP tools.”
- “Show the request body for
POST /v1/scan/bulk.” - “Run a
test_mode: truescan for 12125550123 and explain each field.” - “Now scan it for real and tell me if it is safe to call.”
llms.txt
For agents that read docs rather than call APIs. Add .md to any page URL for its Markdown.
https://dialright-developers.calleridrep.com/llms.txtGuardrails
- The MCP also exposes billing, payment-method, and API-token routes. Tell your agent not to call them unless you ask.
- Ask the agent to print the request before any real scan.
- Tokens are secrets. Do not paste live tokens into chats, tickets, or shared configs.
Next
Updated about 2 months ago
