Metricairn
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| METRICAIRN_API_URL | Yes | The URL of the Metricairn API server, e.g. http://localhost:8000 | |
| METRICAIRN_READ_KEY | Yes | Your Metricairn read key, e.g. alr_YOUR_READ_KEY |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_metricsA | Catalog of available metrics and dimensions. Start here to discover what you can query. |
| query_metricsC | Time series for a metric. metric: visitors|pageviews|sessions|events|revenue. interval: day|hour. |
| breakdownC | Top values for a dimension: path, referrer, utm_source, utm_medium, utm_campaign, device, browser, os, country, event. |
| list_dimension_valuesA | Discover which values a dimension actually has (e.g. real page paths, real UTM sources). |
| funnel_reportA | Conversion report for a funnel (match by name or id). Steps must be completed in order. Pass segment_by (e.g. 'device', 'utm_source') to compare conversion per segment — a visitor's segment is the dimension value on their entry-step event. |
| revenue_attributionC | Revenue total, transactions, revenue-per-visitor, and breakdown by traffic source. |
| compareB | Compare an equal-length previous period: traffic, custom events and revenue. Changes are descriptive. Null percent change means the previous baseline was zero. |
| detect_anomaliesB | Unusual spikes/dips (screening signals, not significance tests) in pageviews and revenue (robust historical scores). |
| askA | Answer a natural-language analytics question and store its text in project history. Common questions use a deterministic planner; a configured API-side AI provider may receive the question, schema, project identifier, and dates for validated SQL. Unsupported questions return an explicit fallback. Avoid sensitive question text. days sets the default window (1..366); recognized date phrases may override it. |
| integration_healthA | Check collection coverage and recency for pageviews, custom events, funnels, and revenue. Run this when results are empty or unexpected; missing collection limits interpretation. |
| get_realtimeA | Live activity: visitors, pageviews and top pages in the last 30 minutes. |
| mcp_usageB | How AI agents are using this MCP server: tool-call counts, error rates, and recent questions. |
| list_notesB | Timeline annotations: launches, deploys, campaigns the founder (or an agent) logged. Newest first. |
| run_queryA | Execute a typed analytics plan without AI or SQL. Fields: metric (pageviews|visitors|sessions|events|event_count), mode (total|timeseries|breakdown), event_name (required for event_count), dimension (for breakdown), interval (day|hour), date_from/date_to (ISO UTC), limit (1..100), filters ([{field, values}]). Filter fields: path, utm_source, utm_medium, utm_campaign, device, browser, os, country, event. Filters are ANDed; values within each filter are ORed. Returns resolved plan and caveats. Example: {"metric":"event_count","event_name":"signup","mode":"breakdown","dimension":"device"}. |
| investigate_changeA | Investigate changes in pageviews, events, or event_count (requires event_name). Returns equal-duration comparison, additive source/device/browser/path changes, coverage, timeline notes, caveats and next checks. This describes associations, not causes. Use date_from/date_to together to fix an exact window; otherwise days determines it. |
| list_goalsA | Discover named custom-event conversion goals and their IDs. |
| goal_reportB | Period conversion: unique visitors with a pageview then this goal. Reports denominator, repeated occurrences and missing identity. Use date_from/date_to together for an exact window; otherwise days determines it. |
| retention_reportA | Weekly first-observed visitor cohorts, weeks 0..12. Incomplete cells are null; identities and acquisition history affect accuracy. event_name optionally restricts returning activity, not the first-observed cohort definition. Use date_from/date_to together for an exact window; otherwise days determines it. |
| list_investigationsA | Recent saved evidence records, their IDs and human review status. |
| get_investigationB | Read an immutable saved investigation and its separate human review note. |
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 20 tools
Several tools overlap in querying and comparison capabilities, notably query_metrics vs run_query vs ask, and compare vs investigate_change vs detect_anomalies. Descriptions do clarify intended use, but an agent must read carefully to avoid misselection. Distinct areas like realtime, notes, health, and usage are clearer.
All names use lowercase snake_case, but the pattern is inconsistent: list_, get_, query_, run_, bare verbs like compare/ask/detect_anomalies, and noun phrases ending in _report. It remains readable but lacks a single predictable verb_noun convention.
At 20 tools, the server sits at the heavy end of the reasonable range for an analytics MCP. Many specialized reports justify their place, but the overlap among query and comparison tools suggests some consolidation is possible.
The surface broadly covers read-oriented analytics: discovery, queries, breakdowns, funnels, revenue, goals, retention, anomalies, investigations, health, realtime, and notes. Minor gaps remain, such as no tool to create/update timeline notes and no list_funnels to discover funnel names/IDs for funnel_report.