Skip to main content
Glama
pghdma

CallRail MCP

by pghdma

call_timeseries

Call volume over time via CallRail's /calls/timeseries.json. One request for a trend line instead of client-side bucketing.

Instructions

Call volume over time via CallRail's /calls/timeseries.json. One request for a trend line instead of client-side bucketing.

CallRail refuses any request whose result set would exceed 200 data points. With the default daily interval that caps the window at ~200 days; use interval='week' or 'month' for longer ranges. This tool checks the limit before sending so you get a clear message instead of a raw 400.

Args: days: Lookback (default 30). Ignored if start_date given. start_date / end_date: 'YYYY-MM-DD'. Explicit dates win. company_id: Filter to one company. fields: Comma-separated metrics. Valid: total_calls, missed_calls, answered_calls, abandoned_calls, first_time_callers, average_duration, formatted_average_duration, leads. interval: Bucket size. One of 'hour', 'day', 'week', 'month', 'year'. Defaults to CallRail's own choice (daily) when omitted. account_id: Auto-resolves if omitted.

Returns: JSON string with total_results and data[], one entry per bucket ({key/date, }).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo
fieldsNo
end_dateNo
intervalNo
account_idNo
company_idNo
start_dateNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.2
    • addedInput schema / properties / interval
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Interval"
      +}
  2. Addedv1.0.4

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations available, the description carries the full behavioral burden and does so thoroughly: it discloses the 200-point limit, the pre-flight check that avoids raw 400s, date precedence rules, default interval behavior, account auto-resolution, and the return shape. Nothing in the text contradicts the annotations.

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

Conciseness5/5

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

Despite covering seven params, the description is organized with a short lead, a limit warning, an Args block, and a Returns block. Each line adds useful information, and the most decision-relevant behavior (limit and interval workaround) is front-loaded.

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?

For a seven-parameter time-series tool, the description covers valid values, date precedence, limits, filtering, and expected output. An agent has enough information to construct a correct call and to reason about failures before invoking.

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 explain every parameter, and it does: days default/ignored when start_date given, explicit YYYY-MM-DD dates, company filtering, valid field names, interval choices, and auto-resolved account_id. This is exactly the compensation needed for a bare schema.

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

Purpose4/5

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

The description identifies a specific resource ('CallRail's /calls/timeseries.json') and a clear purpose: call volume over time as a trend line. It is easy to tell this is a time-series aggregation tool, though it does not explicitly contrast itself with sibling tools such as call_summary or call_stats.

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 clear context for when the tool is appropriate ('One request for a trend line instead of client-side bucketing') and practical guidance on interval options for longer windows. It does not explicitly list when-not-to-use or name alternative sibling tools, so it falls short of a 5.

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