MCP server exposing CallRail REST API v3 for call tracking, reporting, lead management, and agency operations.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Callrail MCP.
list_accountsList accessible CallRail accounts
list_companiesList companies (clients) under an account. Optional `status="active"` filter and `page
list_trackersList tracking phone numbers and their source mapping. Optional `status="active"` filter
get_trackerFull detail for one tracker
list_callsPaginated call list. Filter by company, date, and `answer_status
get_callFull detail for a specific call
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).
Once installed, any MCP-aware assistant can answer things like:
Reporting
Agency cost attribution
Conversion debugging
Lead management
Tag and tracker management
confirm_billing=True, costs about $3/mo)To install from source (latest unreleased):
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:
Or override with CALLRAIL_API_KEY_FILE=/path/to/key.txt.
~/.claude.json or claude_desktop_config.json)If you installed via pipx, callrail-mcp will be on your PATH automatically. Otherwise, point command at the full path to the executable.
The server speaks standard MCP stdio. Any client that supports stdio MCP servers will work; just run callrail-mcp as the command.
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.
| Tool | Purpose |
|---|---|
list_accounts | List accessible CallRail accounts |
list_companies | List companies (clients) under an account. Optional status="active" filter and page |
list_trackers | List tracking phone numbers and their source mapping. Optional status="active" filter |
get_tracker | Full detail for one tracker |
list_calls | Paginated call list. Filter by company, date, and answer_status |
get_call | Full detail for a specific call |
call_summary | Aggregate stats (total, answered, by source, duration) for a window |
list_form_submissions | CallRail Form Tracking submissions |
list_text_messages | SMS conversations |
list_users | Account users |
get_call_recording | Recording URL (if recording enabled) |
get_call_transcript | Conversation Intelligence transcript (requires Premium CI since 2026-05-21) |
search_calls_by_number | Find calls by phone number across a window |
list_tags | List tags in an account or filtered to one company |
| Tool | Purpose |
|---|---|
update_call | Update note, tags, spam flag, customer name, lead status |
add_call_tags / remove_call_tags | Additive and subtractive tag changes (preserves existing) |
update_form_submission | Same field surface as update_call, plus value (numeric, supported on form submissions but not on calls, where CallRail returns 500) |
create_tag / update_tag / delete_tag | Full CRUD on the per-company tag taxonomy |
| Tool | Purpose |
|---|---|
create_tracker | Provision a new tracking number. Requires confirm_billing=True as a safety guard against accidental provisioning. Supports source trackers and session (DNI) pools of 4 to 50 numbers |
update_tracker | Update mutable settings: name, destination, whisper, greeting, SMS |
delete_tracker | Soft-delete a tracker (releases the phone number, preserves history) |
| Tool | Purpose |
|---|---|
get_company / create_company / update_company / delete_company | Full company (client) CRUD. Free, since CallRail bills per number rather than per company. Soft-delete semantics |
get_user / create_user / update_user / delete_user | Full user CRUD. create_user invites by email; roles: admin, manager, reporting |
get_tag | Single tag detail |
get_form_submission | Single form-submission detail |
get_text_message | Single SMS conversation with all messages |
create_form_submission | Manually create a form submission (backfill walk-in, paper-form, or offline leads) |
| Tool | Purpose |
|---|---|
list_notifications / create_notification / update_notification / delete_notification | Full per-user alert-rule CRUD (who gets pinged on which call, text, or form event) |
list_integrations(company_id) / get_integration | Discover GMB, Google Ads, Facebook, Slack, and Webhook integrations attached to a company. CallRail models webhooks as an integration type, so this is also how you inspect webhooks |
| Tool | Purpose |
|---|---|
create_outbound_call | Place an outbound call. CallRail dials business_phone_number first, then bridges to customer_phone_number, showing caller_id. Requires confirm_dialing=True as a safety guard, since it dials real phones, costs minutes, and carries legal implications. US and Canada only |
| Tool | Purpose |
|---|---|
list_leads / get_lead_timeline | CallRail's deduplicated person records, plus full cross-channel history (calls, forms, texts) per lead with first and last touch attribution |
list_sms_threads / get_sms_thread / update_sms_thread | SMS-thread lead management: tag, note, and qualify texting leads the way you would calls |
call_stats | Server-side call aggregation via /calls/summary.json. Group by company, company_id, source, keywords, campaign, referrer, landing_page, or last_requested_page in one request instead of paginating every call |
call_timeseries | Call-volume trend line. Supports interval (hour, day, week, month, year) and guards CallRail's 200-data-point limit before sending |
form_stats | Server-side form-submission totals |
get_call_page_views | The visitor's page-view journey behind a call. Pairs with call_eligibility_check for conversion debugging |
| Tool | Purpose |
|---|---|
usage_summary | Per-company cost-attribution breakdown for the cycle: minutes used, active numbers, estimated cost share, sorted by biggest cost driver. Answers "which client is burning my CallRail budget" |
call_eligibility_check | Audit whether a specific call qualifies as a Google Ads conversion. Checks gclid presence, answered status, duration against Google's threshold (default 60s), and source |
compare_periods | Compare the current N-day window against the previous one. Per-company minute and call deltas plus biggest mover |
bulk_update_calls | Apply one update (tag, note, lead_status, spam) to every call matching a filter. dry_run=True by default and capped at 500 calls |
spam_detector | Heuristically flag likely-spam calls (short duration, unanswered, repeat-caller patterns). Optional auto_tag=True adds an auto_detected_spam tag. Deliberately does not set spam=True, which would hide the call from default GETs |
All tools accept account_id optionally; if omitted, the first accessible account is auto-resolved. Most accept company_id to filter to a single client.
CallRail's GET /calls.json accepts answer_status (answered, missed, voicemail) but has no answered or source parameter. Earlier versions of this server forwarded both and CallRail silently ignored them, so results looked filtered but were not. Since v1.2.0:
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/pghdma-callrail-mcp)<a href="https://allmcps.com/mcp/pghdma-callrail-mcp"><img src="https://allmcps.com/api/badge/pghdma-callrail-mcp?style=directory" alt="Callrail MCP on AllMCPs" /></a>