create_annotation
Record a user-facing change that may affect analytics. Call after deploying changes to pages, flows, or tracking. Skip dependency updates, CI config, and refactors with no visible impact.
Read site analytics from the agent — visitors, funnels, load-time percentiles, traffic sources — including a breakdown of traffic arriving from AI assistants.
LABSCO SUMMARY
Visits arriving from an assistant behave differently from search or social traffic and are growing, and most analytics products either bucket them as direct or leave them scattered across referrers. Making it a first-class report answers a question people are actively asking and cannot easily answer. The performance tool reporting p95 rather than an average is the other correct choice — average load time is the metric that makes a slow site look fine. exclude_my_ip is a small thing that signals the product knows who uses it: your own traffic is the largest source of bad data on a small site.
A privacy-oriented web analytics client covering site management, access sharing, and the full reporting surface from aggregate counts to funnels and performance percentiles.
LODD_API_KEY.
One command plus a key — npx -y @lodd/mcp-server, then supply credentials
USE CASES
Read the AI-source breakdown directly rather than trying to find it inside referrers or direct traffic.
Pull the today-versus-yesterday snapshot rather than a full report when the question is just whether something changed.
Compute the funnel across the ordered sequence of URLs, instead of inferring it from page rankings.
Read median and p95 load times by page and device, since an average hides exactly the visitors having a bad time.
Register it, get the tracking details, and exclude your own IP before the numbers start meaning anything.
Share the site, see who has access and with what role, and remove it when the engagement ends.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
create_annotationRecord a user-facing change that may affect analytics. Call after deploying changes to pages, flows, or tracking. Skip dependency updates, CI config, and refactors with no visible impact.
create_api_keyGenerate a new API key for the current user. Use this to create keys for managed agents, CI pipelines, or other tools that need access to your Lodd analytics. The key is shown only once — save it immediately.
create_siteRegister a new website for analytics tracking. Returns the site ID, tracking secret, and the script tag to embed.
create_trackable_linkCreate a trackable link for campaign attribution. Append ?ld=<code> to your destination URL when sharing — clicks are attributed to the source in analytics.
exclude_my_ipExclude an IP address from analytics tracking for a site. Prevents the user's own visits from appearing in the data. In Claude Code, detect the IP with curl -s api.ipify.org first. In conversation agents, ask the user to check their IP at api.ipify.org and paste it. Must be done per site.
get_active_actorsList distinct actors (opaque hashed identifiers) with their event counts, first/last seen, and total revenue. Actors are customer-hashed — Lodd never sees the original identifier. Only includes events where an actor was set.
get_actor_activityGet the event timeline for a specific actor hash. Shows all events in chronological order with properties and revenue. The actor is an opaque identifier — Lodd does not know who it represents.
get_actor_retentionGet weekly cohort retention by actor hash. Groups actors by the week they first appeared, then shows how many returned in weeks 1-4. Actors are opaque hashes — no personal data is stored or exposed. Requires 2+ weeks of data for meaningful results.
get_ai_trafficGet traffic from AI assistants (ChatGPT, Claude, Perplexity, Gemini, Copilot), unified across referrer and UTM signals so each tool is counted once. Returns per-tool page views and unique visitors plus a combined total. Use to answer 'how much AI traffic do I get' or 'how much comes from ChatGPT'.
get_analyticsGet aggregate analytics for a site (visitors, page views, bounce rate, etc.) with automatic comparison to the previous period. Returns average_duration in seconds. Optional filters segment the result by country, browser, os, device type, UTM source, or referrer.
get_bot_reportShow bot and crawler traffic that's been filtered from analytics. Groups by user agent, showing sessions, page views, countries, and first/last seen. Useful for understanding what's crawling your site (AI crawlers, search engines, SEO tools).
get_content_groupsGroup pages by URL pattern and get aggregate metrics per group. Useful for comparing how blog vs docs vs app pages perform. Patterns use SQL LIKE syntax where % matches anything.
get_conversion_pagesFind which pages lead to a specific conversion event. Shows pages viewed before the event in the same session, with conversion rate and average time to convert. Useful for identifying high-converting content.
get_countriesGet visitor geography breakdown by country. Call twice with different periods (e.g. '2026-04-01..2026-04-07' vs '2026-04-08..2026-04-14') to compare growth across countries. Optional filters segment by browser, os, device type, UTM source, or referrer.
get_dropoff_destinationsGiven a URL, show where visitors go next or if they leave the site. Useful for understanding why people leave key pages like /pricing. The '(exited)' row means the session ended after viewing that page.
get_entry_exit_pagesGet entry pages (where sessions start) and exit pages (where sessions end). Shows which pages attract new visits and where users leave. Useful for identifying effective landing pages and high-exit pages that may need improvement. Optional filters segment by country, browser, os, device type, UTM source, or referrer.
get_event_countsGet a summary of all custom events tracked on a site, showing event names with their total count and unique sessions. Optionally segment by country, browser, os, device type, UTM source, or referrer (matched against the session's page views).
get_event_sequencesGiven a target event (like 'signup_complete'), find what actions typically precede it. Shows both pageviews and events before the target, ranked by frequency. step_position=1 is immediately before the target event.
get_event_timeseriesGet event counts bucketed over time for a specific event. Useful for seeing how event frequency changes. Optional filters segment by country, browser, os, device type, UTM source, or referrer (matched against the session's page views).
get_eventsGet individual custom event records with their properties. Optionally filter by event name.
get_funnelCompute a conversion funnel across an ordered sequence of pageview URLs and custom events. Returns per-step session counts and conversion rate relative to step 0. Steps must all occur within the same session, in order. Optional filters constrain which sessions enter the funnel.
get_link_clicksGet click data for a specific trackable link, including referrers and countries. Returns up to 1000 most recent clicks.
get_pagesGet pages ranked by traffic. Call twice with different periods to compare page performance over time. Optionally filter by URL path and/or segment by country, browser, os, device type, UTM source, or referrer. Returns page titles when available.
get_performanceGet page load time metrics (average, median, p95) grouped by page URL, device type, country, or browser. Only includes data from pages with load time measurements. Useful for identifying slow pages and correlating performance with engagement.
get_realtimeGet the number of currently active visitors on a site (visitors with activity in the last 5 minutes)
get_session_pathsFind the most common page sequences visitors follow. Returns paths like '/blog → /pricing → /signup' with session counts. Useful for understanding navigation patterns and identifying the most common journeys to conversion.
get_session_scoresClassify sessions into engagement buckets: bounced (1 page), browsed (2-3 pages), engaged (4+ pages or event fired), converted (conversion event fired). Optionally specify which event defines 'converted'.
get_snapshotQuick today vs yesterday comparison: visitors, top referrer, top country, and duration trends
get_source_conversionsCompare traffic sources by conversion rate for a specific event. Shows which referrers, UTM campaigns, and trackable links drive the most conversions, plus average time to convert per source.
get_tech_breakdownGet browser, operating system, and device type distribution in one call. Optional filters segment by country, browser, os, device type, UTM source, or referrer.
get_timeseriesGet visitor and page view counts bucketed over time (hourly or daily). Returns an array of {date_label, page_views, unique_visitors} objects. Optional filters segment by country, browser, os, device type, UTM source, or referrer.
get_traffic_sourcesGet traffic sources: referrers, trackable links, and UTM campaigns combined. Shows where visitors are coming from. Call twice with different periods to compare source mix over time. Optional filters segment by country, browser, os, device type, UTM source, or referrer.
get_usageGet current month's event usage and plan limits. Returns plan type, events used, monthly limit, and percentage.
list_annotationsList annotations (deploy notes, change records) for a site within a time period.
list_api_keysList all API keys for the current user. Shows key prefix, name, creation date, and last used date. Does not reveal full keys.
list_membersList all users who have access to a site, with their roles (owner or member).
list_sitesList all websites you have access to with their domains and IDs
list_trackable_linksList all trackable links for a site with their click statistics
remove_memberRemove a user's access to a site. Only the site owner can do this. Cannot remove the owner.
revoke_api_keyPermanently deactivate an API key. The key will immediately stop working. Use list_api_keys to find key IDs. Cannot be undone.
share_siteGive another user access to a site's analytics. They must have a Lodd account (signed up at lodd.dev). Only the site owner can share. The invited user gets a notification email.
BEFORE YOU INSTALL
41 tools when we connected. The project advertises 42; one of them did not appear on a fresh connection.
Of the 4 documented clients, 2 run the server on your machine and 2 connect to a hosted endpoint.
CONTEXT COST
Rated by the size of the 41 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @lodd/mcp-serverhttps://api.lodd.dev/mcpAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
{
"mcpServers": {
"lodd": {
"command": "npx",
"args": [
"-y",
"@lodd/mcp-server"
],
"env": {
"LODD_API_KEY": "<YOUR_LODD_API_KEY>"
}
}
}
}