{"name":"io.github.webcredo/umami-compass","slug":"webcredo-umami-compass","title":"Umami Compass","description":"Secure Umami Analytics MCP server for Cloud and self-hosted deployments","url":"https://mcp.market/server/webcredo-umami-compass","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":0,"forks":0,"downloads_week":40,"last_push_at":"2026-09-17T05:55:05.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/webcredo/umami-compass","website":"https://github.com/webcredo/umami-compass","version":"0.5.1","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"umami-compass","version":"0.5.1","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Umami Cloud or client API key","isSecret":true,"name":"UMAMI_API_KEY"},{"description":"Existing self-hosted Bearer token","isSecret":true,"name":"UMAMI_ACCESS_TOKEN"},{"description":"Self-hosted Umami username","name":"UMAMI_USERNAME"},{"description":"Self-hosted Umami password","isSecret":true,"name":"UMAMI_PASSWORD"},{"description":"Self-hosted Umami instance origin","placeholder":"https://analytics.example.com","name":"UMAMI_URL"},{"description":"Optional exact Umami API root for a reverse proxy","placeholder":"https://analytics.example.com/custom/api","name":"UMAMI_API_URL"},{"description":"Optional comma-separated website UUID allowlist","name":"UMAMI_WEBSITE_IDS"},{"description":"Optional comma-separated team UUID allowlist","name":"UMAMI_TEAM_IDS"},{"description":"Comma-separated toolsets or all","default":"core,insights","placeholder":"core,insights,events,sessions,performance,reports,revenue,replay,heatmaps","name":"UMAMI_TOOLSETS"},{"description":"Maximum decoded upstream JSON response size in bytes","default":"10485760","name":"UMAMI_MAX_RESPONSE_BYTES"}]}],"tools":[{"name":"analyze_performance_portfolio","description":"Compare Core Web Vitals across a bounded website portfolio with compact-by-default output, metric-specific drill-down selection, confidence, event/pageview ratios, and precise section truncation metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_release_impact","description":"Compare equal pre- and post-release windows across traffic breakdowns and Core Web Vitals. Returns a compact executive summary by default; request full detail for drill-down evidence. Recent releases use a partial post window and an equally shortened pre window.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_performance_breakdown","description":"Align page, page-title, device or browser rows across two periods. Comparable rows come first; undersized rows are excluded by default and missing capped candidates remain unknown rather than being treated as zero.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_traffic_series","description":"Return aligned current and comparison traffic buckets to locate the exact day or hour when traffic changed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_web_vitals","description":"Compare all five Web Vital p75 summaries against a previous, year-over-year or custom period with ratings, materiality, event-count readiness and explicit filter scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"explain_traffic_change","description":"Compare traffic with a previous, year-over-year, or custom period and rank observed changes across pages, referrers, countries, devices, channels, and events. Results describe association, not causation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_active_visitors","description":"Get the current number of active visitors for a website.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_event_series","description":"Get custom-event counts over time, optionally filtered to a named event.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_event_stats","description":"Get aggregate custom-event statistics and comparison values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_heatmap","description":"Get Umami 3.2 click or scroll heatmap data. Successful responses state whether data is available and why an authorized result is empty. Omit urlPath to list pages; provide it for bounded detail.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_metrics","description":"Get a ranked aggregate Umami metric breakdown such as paths, referrers, countries, devices, events, channels or URLs. Visitor identifiers are excluded from the core toolset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_pageviews","description":"Get Umami 3.2 pageview and session time series. Both arrays are preserved in the response.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_performance_breakdown","description":"Rank Web Vital percentiles by page, page title, device or browser. Rows default to 20 performance events and report the upstream limitation that per-metric non-null counts are unavailable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_performance_cross_tab","description":"Derive a bounded two-dimensional performance breakdown through explicit fan-out. Candidate source, request count, sample limitations and truncation are reported so the result is not mistaken for a native exhaustive pivot.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_portfolio_overview","description":"Summarize bounded aggregate traffic across visible websites, including period changes, growth and decline leaders, stale tracking, failures, and suspicious jumps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_revenue_metrics","description":"Break down Umami 3.2 revenue by country, region, referrer or channel.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_revenue_stats","description":"Get Umami 3.2 revenue totals and comparison values in a chosen currency.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_route_group_performance","description":"Measure caller-defined route templates with exact regex-filtered performance queries instead of attempting to merge non-composable percentiles from individual URLs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_saved_report","description":"Get one saved report definition. The website ID is required to enforce the local allowlist and is verified against the response.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_server_info","description":"Get the local package version, enabled toolsets, safety limits, and supported analysis capabilities without exposing credentials.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session","description":"Get metadata for one Umami visitor session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_activity","description":"Get a bounded list of pageviews and events that occurred during one session and time range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_stats","description":"Get aggregate session metrics for a website and time range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_web_vitals","description":"Get normalized Umami 3.2 LCP, INP, CLS, FCP and TTFB summaries plus a bounded series for one metric. Empty data, partial buckets, filter scope and unavailable upstream sample counts are explicit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_website","description":"Get metadata for one website.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_website_date_range","description":"Get the earliest and latest analytics timestamps available for a website.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_website_stats","description":"Get visits, visitors, pageviews, bounces, visit duration and Umami's comparison values for a time range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_events","description":"List and search custom events for a website and time range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_replays","description":"List Umami 3.2 session replay metadata. Successful responses state whether data is available and why an authorized result is empty. Raw rrweb event payloads are intentionally excluded.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_saved_reports","description":"List saved report definitions for one website without modifying them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_segments","description":"List reusable website segments or cohorts from Umami's paged response with explicit context limits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_sessions","description":"List and search visitor sessions for a website and time range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_websites","description":"List websites visible directly or through any team membership of the configured Umami identity. If UMAMI_WEBSITE_IDS is set, returns only that exact allowlist.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resolve_website","description":"Resolve a website UUID from a UUID, domain, URL, or website name. Ambiguous matches return bounded candidates instead of guessing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_attribution_report","description":"Calculate first-click or last-click attribution for a conversion path or event with bounded channel arrays.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_breakdown_report","description":"Cross-tabulate up to three Umami dimensions, including derived channel combinations, and return the highest-ranked bounded rows.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_funnel_report","description":"Calculate a 2–8 step Umami funnel. windowMinutes controls the allowed time between consecutive steps.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_goal_report","description":"Calculate an Umami conversion goal for a path or custom event.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_journey_report","description":"Calculate the most common 2–7 step user journeys and return a bounded ranking.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_retention_report","description":"Calculate daily Umami cohort retention and return a bounded result set.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_utm_report","description":"Calculate Umami source, medium, campaign, term and content performance with bounded category arrays.","write_action":true,"price_micros":0,"input_schema":null},{"name":"tracking_health_check","description":"Audit visible websites for stale or missing traffic, traffic drops, domain mismatches, referral-spam patterns, custom-event availability, recorder configuration, and section permission failures. Disabled optional features are warnings only when marked as expected.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-25T17:23:12.864Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:23:12.807Z","components":{"code":{"score":25,"max":25,"notes":["58 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"umami-compass","version":"0.5.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-21T00:25:15.237Z","repositoryUrl":"git+https://github.com/webcredo/umami-compass.git","weeklyDownloads":40}],"repo":{"found":true,"owner":"webcredo","repo":"umami-compass","archived":false,"pushedAt":"2026-09-17T05:55:05Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/2051941?v=4","ownerCreatedAt":"2012-07-27T12:18:22Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":40,"license":"MIT","lastPushAt":"2026-09-17T05:55:05.000Z","score":26}}}},"grade_history":[],"reviews":[]}