@mitr-analytics/mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MITR_API_KEY | Yes | Your Mitr API key. Create it in the dashboard under Settings → API keys & AI assistants → Create key. | |
| MITR_API_BASE_URL | No | The base URL for the Mitr API. Only set this if you were told to. | https://api.mitranalytics.dev |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_appsA | List every app/site registered in your Mitr workspace, with each app's siteId (needed by get_app_report and get_recent_events), name, platform, and connection status. |
| add_appA | Register a new app/site under your Mitr workspace so it can start receiving tracked events. Returns the new app's siteId. The app's SDK secret key is deliberately not returned: tell the user to copy it from the Mitr dashboard (Integration Hub, the app's card). Needs an API key created with permission to register apps; a read-only key gets a clear error. |
| get_app_reportA | Fetch a 7-day analytics report for one app: active users, KPIs (pageviews, unique visitors) with sparklines, traffic overview, acquisition (referrers/UTM/entry pages), geography, device/browser/OS breakdown, web vitals, and conversions. Structured data meant for you to analyze and summarize, not a canned report. |
| get_recent_eventsA | Fetch the most recent raw telemetry events for one app — event type, path, referrer, UTM, device/geo, and custom properties. Useful for spot-checking what's actually being tracked, alongside get_app_report's aggregated view. |
| list_funnelsA | List every saved conversion funnel in your Mitr workspace, with each funnel's id (needed by get_funnel_results), name, and step definitions. |
| get_funnel_resultsA | Compute conversion results for one funnel over a date range: entered/converted counts, conversion rate, and drop-off at each step. Defaults to the last 30 days. |
| get_alert_ruleA | Get your workspace's traffic-anomaly alert configuration (spike/drop direction, threshold %, notification channel), if one is set. Returns { rule: null } if none is configured. |
| get_billing_usageA | Get your workspace's current plan, subscription status, and quota usage (events used/limit, usage %, apps used/limit). Useful context before recommending changes that would affect event volume or app count. |
| create_funnelA | Create a funnel of 2 or more ordered steps (each a page path or a custom event) to measure conversion through. Returns the new funnel. Needs an API key with the funnels:write permission. |
| update_funnelA | Replace a funnel's name and steps. This is a full update: send every step, not only the ones that change. Needs funnels:write. Get the funnelId from list_funnels. |
| delete_funnelA | Permanently delete a funnel and its results history. Cannot be undone. Needs both funnels:write and delete permissions. Confirm with the user before calling. |
| create_qr_campaignA | Create a trackable QR campaign that sends scanners to a destination URL. Add codes per placement with add_qr_code. Returns the new campaign. Free plans allow one active campaign. Needs the qr:write permission. |
| update_qr_campaignA | Rename a QR campaign, change its destination, or change its status: 'active', 'paused' or 'archived'. Archiving stops the campaign's codes from being created and keeps its history; it is reversible with status 'active'. Needs qr:write. |
| add_qr_codeA | Add one printable code to a campaign, labelled by where it will be placed, e.g. 'Poster, main hall'. Each code is counted separately. Needs qr:write. |
| create_webhookA | Send tracked events to an https URL you control. Returns the endpoint, without its signing secret, which is copied from the dashboard. Needs webhooks:write. |
| update_webhookA | Change a webhook's URL, its event types, or switch it on or off with isActive. Needs webhooks:write. Get the endpointId from the dashboard or the webhook health tool. |
| delete_webhookA | Permanently delete a webhook endpoint and its delivery log. Cannot be undone. Needs both webhooks:write and delete. Confirm with the user before calling; to pause it instead, use update_webhook with isActive false. |
| get_workspace_overviewA | Get one summary of the whole workspace: every app's traffic, plus its webhooks, QR campaigns, funnels, and anything that needs attention. Call this first when the user asks how things are doing overall. |
| list_qr_campaignsA | List your QR campaigns with each campaign's id (needed by get_qr_campaign and the QR write tools), name, status, and scan totals. Also returns your plan's QR limits. |
| get_qr_campaignA | Get one QR campaign with its codes and per-code scan counts, to see which placement is working. Use the id from list_qr_campaigns. |
| get_webhook_healthA | For each webhook endpoint, show delivery counts by status over its recent deliveries (delivered, pending, failed, exhausted) and the latest failure with its error. Payloads are not returned. Use this when a user says their webhook is not receiving events. |
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 21 tools
Each tool targets a distinct resource and action: apps (add/list/report/events), funnels (full CRUD + results), webhooks (create/update/delete/health), QR campaigns (list/create/update/get/add_qr_code), plus workspace overview, alerts, and billing. Potentially confusable pairs are explicitly separated in descriptions (get_app_report aggregated vs get_recent_events raw; get_app_report for one app vs get_workspace_overview for all; create_qr_campaign vs add_qr_code). No two tools appear to do the same thing.
Nearly all names follow a consistent snake_case verb_noun pattern with standard verbs (list_/get_/create_/update_/delete_). The only wrinkle is 'add_app' and 'add_qr_code' using 'add' where 'create_' is used elsewhere, but this is a minor and readable deviation.
21 tools is on the higher side, but the server spans five distinct domains (apps, funnels, webhooks, QR campaigns, billing/alerts), so each area only gets a handful of tools. The count is justified by the breadth rather than by redundancy.
Funnels and webhooks have full lifecycle coverage, but apps only have add/list/report — no update or delete app — and the QR surface lacks a way to remove individual codes or delete a campaign outright (only archive via update). Most notably, get_alert_rule exists with no create/update_alert_rule, leaving a described configuration unreachable, and billing is read-only.