plausible-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DO_NOT_TRACK | No | Set to `1` to disable anonymous telemetry. | 0 |
| PLAUSIBLE_API_KEY | No | Your Plausible Stats/Sites API token. Required unless passed via the tool `token` argument. | |
| PLAUSIBLE_BASE_URL | No | Base URL for self-hosted Plausible. | https://plausible.io |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_aggregate_statsB | Get aggregate website performance totals: visitors, pageviews, bounce_rate, and visit_duration. Args: site_id: Domain name of the site in Plausible (e.g. 'surendranb.com', 'freeinference.dev'). date_range: Time period ('day', 'today', 'yesterday', '7d', '30d', 'month', '6mo', '12mo', or 'YYYY-MM-DD,YYYY-MM-DD'). Default '30d'. metrics: Optional list of metrics (e.g. ['visitors', 'pageviews', 'bounce_rate', 'visit_duration', 'visits']). Defaults to standard 4 metrics. token: Optional Plausible API token. If omitted, uses PLAUSIBLE_API_KEY environment variable. |
| get_breakdownA | Get metrics breakdown by dimension: pages, sources, countries, browsers, operating systems, or devices. Args: site_id: Domain name of the site in Plausible (e.g. 'surendranb.com'). property_name: Dimension to segment by. Accepts aliases: 'page', 'source', 'country', 'browser', 'os', 'device', 'entry_page', 'exit_page', 'city', 'region', or full Plausible names like 'event:page', 'visit:source'. date_range: Time period ('day', '7d', '30d', 'month', '6mo', '12mo', or 'YYYY-MM-DD,YYYY-MM-DD'). Default '30d'. limit: Maximum number of rows to return (default 20, max 100). token: Optional Plausible API token. If omitted, uses PLAUSIBLE_API_KEY environment variable. |
| get_realtime_visitorsA | Get the current count of active real-time visitors on the website right now. Args: site_id: Domain name of the site in Plausible (e.g. 'surendranb.com'). token: Optional Plausible API token. If omitted, uses PLAUSIBLE_API_KEY environment variable. |
| get_timeseriesA | Get historical timeseries trendlines (visitors, pageviews) over time for plotting charts. Args: site_id: Domain name of the site in Plausible (e.g. 'surendranb.com'). date_range: Time period ('day', '7d', '30d', 'month', '6mo', '12mo', or 'YYYY-MM-DD,YYYY-MM-DD'). Default '30d'. interval: Aggregation bucket: 'date' (daily) or 'month' (monthly). Default 'date'. token: Optional Plausible API token. If omitted, uses PLAUSIBLE_API_KEY environment variable. |
| doctorA | Test connectivity to Plausible Cloud or self-hosted instance (PLAUSIBLE_BASE_URL) and validate API token. Args: token: Optional Plausible API token to test. If omitted, tests PLAUSIBLE_API_KEY from environment. |
| skills_listA | List available Plausible Analytics operational skills and playbooks. |
| skill_readA | Fetch guidance and analytical playbooks for Plausible Analytics by name. Args: name: Name of skill to read (e.g. 'plausible-overview', 'analytics-recipes'). Call skills_list() to view all. |
| check_for_updatesA | Check PyPI for newer versions of plausible-mcp and get upgrade instructions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each analytics tool targets a clearly different output shape: totals (get_aggregate_stats), segmented rows (get_breakdown), trendlines (get_timeseries), and a live counter (get_realtime_visitors). The meta-tools are equally separable: skills_list vs skill_read differ by enumeration vs fetch, check_for_updates covers package versioning while doctor covers connectivity/auth. No two tools could plausibly be confused for the same task.
The dominant pattern is verb_noun (get_aggregate_stats, get_breakdown, get_timeseries, get_realtime_visitors, check_for_updates). The two skill tools invert to noun_verb (skills_list, skill_read) and 'doctor' is a bare noun, so there are minor deviations but everything remains readable and predictable.
Eight tools is a well-scoped set for an analytics server, and each one earns its place. However, three of the eight (skills_list, skill_read, check_for_updates, doctor) are operational/meta overhead, leaving only four actual analytics queries, which is a bit thin on the core surface.
The core read path (totals, breakdowns, timeseries, realtime) is covered, but the Plausible API surface is notably partial: no site/property listing, no goal or custom-event conversion metrics, no funnel or comparison queries, and no filter/segment parameters on breakdowns beyond a single dimension. Agents can work around some of this via date_range aliases but will hit dead ends on conversions and multi-dimensional filtering.