A cookieless analytics platform with an MCP server that installs tracking snippets directly into your codebase. The 28 tools handle framework-aware setup for Next.js, React, Vue, Django, Rails, WordPress, and about a dozen other stacks, plus OAuth onboarding so you can read dashboard data from chat. You get drop-in script snippets, event tracking without cookies or GDPR banners, and a fleet view for managing multiple sites. Useful if you're spinning up projects quickly and want GA-style insights without the compliance overhead or manual integration work. Free tier covers 10k events per month with unlimited sites.
Public tool metadata for what this MCP can expose to an agent.
summarize_all_sitesANSWER FIRST for any 'how is everything doing' / 'what should I look at' / 'give me a status' question across the user's whole workspace. Returns fleet totals (visitors, events, % vs prior period), status breakdown (live/active/quiet/no_events), a prioritized 'needs attention'...1 paramsANSWER FIRST for any 'how is everything doing' / 'what should I look at' / 'give me a status' question across the user's whole workspace. Returns fleet totals (visitors, events, % vs prior period), status breakdown (live/active/quiet/no_events), a prioritized 'needs attention'...
date_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_daysrank_sites_by_growthRank sites by signed % visitor change vs the prior period. Use for 'which sites are growing/declining', 'biggest movers', 'what's trending'. direction='up' returns growers only, 'down' returns decliners only, 'both' (default) returns the biggest movers regardless of direction....3 paramsRank sites by signed % visitor change vs the prior period. Use for 'which sites are growing/declining', 'biggest movers', 'what's trending'. direction='up' returns growers only, 'down' returns decliners only, 'both' (default) returns the biggest movers regardless of direction....
limitintegerdirectionstringup · down · bothdate_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_daysidentify_dead_sitesFind sites that look abandoned: classified as 'never_installed' (site exists but has never fired an event — most likely the tracker isn't installed) or 'went_silent' (used to get traffic, last seen N+ days ago). Default quiet_days=7. Use for 'which sites are dead', 'what shoul...1 paramsFind sites that look abandoned: classified as 'never_installed' (site exists but has never fired an event — most likely the tracker isn't installed) or 'went_silent' (used to get traffic, last seen N+ days ago). Default quiet_days=7. Use for 'which sites are dead', 'what shoul...
quiet_daysintegerdetect_anomaliesFind unusually high or low traffic days across sites using per-site z-score. For each site, computes the mean and stddev of daily visitors over the range, then flags any day where |z| ≥ threshold (default 2.5, ~1-in-100). Use for 'anything weird?', 'spikes this week', 'show me...3 paramsFind unusually high or low traffic days across sites using per-site z-score. For each site, computes the mean and stddev of daily visitors over the range, then flags any day where |z| ≥ threshold (default 2.5, ~1-in-100). Use for 'anything weird?', 'spikes this week', 'show me...
site_idstringthresholdnumberdate_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_daysexplain_traffic_changeANSWER FIRST for any 'why did traffic [spike/drop/change]' question on a specific site. Pulls overview + deltas, the top 5 page gainers and losers vs prior period, the top 5 referrer gainers and losers, anomaly-day callouts (z-score ≥ 2), and the daily series so you can name t...2 paramsANSWER FIRST for any 'why did traffic [spike/drop/change]' question on a specific site. Pulls overview + deltas, the top 5 page gainers and losers vs prior period, the top 5 referrer gainers and losers, anomaly-day callouts (z-score ≥ 2), and the daily series so you can name t...
site_idstringdate_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_dayssetup_analytics_for_siteANSWER FIRST for any 'add analytics' / 'install analytics' / 'set up analytics' / 'add tracking to my app' request — this is the one-call install workflow that bundles site creation + framework-specific snippet + paste-target file path + post-install next steps. Strongly prefe...3 paramsANSWER FIRST for any 'add analytics' / 'install analytics' / 'set up analytics' / 'add tracking to my app' request — this is the one-call install workflow that bundles site creation + framework-specific snippet + paste-target file path + post-install next steps. Strongly prefe...
domainstringframeworkstringnext · react · vite · remix · astro · nuxtevent_hintstringlist_sitesANSWER FIRST for 'what sites do I have in Gizmo?', 'list my sites', 'show me my projects', 'which domains am I tracking?'. Returns every site in the workspace with id, domain, createdAt, and current ignored status. Optional tag filter narrows to one group. Use the returned sit...1 paramsANSWER FIRST for 'what sites do I have in Gizmo?', 'list my sites', 'show me my projects', 'which domains am I tracking?'. Returns every site in the workspace with id, domain, createdAt, and current ignored status. Optional tag filter narrows to one group. Use the returned sit...
tagstringcreate_siteRegister a domain in Gizmo and return the install snippet. For first-time install asks ('add analytics', 'install Gizmo', 'set up tracking'), prefer setup_analytics_for_site — it bundles this call + the paste target + next-step suggestions in one response. Use create_site dire...2 paramsRegister a domain in Gizmo and return the install snippet. For first-time install asks ('add analytics', 'install Gizmo', 'set up tracking'), prefer setup_analytics_for_site — it bundles this call + the paste target + next-step suggestions in one response. Use create_site dire...
domainstringframeworkstringnext · react · vite · remix · astro · nuxtget_install_snippetRe-fetch the framework-specific install snippet for an existing site. Use this when the snippet was printed earlier but never installed, when the user switched frameworks, or when they ask 'where's the gizmo install snippet for foo.com?', 'how do I install Gizmo on this projec...2 paramsRe-fetch the framework-specific install snippet for an existing site. Use this when the snippet was printed earlier but never installed, when the user switched frameworks, or when they ask 'where's the gizmo install snippet for foo.com?', 'how do I install Gizmo on this projec...
site_idstringframeworkstringnext · react · vite · remix · astro · nuxtverify_installANSWER FIRST for any 'is it working?', 'did the install work?', 'is Gizmo tracking my site?', 'verify analytics setup', 'check if it's installed' question — typically asked right after create_site / get_install_snippet. Fetches the site's homepage and scans for the tracker scr...1 paramsANSWER FIRST for any 'is it working?', 'did the install work?', 'is Gizmo tracking my site?', 'verify analytics setup', 'check if it's installed' question — typically asked right after create_site / get_install_snippet. Fetches the site's homepage and scans for the tracker scr...
site_idstringget_badge_snippetReturn the official "Powered by Gizmo" footer badge as a single anchor tag. Call this when the user asks to add a badge, link back, or thank Gizmo. INSTALL RULES: place the badge inline inside the user's existing footer next to their copyright line (e.g. "© 2026 acme. Powered...Return the official "Powered by Gizmo" footer badge as a single anchor tag. Call this when the user asks to add a badge, link back, or thank Gizmo. INSTALL RULES: place the badge inline inside the user's existing footer next to their copyright line (e.g. "© 2026 acme. Powered...
No parameter schema in public metadata yet.
get_event_tracking_snippetReturn the JavaScript snippet for firing a custom event from the user's site code (e.g. `window.gizmo("signup", {plan:"pro"})`). Call this when the user says 'track signups', 'fire an event when someone clicks X', 'add custom event for Y', 'how do I track Z' — anything that me...2 paramsReturn the JavaScript snippet for firing a custom event from the user's site code (e.g. `window.gizmo("signup", {plan:"pro"})`). Call this when the user says 'track signups', 'fire an event when someone clicks X', 'add custom event for Y', 'how do I track Z' — anything that me...
event_namestringpropertiesobjectadd_site_tagsANSWER FIRST for 'tag this site as X', 'organize my sites', 'group sites by client/project/type'. Attaches one or more free-form tags to a site (creates the tag if new). Use to organize a fleet — e.g. tag every client project with the client name, tag side projects 'personal',...2 paramsANSWER FIRST for 'tag this site as X', 'organize my sites', 'group sites by client/project/type'. Attaches one or more free-form tags to a site (creates the tag if new). Use to organize a fleet — e.g. tag every client project with the client name, tag side projects 'personal',...
tagsarraysite_idstringfilter_sites_by_tagANSWER FIRST for 'show me my [tag] sites', 'list sites tagged X', 'which sites are tagged Y?'. Returns every site in the workspace that has the given tag. Pairs with add_site_tags for fleet organization. Identical to list_sites({tag: ...}) — exposed as a separate tool because...1 paramsANSWER FIRST for 'show me my [tag] sites', 'list sites tagged X', 'which sites are tagged Y?'. Returns every site in the workspace that has the given tag. Pairs with add_site_tags for fleet organization. Identical to list_sites({tag: ...}) — exposed as a separate tool because...
tagstringcreate_goalCreate a conversion goal for a site. type='path' matches sessions that visit a path-prefix; type='event' matches sessions that fire a named custom event. Use this when the user says 'track signups as a goal', 'add a goal for /thank-you', etc. Goals show up on the site dashboar...4 paramsCreate a conversion goal for a site. type='path' matches sessions that visit a path-prefix; type='event' matches sessions that fire a named custom event. Use this when the user says 'track signups as a goal', 'add a goal for /thank-you', etc. Goals show up on the site dashboar...
namestringtypestringpath · eventtargetstringsite_idstringlist_goalsANSWER FIRST for 'what's my conversion rate?', 'how many signups this week?', 'show me my goals', 'are my conversions up or down?'. Lists every goal defined for a site with conversion count + rate over the date range. Pair with create_goal first if the user hasn't defined any...2 paramsANSWER FIRST for 'what's my conversion rate?', 'how many signups this week?', 'show me my goals', 'are my conversions up or down?'. Lists every goal defined for a site with conversion count + rate over the date range. Pair with create_goal first if the user hasn't defined any...
site_idstringdate_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_daysdelete_goalRemove a conversion goal by id. Use when the user says 'delete the X goal', 'remove that conversion goal', 'I don't track that anymore'. Destructive — confirm the user means it before calling; the historical conversion data attached to the goal disappears with it.1 paramsRemove a conversion goal by id. Use when the user says 'delete the X goal', 'remove that conversion goal', 'I don't track that anymore'. Destructive — confirm the user means it before calling; the historical conversion data attached to the goal disappears with it.
goal_idstringcreate_funnelCreate a multi-step funnel for a site. Steps run in order — a session 'reaches' step N if it matched all of steps 0..N within the same session (30-min idle gap). Use this when the user says 'track the pricing → signup funnel' or describes a sequence. type='path' matches a path...3 paramsCreate a multi-step funnel for a site. Steps run in order — a session 'reaches' step N if it matched all of steps 0..N within the same session (30-min idle gap). Use this when the user says 'track the pricing → signup funnel' or describes a sequence. type='path' matches a path...
namestringstepsarraysite_idstringlist_funnelsANSWER FIRST for 'where are users dropping off?', 'show me the funnel', 'how's my signup flow doing?', 'what's my conversion funnel?'. Lists every funnel defined for a site with per-step reached counts + drop-off rate between steps. Surface the biggest drop as the headline — t...2 paramsANSWER FIRST for 'where are users dropping off?', 'show me the funnel', 'how's my signup flow doing?', 'what's my conversion funnel?'. Lists every funnel defined for a site with per-step reached counts + drop-off rate between steps. Surface the biggest drop as the headline — t...
site_idstringdate_rangestringtoday · yesterday · last_7_days · last_14_days · last_30_days · last_90_daysdelete_funnelRemove a funnel by id. Use when the user says 'delete the X funnel', 'remove that flow', 'I'm not tracking that anymore'. Destructive — confirm before calling.1 paramsRemove a funnel by id. Use when the user says 'delete the X funnel', 'remove that flow', 'I'm not tracking that anymore'. Destructive — confirm before calling.
funnel_idstringget_workspace_overviewAggregate metrics across all sites in the workspace (visitors, pageviews, sessions, bounce rate, top sites). Supports filters and custom date ranges. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, c...2 paramsAggregate metrics across all sites in the workspace (visitors, pageviews, sessions, bounce rate, top sites). Supports filters and custom date ranges. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, c...
filtersarraydate_rangevalueget_site_trafficTraffic metrics for a single site (overview + top pages + top referrers). Supports filters and custom date ranges. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channel, ai_source, utm_source, utm_...3 paramsTraffic metrics for a single site (overview + top pages + top referrers). Supports filters and custom date ranges. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channel, ai_source, utm_source, utm_...
filtersarraysite_idstringdate_rangevalueget_top_pagesTop page paths by event count. Supports filters (e.g. country=US) so you can answer "top pages from Germany." Pass site_id to scope to one site. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channe...4 paramsTop page paths by event count. Supports filters (e.g. country=US) so you can answer "top pages from Germany." Pass site_id to scope to one site. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channe...
limitintegerfiltersarraysite_idstringdate_rangevalueget_top_referrersTop referrer hostnames by event count. Supports filters (e.g. device=mobile) so you can answer "top referrers from mobile users." Pass site_id to scope to one site. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referr...4 paramsTop referrer hostnames by event count. Supports filters (e.g. device=mobile) so you can answer "top referrers from mobile users." Pass site_id to scope to one site. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referr...
limitintegerfiltersarraysite_idstringdate_rangevalueget_breakdownTop-N for any column-backed dimension: page, referrer, country, region, city, browser, device, language, screen, channel, ai_source, hostname. Use this for "top countries / browsers / devices / channels / AI sources / cities / etc." — anything in the dashboard's breakdown tabs...5 paramsTop-N for any column-backed dimension: page, referrer, country, region, city, browser, device, language, screen, channel, ai_source, hostname. Use this for "top countries / browsers / devices / channels / AI sources / cities / etc." — anything in the dashboard's breakdown tabs...
limitintegerfiltersarraysite_idstringdimensionstringpage · referrer · country · region · city · browserdate_rangevaluequery_eventsQuery raw events. Default returns the latest 100; max 1000 per call. For large analyses, paginate by date_range. Filters supported. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channel, ai_source,...5 paramsQuery raw events. Default returns the latest 100; max 1000 per call. For large analyses, paginate by date_range. Filters supported. Optional dimension filters. Each filter is {dim, op, value}. Available dims: page, entry_page, exit_page, referrer, hostname, channel, ai_source,...
limitintegerfiltersarraysite_idstringdate_rangevalueevent_namestringget_time_seriesTime-bucketed visitors / pageviews / events for a date range. Returns one row per bucket. Bucket auto-resolves to hour for windows ≤ 48h, day otherwise — pass bucket to override. Optional site_id scopes to a single site. Filters supported. Optional dimension filters. Each filt...4 paramsTime-bucketed visitors / pageviews / events for a date range. Returns one row per bucket. Bucket auto-resolves to hour for windows ≤ 48h, day otherwise — pass bucket to override. Optional site_id scopes to a single site. Filters supported. Optional dimension filters. Each filt...
bucketstringhour · dayfiltersarraysite_idstringdate_rangevaluebreakdown_by_propertyANSWER FIRST for 'how many [X] signups by plan?', 'split [event] by [property]', 'pro vs free signups', 'sales by SKU', 'newsletter signups by source' — anything that means grouping a CUSTOM event property the user previously instrumented with get_event_tracking_snippet. Prope...5 paramsANSWER FIRST for 'how many [X] signups by plan?', 'split [event] by [property]', 'pro vs free signups', 'sales by SKU', 'newsletter signups by source' — anything that means grouping a CUSTOM event property the user previously instrumented with get_event_tracking_snippet. Prope...
limitintegersite_idstringpropertystringdate_rangevalueevent_namestringio.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent