callrail_create_ callPlace a REAL outbound phone call: CallRail dials business_phone_number first, then bridges the answering agent to customer_phone_number.
Pull recordings and the page-view trail behind a call, qualify calls and texts with tags and values, create source or keyword-pool tracking numbers, and watch webhooks for missed calls.
PopMCPCallRail
Every call, tracker, lead, form, text and company operation the API exposes, plus the webhook and polled triggers your agent can subscribe to.
callrail_create_ callPlace a REAL outbound phone call: CallRail dials business_phone_number first, then bridges the answering agent to customer_phone_number.
callrail_get_ callGet one call in full by its id.
callrail_get_ call_ page_ viewsGet the website browsing history for the visitor session that produced a call — every page they viewed, in order, with timestamps and referrers.
callrail_get_ call_ recordingGet the recording for a call: a short-lived download URL for the audio plus a shareable stand-alone player URL.
callrail_get_ calls_ summaryAggregate call counts for a period, optionally grouped by a marketing dimension.
callrail_get_ calls_ timeseriesCall volume over time, bucketed by hour, day, week, month or year.
callrail_list_ callsList individual tracked phone calls, newest first.
callrail_update_ callUpdate a call's CRM fields: qualify it as a lead, set its value, add a note, apply tags, rename the customer, or mark it as spam.
callrail_create_ session_ trackerCreate a SESSION tracker (keyword pool): a POOL of tracking numbers, one served per website visitor, so each call can be tied back to that visitor's keywords and browsing history.
callrail_create_ source_ trackerCreate a SOURCE tracker: ONE tracking number dedicated to one channel — a billboard, a print ad, a Google Ads campaign, a specific referring site.
callrail_get_ trackerGet one tracker in full: its type, tracking number(s), destination, call flow, source rules, whisper message, swap targets and SMS setting.
callrail_list_ trackersList the tracking numbers (trackers) in this account: their type (source or session/keyword pool), the phone number(s) they own, the company they belong to, their call flow, source configuration, SMS capability and status.
callrail_create_ companyCreate a company in this account.
callrail_get_ companyGet one company by id: its name, time zone, status, script URL and the feature switches (CallScore, CallScribe, external form capture, cookie/swap settings) that govern how calls to it are tracked and analysed.
callrail_list_ companiesList the companies in this account — the top-level containers that own trackers, calls, forms and users.
callrail_update_ companyUpdate one company: rename it, change its time zone, or turn its tracking and analysis features on or off (CallScore lead scoring, CallScribe transcription, external form capture, PPC/landing-page source overrides, cookie duration).
callrail_get_ forms_ summaryAggregate form-submission counts for a period, optionally grouped by source, keywords, campaign, referrer, landing page, form name or company.
callrail_list_ form_ submissionsList website form submissions captured by CallRail, newest first, with the submitted field values and their marketing attribution (source, referrer, landing page, UTMs).
callrail_list_ usersList the users on this account with their name, email, role and creation date.
callrail_update_ form_ submissionQualify a form submission: set its lead status and value, add a note, or apply tags.
callrail_create_ tagCreate a tag.
callrail_list_ outbound_ caller_ idsList a company's verified Outbound Caller IDs — the external phone numbers allowed to appear as the caller when placing outbound calls through CallRail.
callrail_list_ tagsList the tags defined in this account, with their id, name, colour, level and status.
callrail_update_ tagRename a tag, recolour it, or disable it.
callrail_get_ conversationGet one text conversation with its full message history — who said what, when, and in which direction.
callrail_get_ sms_ threadGet one SMS thread with its paginated message history.
callrail_list_ conversationsList text-message conversations, each with its participants, tracking number and recent messages.
callrail_list_ sms_ threadsList SMS threads in the newer thread shape — the same conversations as callrail_list_conversations, but with the CRM layer (lead qualification, tags, notes, value) and a keyword search over customer name, phone number and tag.
callrail_send_ text_ messageSend a REAL SMS (or MMS) to a customer from one of your CallRail tracking numbers.
callrail_update_ sms_ threadQualify an SMS thread: set its lead status and value, add notes, apply tags.
callrail_get_ accountGet the CallRail account this connection is locked to: its name, id, plan, outbound recording setting and the hard call/SMS quotas it is billed against.
callrail_get_ lead_ timelineGet one lead's complete interaction timeline: every call, text, form submission, chat and milestone in order, plus first-touch and last-touch attribution, the touchpoint that created and qualified the lead, tags, click ids (gclid/gbraid/wbraid/msclkid/fbclid) and any AI Convert Assist insight.
callrail_list_ leadsList leads — people, deduplicated across every interaction they have had with the business (calls, texts, forms, chats) rather than one row per call.
callrail_disable_ trackerDisable a tracker and release its tracking number(s).
callrail_update_ session_ trackerUpdate a SESSION tracker (keyword pool): rename it, grow the pool, change the call flow or which visitors it serves, adjust swap targets or the whisper message, or replace a spam-hit number in the pool.
callrail_update_ source_ trackerUpdate a SOURCE tracker: rename it, change where calls ring or whether they are recorded (call_flow), change which traffic it serves (source), set the campaign name, whisper message or swap targets, or replace its phone number.
callrail_bulk_ update_ companiesApply one setting to many companies at once (currently external form capture).
callrail_disable_ companyDisable a company.
callrail_create_ form_ submissionRecord a form submission in CallRail from an external system — for forms CallRail's JavaScript does not capture itself.
callrail_create_ integrationCreate an integration for a company — most usefully a Webhooks integration that POSTs call, text and form events to your own URLs in real time.
callrail_create_ integration_ filterCreate an integration filter so an integration only fires for calls that matter — for example only first-time calls over 30 seconds, or only calls already marked as good leads.
callrail_create_ message_ flowCreate a message flow: an automation that responds to inbound texts on a tracking number — auto-reply, apply tags, then hand off.
callrail_create_ summary_ emailSubscribe someone to recurring summary emails of call activity.
callrail_create_ userInvite a new user to the account.
callrail_delete_ integration_ filterDelete an integration filter.
callrail_delete_ message_ flowDelete a message flow.
callrail_delete_ summary_ emailUnsubscribe someone from summary emails.
callrail_delete_ userRemove an user from the account, revoking their access immediately.
callrail_disable_ integrationDisable an integration so CallRail stops sending it events.
callrail_get_ integrationGet one integration: its type, state and full config (for a Webhooks integration, the URLs subscribed to each event).
callrail_get_ integration_ filterGet one integration filter: the integration it belongs to and the tracker, call-type, duration and lead-status conditions a call must meet to be forwarded.
callrail_get_ message_ flowGet one message flow with its complete step graph.
callrail_get_ summary_ emailGet one summary-email subscription: who receives it, on what schedule, for which company, and which sections it includes.
callrail_get_ userGet one user by id: name, email, role and the companies they can access.
callrail_list_ integration_ filtersList a company's integration filters — the rules that decide WHICH calls reach an integration (by tracker, call type, duration or lead status), so a CRM only receives real leads instead of every misdial.
callrail_list_ integrationsList a company's integrations — webhooks and the other systems CallRail pushes call, text and form events into.
callrail_list_ message_ flowsList the message flows in this account — the automations that run when a tracking number receives an inbound text (auto-replies, tagging, routing).
callrail_list_ summary_ emailsList summary-email subscriptions — the recurring digests of call activity CallRail emails to users.
callrail_set_ ignored_ form_ fieldsSet which form field NAMES CallRail should stop capturing — the tool for keeping passwords, card numbers and other sensitive inputs out of CallRail.
callrail_update_ integrationUpdate an integration: activate or disable it, or change its config.
callrail_update_ integration_ filterUpdate an integration filter's conditions — which trackers it covers, the call type, the duration bounds or the required lead status.
callrail_update_ message_ flowUpdate a message flow's name, entry point or steps.
callrail_update_ summary_ emailUpdate a summary-email subscription's cadence, sections or filters.
callrail_update_ userUpdate an user's company access, name or email.
callrail_create_ notificationCreate a notification rule so someone is alerted about incoming calls or texts.
callrail_create_ outbound_ caller_ idStart verifying an external phone number so it can be used as the caller id on outbound calls.
callrail_delete_ notificationDelete a notification rule.
callrail_delete_ outbound_ caller_ idRemove a verified Outbound Caller ID.
callrail_delete_ tagPermanently remove a tag and detach it from every call, text and form submission it was applied to.
callrail_get_ outbound_ caller_ idGet one Outbound Caller ID: its number, name and whether verification has completed.
callrail_list_ notificationsList the call and text notification rules on this account — who gets alerted, for which company or tracker, on which call types, and through which channels (email, desktop, mobile push).
callrail_update_ notificationUpdate a notification rule — change its scope, which call types trigger it, or which channels it uses.
callrail_list_ accountsList the CallRail account this connection is locked to.
Credentials off one CallRail screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste one API key, created under My Account → API Keys → Create API key. No OAuth popup, redirect URL or client secret. Then choose which account to connect and its workspace — every request is locked to it.
••••••••••••3f7aRun it read-only, or allow writes with approval on the actions that reach customers: sending a real SMS, placing an outbound call, disabling a tracker and releasing its number. Flip the full catalog on for the rest.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your CallRail credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Compare call and form-submission volume by source for last month
callrail_get_calls_summaryok
Then just ask for the work
“Compare call and form-submission volume by source for last month”
“Mark last week's calls from our Google Ads number as qualified leads”
“Spin up a source tracking number for the new radio spot in Dallas”
“What pages did our best lead this week view before calling, and did they text back?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting CallRail behind an AI client.
No. CallRail shows an API key on one screen — My Account → API Keys → Create API key — and that single value is all the connect form asks for. There is no client secret, redirect URL or token refresh to manage; the key is held server-side and used over HTTPS. At connect time you also pick which CallRail account to connect and which workspace it belongs in, and every request is locked to that account.
All of it: 73 operations across 16 modules, split 34 read and 39 write, plus 17 triggers PopMCP can watch. 33 tools load into your AI client by default and the rest stay searchable, loading on demand. The modules span calls, trackers, companies, form submissions, users, tags, text messaging, integrations and webhooks.
It can do both, and the writes are real. callrail_create_call dials your business_phone_number first, then bridges whoever answers to the customer_phone_number; callrail_send_text_message sends an actual SMS or MMS from one of your tracking numbers. Outbound calls depend on a verified caller ID, which callrail_list_outbound_caller_ids lists for a company. callrail_get_account reports the account's plan and the hard call and SMS quotas it is billed against.
callrail_get_call_recording returns a short-lived download URL for the audio plus a stand-alone player URL you can share. Transcription (CallScribe) and lead scoring (CallScore) are per-company feature switches, so callrail_get_company tells you whether they are on and callrail_update_company can turn them on. For the marketing side, callrail_get_call_page_views returns every page that visitor viewed before dialing, in order, with timestamps and referrers.
A source tracker is one number dedicated to one channel — a billboard, a print ad, a Google Ads campaign, a specific referring site — created with callrail_create_source_tracker. A session tracker is a keyword pool: many numbers, one served per website visitor, so each call ties back to that visitor's keywords and browsing history, created with callrail_create_session_tracker. They have separate create and update tools, so say which kind you want or the agent has to guess. callrail_list_trackers labels the type of every number you already own.
callrail_list_calls returns one row per tracked call. callrail_list_leads returns people, deduplicated across every interaction they have had with the business — calls, texts, forms and chats — so one persistent customer is a single lead no matter how often they get in touch. callrail_get_lead_timeline then gives that person's full interaction history with first-touch and last-touch attribution, the touchpoint that created and qualified the lead, tags and click ids such as gclid, gbraid, wbraid, msclkid and fbclid.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 73 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 33-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 73 here. A trigger is something PopMCP watches for you: 17 CallRail events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into CallRail.
Launch a hosted MCP endpoint for CallRail, keep tool access under control, and start testing real workflow prompts right away.