CallRail MCP server
io.github.pghdma/callrail-mcp·v1.3.1·2 starsCallRail REST API v3: 57 tools for calls, leads, trackers, tags, users, and agency reporting.
2 stars227 downloads/wk
Reviews
Write oneNobody has reviewed CallRail MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
CallRail MCP tools (57, 22 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_call_tagsAppend tags to a call WITHOUT replacing existing ones.
bulk_update_callswrite actionApply the same update to every call matching a filter.
call_eligibility_checkAudit whether a specific call is/was eligible to count as a Google Ads conversion. Useful for "where did my conversion go" debugging.
call_statsServer-side call aggregation via CallRail's /calls/summary.json.
call_summarySummarize calls over a date window.
call_timeseriesCall volume over time via CallRail's /calls/timeseries.json. One request for a trend line instead of client-side bucketing.
compare_periodsCompare current N-day window vs the previous N-day window.
create_companywrite actionCreate a new company (client) under the account.
create_form_submissionwrite actionManually create a form submission (e.g. backfill an offline lead).
create_notificationwrite actionCreate a notification rule (who gets pinged on which event).
create_outbound_callwrite actionPlace an outbound call. THIS ACTUALLY DIALS REAL PHONES.
create_tagwrite actionCreate a new tag, scoped to one company or to the whole account.
create_trackerwrite actioncreate_userwrite actionInvite a new user. CallRail emails them an account-creation link.
delete_companywrite actionSoft-delete a company. Status flips to 'disabled', records retained.
delete_notificationwrite actionDelete a notification rule. The rule is gone. To keep but mute it, prefer `update_notification(send_email=False, send_desktop=False, send_push=False)`.
delete_tagwrite actionDelete a tag definition from the account. Removes it from any calls or form submissions that had it applied.
delete_trackerwrite actionDelete (disable) a tracker. Soft-removes it from active trackers; the tracker keeps its call history but stops receiving new calls. The underlying phone number is released.
delete_userwrite actionRemove a user from the account.
form_statsServer-side form-submission totals via /forms/summary.json.
get_callGet full detail for a specific call.
get_call_page_viewsGet the visitor's page-view history behind a call: which pages they browsed (with timestamps) before and around dialing. Pairs with `call_eligibility_check` for conversion debugging: shows the actual session journey that led to the call.
get_call_recordingGet the recording URL for a call. CallRail documents the link as good for at least 24 hours but not guaranteed forever; HIPAA accounts receive a temporary URL that expires in about 24 hours. Play or download it promptly rather than storing the link.
get_call_transcriptGet the transcript and conversation-intelligence fields for a call.
get_companyGet full detail for one company.
get_form_submissionGet full detail for one form submission, including all submitted field data.
get_integrationGet full detail for one integration.
get_lead_timelineGet a lead's full cross-channel activity timeline: every call, form submission, and text thread from that person in one response, with first-touch/last-touch attribution.
get_sms_threadGet one SMS thread's lead-management record (notes, value, tags, lead_qualification, state). For the message transcript itself use `get_text_message` with the conversation id.
get_tagGet full detail for one tag.
get_text_messageGet full detail for one SMS conversation, including all messages.
get_trackerGet full detail for a specific tracker.
get_userGet full detail for one user on the account.
list_accountsList CallRail accounts accessible to this API key.
list_callslist_companiesList companies (client businesses) under a CallRail account.
list_form_submissionsList form submissions captured by CallRail's Form Tracking. Paginated. Filterable by company and date window.
list_integrationsList integrations attached to one company (GMB, Google Ads, Facebook, Slack, Webhooks, etc.).
list_leadsList leads (unique people) across calls, forms, and texts.
list_notificationsList notification rules on the account.
list_sms_threadsList SMS threads. Unlike `list_text_messages` (conversation transcripts), threads carry the lead-management surface: `notes`, `value`, `tags`, `lead_qualification`, `state`. Threads are UPDATABLE via `update_sms_thread`.
list_tagsList all tags in the account, or filtered to one company.
list_text_messagesList SMS/text message conversations sent to or received via CallRail trackers. Paginated. Filterable by company and date window.
list_trackersList tracking phone numbers (trackers). Each tracker maps a pool of phone numbers to a traffic source (Google Ads, Organic, Direct, etc.).
list_usersList users on the account. Paginated.
remove_call_tagswrite actionRemove specific tags from a call (case-sensitive on tag name).
search_calls_by_numberFind calls from/to a specific phone number. Matches on the last 10 digits of the stored `customer_phone_number` so any format works.
spam_detectorHeuristically identify likely-spam calls and (optionally) tag them.
update_callwrite actionUpdate an existing call: notes, tags, spam flag, customer name, lead status.
update_companywrite actionUpdate mutable settings on a company. Pass None to leave a field unchanged; only fields with explicit values are sent in the PUT body.
update_form_submissionwrite actionUpdate an existing form submission: note, tags, value, lead status.
update_notificationwrite actionUpdate a notification rule. Pass None to leave a field unchanged; only fields with explicit values are sent in the PUT body.
update_sms_threadwrite actionUpdate an SMS thread's lead-management fields. This is the texting equivalent of `update_call`. Closes the gap where texting leads couldn't be tagged / noted / qualified via API.
update_tagwrite actionRename, recolor, disable or re-enable a tag.
update_trackerwrite actionUpdate a tracker's mutable settings: name, whisper, SMS, swap targets, campaign name, and the basic call flow (destination, recording, greeting).
update_userwrite actionUpdate a user's name or company access. Pass None to leave unchanged.
usage_summaryPer-company cost-attribution summary for the current cycle.
Public scan report
scanner v0.1.10 · 2026-10-15 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 6 days ago15/15
- Maintainer identityregistry namespace matches repository owner6/10
How CallRail MCP compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 80/100
- higher than 60% of 48,243 servers
- Tools
- 57
- the typical server has 7
- Tools that change things
- 39%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 75% of 28,706 servers
- Downloads a week
- 227
- more than 77% of 12,306 servers with a package
What its tools let an agent do: 34 read · 8 create · 9 change · 6 delete
Release history: 3 versions in the registry since 2026-09-07, latest 2026-10-09, typically one every 28 days.
Install CallRail MCP in Claude Code, Cursor or VS Code
claude mcp add callrail-mcp -- uvx callrail-mcp
What the publisher says
From the CallRail MCP repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.pghdma/callrail-mcp -->
callrail-mcp
A Model Context Protocol server that exposes the CallRail REST API v3 to any MCP-compatible client (Claude Code, Claude Desktop, Cursor, and others).
Created by Steve Japalucci, founder of Pittsburgh Digital Marketing Agency (PGHDMA).
Works with both major versions of the MCP Python SDK (1.x and 2.x).
What you can ask your assistant to do
Once installed, any MCP-aware assistant can answer things like:
Reporting
- "Pull last week's calls for Alan Construction, grouped by source"
- "Show me every missed call this month"
- "Find any calls from 412-555-1234 across all clients in the last 90 days"
- "Get the transcript for call CAL019abc..."
Agency cost attribution
- "Why is my CallRail bill $174? Break it down by client"
- "Which client is the biggest minute user this cycle?"
Conversion debugging
- "Why didn't this call convert in Google Ads? CAL019..."
- "Is this 58-second call eligible to count as a Google Ads conversion?"
Lead management
- "Show me everything this person has ever done: calls, forms, texts"
- "Tag this SMS thread as a qualified lead and add a note"
Tag and tracker management
- "Tag this call as 'lead' and add a note"
- "Provision a new Google Ads call-extension tracker for Renaissance in area code 412" (requires confirm_billing=True, costs about $3/mo)
Installation
# Recommended: pipx for an isolated CLI install
pipx install callrail-mcp
# Or with pip
pip install callrail-mcpTo install from source (latest unreleased):
pipx install git+https://github.com/pghdma/callrail-mcp.gitAuth
Get an API key at Settings > API Keys in your CallRail account. You need Account Admin permission to create one.
Provide it one of two ways:
Option 1: environment variable (recommended for most setups)
export CALLRAIL_API_KEY="your_key_here"Option 2: key file
mkdir -p ~/.config/callrail
echo "your_key_here" > ~/.config/callrail/api-key.txt
chmod 600 ~/.config/callrail/api-key.txtOr override with CALLRAILAPIKEY_FILE=/path/to/key.txt.
Configure your MCP client
Claude Code / Claude Desktop (~/.claude.json or claudedesktopconfig.json)
{
"mcpServers": {
"callrail": {
"command": "callrail-mcp",
"env": {
"CALLRAIL_API_KEY": "your_key_here"
}
}
}
}If you installed via pipx, callrail-mcp will be on your PATH automatically. Otherwise, point command at the full path to the executable.
Cursor and other clients
The server speaks standard MCP stdio. Any client that supports stdio MCP servers will work; just run callrail-mcp as the command.
Available tools
57 tools total, covering roughly 95% of CallRail's REST API v3 surface: read tools, write tools, tracker provisioning, agency aggregation, account management, notifications, integrations discovery, outbound calls, offline-lead backfill, leads and cross-channel timelines, SMS-thread lead management, and server-side analytics.
Read tools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
CallRail MCP: common questions
- Is CallRail MCP server safe?
- Mostly: it is graded B (80/100). Read the CallRail MCP safety report
- How do I install CallRail MCP?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does CallRail MCP need an API key?
- Yes. The registry entry asks for
CALLRAIL_API_KEY. - Is CallRail MCP maintained?
- The last commit was 27 days ago (2026-10-09). The latest release is v1.3.1.
- How does CallRail MCP compare with other MCP servers?
- safety score 80/100 (higher than 60% of 48,243 servers); tools 57 (the typical server has 7); tools that change things 39% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.