Skip to main content
Glama

Fathom Analytics MCP by usefulapi

List a site's milestones

fathom_list_milestones
Read-only

List a site's milestones (dated annotations on reports, such as a redesign launch or a campaign start), oldest first. Paged: pass next.starting_after. GET /sites/{site_id}/milestones.

Input Schema

NameRequiredDescriptionDefault
limitNoItems per page, 1-100 (default 10).
site_idYesThe site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them.
ending_beforeNoPage backward from this object id (newest first). Not together with starting_after.
starting_afterNoPage forward: pass next.starting_after from the previous reply (an object id).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely useful behavior beyond that: default ordering ('oldest first'), the pagination cursor mechanism, and the underlying REST path GET /sites/{site_id}/milestones. It stops short of return-field or rate-limit detail, but the annotations carry the safety profile.

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?

Three compact sentences: purpose/definition first, then paging, then the endpoint. No filler, no redundancy, and the most decision-relevant information is front-loaded.

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

Completeness4/5

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

For a paged read-only list tool with no output schema, the description covers ordering, cursor-based paging, and the endpoint — enough to call it correctly. The only gap is the shape of returned milestone objects, which an agent could recover via the sibling fathom_get_milestone.

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

Parameters3/5

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

Schema description coverage is 100%, with limit, site_id, ending_before and starting_after all documented in the schema itself. The description repeats the paging cursor ('next.starting_after') and the site_id path segment, adding no semantics the schema lacks. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

States a specific verb (list) and resource (a site's milestones), then defines the domain term inline as 'dated annotations on reports, such as a redesign launch or a campaign start'. That definition plus the required site_id and ordering ('oldest first') clearly distinguishes it from the singular fathom_get_milestone and the unrelated fathom_list_events/fathom_list_sites siblings.

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 description implies the listing use case and gives concrete paging guidance ('Paged: pass next.starting_after'), which is actionable. However, it never states when to use this instead of fathom_get_milestone for a single record, nor any preconditions such as needing a valid site id from fathom_list_sites beyond what the schema already says.

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.