Fathom Analytics MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.4.3 · published by io.usefulapi
Query Fathom Analytics sites, stats, current visitors and events, and manage sites and events.
16 tools: 5 can delete or cancel things, 2 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http fathom-analytics https://fathom-analytics.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 5Claude Code: deny
fathom_clear_event_currencyRemove the currency set for an event, so it uses the site's default again.No findings
Why it is in this group
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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=.
Annotations the server declares
- title: Clear an event's currency
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
fathom_delete_milestonePermanently delete a milestone (only the annotation; traffic data is not touched).No findings
Why it is in this group
- The name "fathom_delete_milestone" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Delete a milestone
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
fathom_set_event_currencySet the currency of an event's value by event name (works before the event is first tracked).No findings
Why it is in this group
- The name "fathom_set_event_currency" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Set an event's currency
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
fathom_update_milestoneRename or re-date a milestone (both name and milestone_date are required).No findings
Why it is in this group
- The name "fathom_update_milestone" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update a milestone
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
fathom_update_siteChange a site's name, sharing, timezone or multi-domain setting (send only what changes).No findings
Why it is in this group
- The name "fathom_update_site" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update a site
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Changes things 2Claude Code: ask
fathom_create_milestoneAdd a milestone (a dated annotation shown on the site's reports, e.g.No findings
Why it is in this group
- The name "fathom_create_milestone" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create a milestone
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
fathom_create_siteCreate a new site in the Fathom account (returns its id, used in the tracking code).No findings
Why it is in this group
- The name "fathom_create_site" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create a site
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 9Claude Code: allow
fathom_get_accountThe Fathom account that owns the API token: id, name and email.No findings
Why it is in this group
- The name "fathom_get_account" says "get": a word for reading.
Description, as the server wrote it The Fathom account that owns the API token: id, name and email. Needs an Admin token (the * scope). GET /account.
Annotations the server declares
- title: Get the account
- readOnlyHint: true
- openWorldHint: true
fathom_get_aggregationFathom'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.No findings
Why it is in this group
- The name "fathom_get_aggregation" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Run a traffic or event report
- readOnlyHint: true
- openWorldHint: true
fathom_get_current_visitorsLive visitors on a site right now: the total, and with detailed true the top 150 pages (hostname, pathname, total) and top 150 referrers.No findings
Why it is in this group
- The name "fathom_get_current_visitors" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get current visitors
- readOnlyHint: true
- openWorldHint: true
fathom_get_milestoneOne milestone: id, name, milestone_date, created_at, updated_at.No findings
Why it is in this group
- The name "fathom_get_milestone" says "get": a word for reading.
Description, as the server wrote it One milestone: id, name, milestone_date, created_at, updated_at. GET /sites/{site_id}/milestones/{milestone_id}.
Annotations the server declares
- title: Get a milestone
- readOnlyHint: true
- openWorldHint: true
fathom_get_siteOne site: id, name, sharing (none/private/public), timezone and created_at.No findings
Why it is in this group
- The name "fathom_get_site" says "get": a word for reading.
Description, as the server wrote it One site: id, name, sharing (none/private/public), timezone and created_at. GET /sites/{site_id}.
Annotations the server declares
- title: Get a site
- readOnlyHint: true
- openWorldHint: true
fathom_get_tokenThe connected API token's name, permissions (abilities: "*" = Admin, "all-sites-readonly", or per-site read:<id> / manage:<id>) and timestamps.No findings
Why it is in this group
- The name "fathom_get_token" says "get": a word for reading.
Description, as the server wrote it The connected API token's name, permissions (abilities: "*" = Admin, "all-sites-readonly", or per-site read:<id> / manage:<id>) and timestamps. The secret value is never returned. Good first call to know which tools will work. GET /token.
Annotations the server declares
- title: Get the API token's permissions
- readOnlyHint: true
- openWorldHint: true
fathom_list_eventsList a site's events (conversions/goals): every event name the site has tracked plus events with a currency set, sorted by name.No findings
Why it is in this group
- The name "fathom_list_events" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List a site's events
- readOnlyHint: true
- openWorldHint: true
fathom_list_milestonesList a site's milestones (dated annotations on reports, such as a redesign launch or a campaign start), oldest first.No findings
Why it is in this group
- The name "fathom_list_milestones" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List a site's milestones
- readOnlyHint: true
- openWorldHint: true
fathom_list_sitesList the sites the token can read (id, name, sharing, timezone, created_at), oldest first.No findings
Why it is in this group
- The name "fathom_list_sites" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List sites
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.4.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http fathom-analytics https://fathom-analytics.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__fathom-analytics__fathom_get_token",
"mcp__fathom-analytics__fathom_get_account",
"mcp__fathom-analytics__fathom_list_sites",
"mcp__fathom-analytics__fathom_get_site",
"mcp__fathom-analytics__fathom_list_events",
"mcp__fathom-analytics__fathom_list_milestones",
"mcp__fathom-analytics__fathom_get_milestone",
"mcp__fathom-analytics__fathom_get_aggregation",
"mcp__fathom-analytics__fathom_get_current_visitors"
],
"ask": [
"mcp__fathom-analytics__fathom_create_site",
"mcp__fathom-analytics__fathom_create_milestone"
],
"deny": [
"mcp__fathom-analytics__fathom_update_site",
"mcp__fathom-analytics__fathom_set_event_currency",
"mcp__fathom-analytics__fathom_clear_event_currency",
"mcp__fathom-analytics__fathom_update_milestone",
"mcp__fathom-analytics__fathom_delete_milestone"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as fathom-analytics. Review it before you use it.