Fathom Analytics MCP by usefulapi
Server Details
Query Fathom Analytics sites, stats, current visitors and events, and manage sites and events.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
16 toolsfathom_clear_event_currencyClear an event's currencyDestructiveIdempotentInspect
Remove the currency set for an event, so it uses the site's default again. The event and its completion data stay. Needs a manage token for the site. DELETE /sites/{site_id}/events?name=.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| event_name | Yes | The event's name exactly as tracked (fathom_list_events lists them). |
fathom_create_milestoneCreate a milestoneInspect
Add a milestone (a dated annotation shown on the site's reports, e.g. a launch or campaign start). Needs a manage token for the site. POST /sites/{site_id}/milestones.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Milestone name (up to 30 characters), e.g. Redesign launch. | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| milestone_date | Yes | The milestone's date, YYYY-MM-DD. |
fathom_create_siteCreate a siteInspect
Create a new site in the Fathom account (returns its id, used in the tracking code). Needs an Admin token. Sharing private needs share_password; multi_domain true needs multi_domain_option. POST /sites.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Site name (up to 255 characters; need not match the URL). | |
| sharing | No | Dashboard sharing: none (default), private (password) or public. | |
| timezone | No | Reporting timezone as a TZ database name, e.g. America/New_York, Europe/London, UTC. | |
| multi_domain | No | true = the site may track multiple domains. | |
| share_password | No | Required when sharing is private: the password for the shared dashboard. | |
| multi_domain_option | No | Required when multi_domain is true: report domains combined or separate. |
fathom_delete_milestoneDelete a milestoneDestructiveIdempotentInspect
Permanently delete a milestone (only the annotation; traffic data is not touched). Cannot be undone. Needs a manage token for the site. DELETE /sites/{site_id}/milestones/{milestone_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| milestone_id | Yes | The milestone id (a UUID, from fathom_list_milestones). |
fathom_get_accountGet the accountRead-onlyInspect
The Fathom account that owns the API token: id, name and email. Needs an Admin token (the * scope). GET /account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
fathom_get_aggregationRun a traffic or event reportRead-onlyInspect
Fathom's custom report (the dashboard's numbers): aggregate pageviews or one event over a date range, optionally grouped by date and/or fields and filtered. Pageviews: aggregates visits (unique site visits), uniques (unique page visits), pageviews, avg_duration (seconds), bounce_rate. Events (entity event + event_name): conversions, unique_conversions, value (in cents). Examples: top pages = field_grouping [pathname], sort_by pageviews:desc; traffic sources = [referrer_source] or [referrer_hostname]; AI referrals = [ai_source]; daily trend = date_grouping day. All numbers come back as strings. Dates are in the site's timezone; hour grouping only for ranges up to 7 days. Grouped reports return at most 500 rows unless limit is set (max 1000, no paging), so narrow with filters or dates. Data before March 2021 cannot be grouped/filtered. GET /aggregations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Row cap, 1-1000 (default 500 when grouping by fields). | |
| entity | Yes | pageview = site traffic; event = one event's conversions (needs event_name). | |
| date_to | No | End, YYYY-MM-DD (end of day) or "YYYY-MM-DD HH:MM:SS", in the site's timezone. Default: now. | |
| filters | No | Filters, all applied (AND). Example: [{"property":"country_code","operator":"is","value":"GB"}]. | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| sort_by | No | "<field>:asc|desc" with a field from aggregates or field_grouping (or timestamp with date_grouping), e.g. pageviews:desc. | |
| date_from | No | Start, YYYY-MM-DD (start of day) or "YYYY-MM-DD HH:MM:SS", in the site's timezone. Default: the first recorded data. | |
| aggregates | Yes | Metrics. pageview: visits, uniques, pageviews, avg_duration, bounce_rate. event: conversions, unique_conversions, value. | |
| event_name | No | For entity event: the event's name, as listed by fathom_list_events. | |
| date_grouping | No | Group by time (omit for one total). hour only for ranges up to 7 days. | |
| field_grouping | No | Group by these fields, e.g. [pathname] or [referrer_source, utm_campaign]. |
fathom_get_current_visitorsGet current visitorsRead-onlyInspect
Live visitors on a site right now: the total, and with detailed true the top 150 pages (hostname, pathname, total) and top 150 referrers. GET /current_visitors.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| detailed | No | true = also the top pages and referrers (default false: only the count). |
fathom_get_milestoneGet a milestoneRead-onlyInspect
One milestone: id, name, milestone_date, created_at, updated_at. GET /sites/{site_id}/milestones/{milestone_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| milestone_id | Yes | The milestone id (a UUID, from fathom_list_milestones). |
fathom_get_siteGet a siteRead-onlyInspect
One site: id, name, sharing (none/private/public), timezone and created_at. GET /sites/{site_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. |
fathom_get_tokenGet the API token's permissionsRead-onlyInspect
The connected API token's name, permissions (abilities: "*" = Admin, "all-sites-readonly", or per-site read: / manage:) and timestamps. The secret value is never returned. Good first call to know which tools will work. GET /token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
fathom_list_eventsList a site's eventsRead-onlyInspect
List a site's events (conversions/goals): every event name the site has tracked plus events with a currency set, sorted by name. Identify events by name (use it as event_name in fathom_get_aggregation); the id is only a paging cursor. Paged: pass next.starting_after. GET /sites/{site_id}/events.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items per page, 1-100 (default 10). | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| ending_before | No | Page backward from this object id (newest first). Not together with starting_after. | |
| starting_after | No | Page forward: pass next.starting_after from the previous reply (an object id). |
fathom_list_milestonesList a site's milestonesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items per page, 1-100 (default 10). | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| ending_before | No | Page backward from this object id (newest first). Not together with starting_after. | |
| starting_after | No | Page forward: pass next.starting_after from the previous reply (an object id). |
fathom_list_sitesList sitesRead-onlyInspect
List the sites the token can read (id, name, sharing, timezone, created_at), oldest first. The site id is what every report tool takes. Needs an Admin or all-sites read-only token; a token scoped to a single site cannot list sites, so use fathom_get_site with that site id instead. Paged: pass next.starting_after. GET /sites.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items per page, 1-100 (default 10). | |
| ending_before | No | Page backward from this object id (newest first). Not together with starting_after. | |
| starting_after | No | Page forward: pass next.starting_after from the previous reply (an object id). |
fathom_set_event_currencySet an event's currencyDestructiveIdempotentInspect
Set the currency of an event's value by event name (works before the event is first tracked). Needs a manage token for the site. POST /sites/{site_id}/events/currency.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| currency | Yes | dollar, pound, euro, yuan, peso, shekel, yen, won, hryvnia, franc, rupee, integer (a plain number) or none. | |
| event_name | Yes | The event's name exactly as tracked (up to 255 characters; fathom_list_events lists them). |
fathom_update_milestoneUpdate a milestoneDestructiveIdempotentInspect
Rename or re-date a milestone (both name and milestone_date are required). Needs a manage token for the site. POST /sites/{site_id}/milestones/{milestone_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Milestone name (up to 30 characters), e.g. Redesign launch. | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| milestone_id | Yes | The milestone id (a UUID, from fathom_list_milestones). | |
| milestone_date | Yes | The milestone's date, YYYY-MM-DD. |
fathom_update_siteUpdate a siteDestructiveIdempotentInspect
Change a site's name, sharing, timezone or multi-domain setting (send only what changes). Changing the timezone changes how reports are bucketed. Needs a manage token for the site. POST /sites/{site_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New site name (up to 255 characters). | |
| sharing | No | Dashboard sharing: none, private (needs share_password) or public. | |
| site_id | Yes | The site id, the same string as in the tracking code (e.g. CDBUGS). fathom_list_sites lists them. | |
| timezone | No | Reporting timezone as a TZ database name, e.g. America/New_York, Europe/London, UTC. | |
| multi_domain | No | true = the site may track multiple domains. | |
| share_password | No | Required when setting sharing to private. | |
| multi_domain_option | No | Required when multi_domain is true: combined or separate. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
- First observed
fathom_clear_event_currency - First observed
fathom_create_milestone - First observed
fathom_create_site - First observed
fathom_delete_milestone - First observed
fathom_get_account - First observed
fathom_get_aggregation - First observed
fathom_get_current_visitors - First observed
fathom_get_milestone - First observed
fathom_get_site - First observed
fathom_get_token - First observed
fathom_list_events - First observed
fathom_list_milestones - First observed
fathom_list_sites - First observed
fathom_set_event_currency - First observed
fathom_update_milestone - First observed
fathom_update_site
Related MCP Connectors
Query site stats, realtime visitors, breakdowns and goals from Plausible Analytics.
Read Simple Analytics stats: pageviews, visitors, pages, referrers, events and data exports.
61Create projects and read their web analytics: views, referrers, countries, custom events.
Query your Parse.ly content analytics: top content, referrers, campaigns, trends and real-time data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes Umami analytics (Cloud or self-hosted) as read-only tools for querying website stats, pageviews, metrics, and active visitors.244 npmMIT
- AlicenseAqualityDmaintenanceEnables LLMs to interact with Fathom.video API for managing meeting recordings, retrieving transcripts and AI-generated summaries, searching meeting content, and accessing analytics and team data.1020 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying privacy-focused website analytics from Plausible's read-only Stats API v2, with tools for overview, timeseries, breakdown, and goal performance metrics.20 npmMIT
- AlicenseAqualityDmaintenanceAn unofficial server that allows AI assistants to access Fathom Analytics data, enabling users to retrieve account information, site statistics, events, aggregated reports, and real-time visitor tracking.580 npm4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.