Skip to main content
Glama
pghdma

CallRail MCP

by pghdma

create_tracker

⚠️ Create a new tracking phone number (tracker). THIS COSTS MONEY.

Instructions

⚠️ Create a new tracking phone number (tracker). THIS COSTS MONEY.

CallRail charges per provisioned number. Typical pricing as of 2026:

  • Local numbers: ~$3/month each

  • Toll-free (8XX): ~$3-5/month each

  • Session pools: charged per number × pool_size (so pool_size=8 = 8x)

  • Plus per-minute usage (~$0.05/min on answered calls)

Most plans bundle 5-10 numbers; provisioning beyond your bundle adds overage charges. Some plans prorate partial-month usage, so creating and immediately deleting can still produce a small charge depending on your contract.

You must pass confirm_billing=True to actually create. This guards against accidental provisioning when an AI is exploring tools.

Args: name: Display name for the tracker (e.g. "Google Ads Call Extension"). company_id: 'COM...' id of the company this tracker belongs to. destination_number: Where calls forward to, e.g. "+14129548337". confirm_billing: REQUIRED. Set True to acknowledge the per-number cost. Returns an error envelope if False (default). type: 'source' (single number tied to one traffic source) or 'session' (DNI pool that swaps numbers per visitor). Default 'source'. source_type: For type='source', which traffic source. One of VALID_SOURCE_TYPES: 'all', 'landing_url', 'landing_params', 'offline', 'web_referrer', 'direct', 'search', 'google_ad_extension' (what Google Ads call extensions use), 'mobile_ad_extension', 'google_my_business', plus the production-observed 'facebook_all' and 'bing_all'. Ignored for type='session'. area_code: 3-digit area code to provision the local number from (e.g. '412'). Ignored if toll_free=True. toll_free: If True, provision an 8XX toll-free number instead. pool_size: For type='session' only. How many numbers in the DNI pool. CallRail requires 4-50; each pool number is billed separately, so this multiplies your monthly cost. whisper_message: Spoken to the agent answering the call so they know which marketing source it came from. recording_enabled: Record the call audio. Default True. greeting_text: Optional automated greeting text-to-speech. sms_enabled: Allow this number to receive/send SMS. Default True. account_id: Auto-resolves if omitted.

Returns the created tracker including its newly-provisioned tracking_numbers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
typeNosource
area_codeNo
pool_sizeNo
toll_freeNo
account_idNo
company_idYes
sms_enabledNo
source_typeNoall
greeting_textNo
confirm_billingNo
whisper_messageNo
recording_enabledNo
destination_numberYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It transparently discloses the financial impact, the need for explicit confirmation, the per-number billing multiplier for pool_size, the conditional ignoring of area_code for toll_free, and the return value. It also notes potential proration. These are critical behavioral traits beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: it starts with a prominent warning and cost explanation, then a mandatory billing confirmation note, followed by a parameter-by-parameter breakdown. It is front-loaded with the most critical information. While verbose, each sentence carries useful content, and the organization (warning → requirements → parameter details) aids comprehension. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 params, output schema present), the description is exhaustive. It covers all parameters, cost implications, conditional behaviors, and the return value. It also notes that account_id auto-resolves if omitted. Nothing an agent needs to call it correctly is missing; even the return statement is explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully, and it does. Every one of the 14 parameters is explained with meaning, defaults, constraints, and cross-relationships (e.g., source_type ignored for session, area_code ignored for toll_free, pool_size multiplied cost). Examples like 'Google Ads Call Extension' for name and valid source types are provided, adding substantial semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific action: 'Create a new tracking phone number (tracker).' It explicitly names the resource and distinguishes it from sibling operations (list, update, delete) by its creation purpose. The verb-resource pairing is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: it warns that creation costs money, mandates confirm_billing=True for actual creation, and explains the source vs. session type choice. It does not explicitly name alternative tools to use instead, but the cost and confirmation guidance strongly implies when this should be invoked. The instruction 'You must pass confirm_billing=True to actually create' is a concrete usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.