# CallRail MCP connector

The CallRail connector brings your tracked calls, trackers, companies, tags, form submissions and text threads into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person can ask about them and update them within their own CallRail access.

Source: https://elaichi.ai/connectors/callrail/

## Facts

| | |
| --- | --- |
| Application | CallRail |
| Category | Analytics |
| AI tools | 59 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once CallRail is connected

- Which trackers drove the most calls this week?
- Summarize yesterday's calls for Acme Dental and tag the new leads.
- Show form submissions from the spring campaign landing page.

## Connect CallRail in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick CallRail.
2. Optionally set Share with, then press Connect.
3. Paste a CallRail API key. One person generates a token in CallRail and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which CallRail tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## CallRail MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## CallRail MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## CallRail MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect CallRail to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a CallRail tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with CallRail through Elaichi

### See which campaigns drove today's calls

Marketing. Ask for this morning's calls grouped by tracker and source, and find out which landing page or ad the caller looked at before dialing.

### Catch up on a lead after the call

Sales. Pull the call, its recording and the pages the caller visited beforehand, then tag it as a qualified lead without opening CallRail.

### Report every client company's calls monthly

Client services. List each company in your CallRail account with its call volume, top trackers and form submissions, ready to paste into a client update.

### Set up a tracker for a new campaign

Marketing. Describe the campaign and have a new tracker created and tagged so the calls it brings in are separated from day one.

### Tag and update calls in bulk

Operations. Find every untagged call from last week and apply the right tags and notes across all of them in one pass.

### Review form submissions and text threads

Support. Read through the form submissions and SMS threads that came in overnight, and spot the ones nobody has answered yet.

## Frequently asked questions

### How do I connect CallRail to Claude?

Connect CallRail in Elaichi by pasting the API key from your CallRail account settings, then open Claude and go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register and no client ID or secret to generate. Once Claude is connected, sign in as yourself and start asking about your CallRail calls.

### Does CallRail work with ChatGPT and Cursor as well as Claude?

Yes. Once CallRail is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect CallRail once and every client sees it.

### What can an AI agent actually do with my CallRail data?

An agent connected to CallRail can list and read calls, fetch a call's recording and the pages the caller viewed, create and update calls, trackers, tags and companies, and read form submissions and SMS threads. In practice that means asking which tracker drove the most calls this week, tagging last week's leads in bulk, or summarizing a client's form submissions. Short, specific asks work better than long paragraphs.

### Does connecting CallRail give the AI access to every company in my account?

No. Every request to CallRail runs as the person who signed in, so the agent sees only the companies, calls and trackers that person can already see in CallRail. Elaichi can narrow that further with restrictions, and it can never widen it beyond what CallRail itself allows.

### Can my team share one CallRail connection?

Yes. One person connects CallRail in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person who read a recording or tagged a call.

### Can I stop an agent from deleting or changing things in CallRail?

Yes. In Elaichi, restrictions on CallRail apply per action, so you can allow reading calls and form submissions while blocking bulk updates or user deletion. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

### What happens to a CallRail connection when someone leaves?

Offboarding a person in Elaichi ends their access to CallRail through every client at once. A CallRail connection that was shared with a team keeps working for everyone else. If you want it gone entirely, disconnecting CallRail once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client.

### Does the CallRail MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. CallRail is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 59 CallRail tools

Every tool below is callable through https://api.elaichi.ai/mcp once CallRail is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all CallRail calls** (List). List calls in a CallRail account, filterable by date range, direction, company, tracker, and tags. Returns: id, answered, business_phone_number, customer_city, customer_country, customer_name, customer_phone_number, customer_state, direction, duration, recording, recording_duration, start_time, tracking_phone_number, voicemail, agent_email, lead_status, note, tags, source, campaign, medium,…. Required: account_id.
- **CallRail calls list page views** (List). List the web page views from the visitor session that generated a CallRail call. Returns page view records: page_url, referrer_url, created_at. Required: call_id, account_id.
- **CallRail calls get recording** (Get). Get the recording for a CallRail call by id. Returns: url, page, per_page, total_pages, total_records. Required: call_id, account_id.
- **Create a CallRail call** (Create). Create an outbound call in CallRail. Returns the created call record: id, direction, customer_phone_number, tracking_phone_number, duration, start_time, recording. Required: account_id, caller_id, customer_phone_number, business_phone_number.
- **Get single CallRail call by ID** (Get). Get details for a single call in CallRail by id. Returns: id, answered, business_phone_number, customer_city, customer_country, customer_name, customer_phone_number, customer_state, direction, duration, recording, recording_duration, recording_player, start_time, tracking_phone_number, voicemail, agent_email, milestones, keywords_spotted. Required: id, account_id.
- **CallRail calls bulk update** (Update). Update a CallRail call's note, tags, lead status, customer name, or spam flag by id. Returns the updated call record: id, customer_name, direction, duration, start_time, recording. Required: id, account_id.
- **List all CallRail companies** (List). List all CallRail companies in an account. Returns a paginated array of company records including id, name, status, time_zone, created_at, dni_active, and script_url. Required: account_id.
- **Create a CallRail company** (Create). Create a new company in a CallRail account. Returns the created company object including its id, name, status, time_zone, and created_at. Required: account_id, name.
- **Get single CallRail company by ID** (Get). Get a single CallRail company by id. Returns the company object including id, name, status, time_zone, created_at, dni_active, and script_url. Required: id, account_id.
- **CallRail companies bulk update** (Update). Bulk update multiple CallRail companies at once — e.g. enable or disable external form tracking across the specified companies. Returns: updated_records, page, per_page, total_pages, total_records. Required: account_id, company_ids.
- **List all CallRail tags** (List). List all tags defined in a CallRail account. Returns a paginated array of tags including id, name, tag_level, color, background_color, company_id, status, and created_at. Required: account_id.
- **Get single CallRail tag by ID** (Get). Get a single CallRail tag by id. Returns the tag object including id, name, tag_level, color, background_color, company_id, status, and created_at. Required: id, account_id.
- **Create a CallRail tag** (Create). Create a tag in a CallRail company or account. Returns the created tag object including id, name, tag_level, color, background_color, company_id, status, and created_at. Required: name, account_id. Account-level tags (tag_level=account) can only be created by administrators.
- **List all CallRail trackers** (List). List trackers (tracking phone numbers) in a CallRail account, both source trackers and session (number pool) trackers. Returns: id, name, type, status, destination_number, tracking_numbers, whisper_message, sms_enabled, sms_supported, company, call_flow, source, created_at, disabled_at. Required: account_id.

- **Get single CallRail tracker by ID** (Get). Get a single CallRail tracker by id. Returns: id, name, type, status, destination_number, tracking_numbers, whisper_message, sms_enabled, sms_supported, company, call_flow, source, created_at, disabled_at. Required: account_id, id.

- **Create a CallRail tracker** (Create). Create a CallRail tracker in a company: either a source tracker (one number for a marketing source such as a billboard or Google organic) or a session tracker (a pool of numbers swapped per website visitor). Returns the created tracker: id, name, type, status, destination_number, tracking_numbers, company, call_flow, source, created_at. Required: account_id, type, name, company_id, call_flow.

- **CallRail trackers bulk update** (Update). Update a single CallRail tracker by id (despite the method name, this updates one tracker). Change name, call_flow, source, sms_enabled, swap_targets, whisper_message, pool_size, campaign_name or replace the tracking number. Returns the updated tracker: id, name, type, status, destination_number, tracking_numbers, company, call_flow, source, created_at, disabled_at. Required: account_id, id.

- **List all CallRail users** (List). List all users in a CallRail account, optionally sorted alphabetically (e.g. by email). Returns each user's id, email, name, first_name/last_name, role, created_at, and the companies they belong to. Required: account_id.
- **Get single CallRail user by ID** (Get). Get a single CallRail user by id. Returns: id, created_at, page, per_page, total_pages, total_records. Required: id, account_id.
- **CallRail users bulk delete** (Delete). Delete a user from a CallRail account by id. Only Account Administrators can perform this action. Returns an empty 204 response on success. Required: id, account_id.
- **List all CallRail form submissions** (List). List all form submissions for a CallRail account. Returns: id, company_id, person_id, form_data, form_url, landing_page_url, referrer, referring_url, submitted_at, first_form, customer_phone_number, customer_name, customer_email, formatted_customer_phone_number, formatted_customer_name, source, keywords, campaign, medium, milestones. Required: account_id. Supports filtering by company_id,…
- **Get single CallRail form submission by ID** (Get). Get a single form submission in CallRail by id. Returns: id, page, per_page, total_pages, total_records. Required: id and account_id.
- **CallRail form submissions list ignored fields** (List). List the form fields CallRail is configured to ignore when capturing form submissions for the account's companies. Returns: field_names, company_ids. Required: account_id.
- **List all CallRail sms threads** (List). List SMS thread summaries for a CallRail account, ordered newest threads first. Returns: id, notes, tags, value, lead_qualification, company_id, initial_tracker_id, current_tracker_id, customer_name, customer_phone_number, initial_tracking_number, current_tracking_number, state, company_time_zone. Required: account_id. Date filtering defaults to the last 7 days (date_range=recent); communication…
- **Get single CallRail sms thread by ID** (Get). Get a single CallRail SMS thread by id, including its full message exchange ordered most-recent first. Returns: id, page, per_page, total_pages, total_records. Required: id, account_id.
- **List all CallRail text messages** (List). List all text message conversations for a CallRail account, ordered newest-first. Returns conversation objects with id, customer_name, customer_phone_number, state, last_message_at, and the two most recent recent_messages. Required: account_id.
- **Create a CallRail text message** (Create). Send a text message from a CallRail tracking number to a customer, starting a new conversation or continuing an existing one. Returns the conversation object including id, company_id, customer_phone_number, state, and recent_messages. Required: account_id, customer_phone_number, tracking_number, content, and company_id.
- **Get single CallRail text message by ID** (Get). Get a single text message conversation in CallRail by id, with its messages ordered most recent first. Returns: id, page, per_page, total_pages, total_records. Required: account_id and id (the conversation id).
- **CallRail text messages list media** (List). Download a media file attached to an MMS in a CallRail text conversation. Returns the raw media file content for immediate download rather than a JSON object; media locations are short-lived. Required: account_id, conversation_id, and media_number.
- **List all CallRail integrations** (List). List integrations (Webhooks, Custom, Google Analytics, Slack, etc.) configured for companies in a CallRail account. Returns: id, type, state, config. Required: account_id.

- **Create a CallRail integration** (Create). Create and activate an integration for a CallRail company. Only the Webhooks and Custom (cookie capture) types can be created through the API; a company can have one integration of each type. Returns: id, type, state, config, signing_key. Required: account_id, type, company_id, config.

- **Get single CallRail integration by ID** (Get). Get a single CallRail integration by id. Returns: id, type, state, config. Required: account_id, id.

- **CallRail integrations bulk delete** (Delete). Disable a single CallRail integration by id (despite the method name, this acts on one integration). The integration is disabled rather than removed. Returns an empty 204 response on success. Required: account_id, id.

- **List all CallRail integration filters** (List). List all integration filters (integration triggers) configured for a CallRail company. Returns each filter's id, company_id, integration_id, tracker_ids, call_type, min_duration, max_duration, lead_status, and associated integration. Required: company_id.
- **Create a CallRail integration filter** (Create). Create a new integration filter that limits which calls activate an integration in a CallRail company. Returns the created filter with id, company_id, integration_id, tracker_ids, call_type, min_duration, max_duration, lead_status, and its associated integration.
- **Get single CallRail integration filter by ID** (Get). Get a single integration filter by id in a CallRail company. Returns: id, page, per_page, total_pages, total_records. Required: id.
- **CallRail integration filters bulk update** (Update). Update an existing integration filter by id, e.g. to change call_type or min_duration. Returns the updated filter with id, company_id, integration_id, tracker_ids, call_type, min_duration, max_duration, lead_status, and its associated integration. Required: id.
- **List all CallRail notifications** (List). List all notifications in a CallRail account. Returns paginated notification records including id, name, user_id, alert_type, company_id, tracker_id, call_enabled, sms_enabled, and the send_desktop/send_email/send_push delivery flags. Required: account_id.
- **Create a CallRail notification** (Create). Create a notification in CallRail that alerts a user about calls and/or text messages for a company or tracker. Returns the created notification including id, user_id, alert_type, company_id, company_name, tracker_id, tracker_name, call_enabled, sms_enabled, and the send_desktop/send_email/send_push delivery flags. Required: account_id.
- **CallRail notifications bulk update** (Update). Update a notification's settings in CallRail by id. Only certain settings may be modified; to change the notification's scope or user, delete the record and create a new one. Returns the updated notification including id, user_id, alert_type, company_id, company_name, tracker_id, tracker_name, call_enabled, sms_enabled, and the send_desktop/send_email/send_push delivery flags. Required: id.
- **CallRail notifications bulk delete** (Delete). Delete a notification in CallRail by id. Returns an empty 204 response on success. Required: id.
- **List all CallRail caller IDS** (List). List outbound caller IDs (external phone numbers registered to show as caller ID on outbound calls) in a CallRail account. Returns: id, phone_number, name, verified, created_at, validation_code. Required: account_id.

- **Create a CallRail caller ID** (Create). Register an external phone number as an outbound caller ID for a CallRail company. CallRail immediately places a verification call to the number; the recipient must enter the returned validation_code on the keypad. Repeat the request if the call is missed. Returns: id, phone_number, name, verified, created_at, validation_code. Required: account_id, phone_number, name, company_id.

- **Get single CallRail caller ID by ID** (Get). Get a single outbound caller ID by id. Returns: id, phone_number, name, verified, created_at, validation_code. Required: account_id, id.

- **Delete a CallRail caller ID by ID** (Delete). Delete an outbound caller ID by id. Returns an empty 204 response on success. Required: account_id, id.

- **List all CallRail summary emails** (List). List summary email subscriptions (periodic daily, weekly or monthly activity emails sent to users) in a CallRail account. Non-administrator API keys only see their own subscriptions. Returns: id, scope, frequency, filters, config, user. Required: account_id.

- **Create a CallRail summary email** (Create). Create a summary email subscription for a CallRail user, scoped to one company (company_id) or to every company the user can access. Only administrators can create subscriptions for other users. Returns: id, scope, frequency, filters, config, user. Required: account_id, user_id, frequency.

- **Get single CallRail summary email by ID** (Get). Get a single summary email subscription by id. Administrators can read any user's subscription; other users only their own. Returns: id, scope, frequency, filters, config, user. Required: account_id, id.

- **CallRail summary emails bulk update** (Update). Update a single summary email subscription by id (despite the method name, this acts on one subscription). Only frequency and config can change; to change the user or scope, delete and recreate. Returns: id, scope, frequency, filters, config, user. Required: account_id, id.

- **CallRail summary emails bulk delete** (Delete). Delete a single summary email subscription by id, unsubscribing the user from future deliveries (despite the method name, this acts on one subscription). Returns an empty 204 response on success. Required: account_id, id.

- ...and 9 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
