Skip to main content
Glama

Get campaign statistics

campaign_stats
Read-onlyIdempotent

Retrieve private campaign performance statistics for the selected time window.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
windowNo30d
project_idYes
campaign_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description is consistent with them — no contradiction. It adds modest context beyond annotations: 'private' implies access restrictions, and 'selected time window' scopes the result set. It doesn't address data freshness, rate limits, or error behavior, keeping it at 3.

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?

A single tight sentence with the action verb front-loaded and zero filler. Every word earns its place; appropriately sized for a modest read-only tool with a small parameter set.

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

Completeness3/5

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

An output schema exists and the annotations carry the safety profile, so the description needn't explain return values or side effects. However, with 0% schema coverage, real gaps remain: the role of the required-but-nullable project_id, acceptable window formats, and what 'performance statistics' actually include. Adequate core purpose, but not complete enough to guarantee correct first-try invocation.

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

Parameters2/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, and it barely does. 'Selected time window' sheds some light on the window parameter, but nothing explains project_id (required yet nullable with a null default — genuinely ambiguous), what window value formats are accepted, or how the two required ids relate. The description fails to close the coverage gap.

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 uses a specific verb ('Retrieve') and a specific resource ('private campaign performance statistics'), with a scope qualifier ('for the selected time window'). This clearly states what the tool does. It stops short of a 5 because it doesn't explicitly differentiate it from analytics siblings like landing.get_analytics.

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

Usage Guidelines3/5

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

The usage context is implied: an agent would infer this is the tool for campaign performance numbers over a time period. The word 'private' adds a mild scoping hint (access-restricted vs public stats), but there is no explicit when-to-use guidance, no named alternatives, and no exclusions relative to the other reporting tools in the sibling list.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.1/5.0
Disambiguation3/5

Domain prefixes (crm., cap_table., landing.) clearly separate broad modules, and most tools target a specific resource and action. However, within modules there are boundary overlaps—crm.add_contact_note vs crm.log_activity and cap_table.dilution_preview vs cap_table.simulate_raise—where descriptions must be read carefully to avoid a wrong pick.

Naming Consistency3/5

The dominant pattern is module.verb_noun (e.g., crm.create_lead, cap_table.update_stakeholder), which is clear and readable. But a subset of top-level tools uses object_verb with flat underscores (e.g., shortlink_create, qr_generate, campaign_archive) and one outlier (campaign_stats) breaks the verb pattern, so conventions are mixed.

Tool Count1/5

86 tools is an extreme surface for any single MCP server, well past the 50+ threshold that makes coherent selection impractical. Even though the features span several business domains, this would be far more usable split into focused servers per module.

Completeness4/5

The covered domains are broadly complete: cap table, CRM, incorporation, landing, projects, sparkroom, tasks, and validation all have read/write workflows with few dead ends. Minor gaps remain (no campaign listing/update, no branding palette delete/update, no contact deletion) but none of them blocks the main product workflows.

Resources