get_websitesLABSCO SUMMARY
Analytics you can interrogate down to a single session.
Most analytics integrations stop at aggregate numbers; this one hands over session IDs and the activity trail behind them, and adds a semantic search over user journeys so a long trail comes back as the relevant few chunks instead of flooding the context window. The screenshot and HTML tools let you look at the page a user was on while reading what they did on it.
What it is
A server that connects an agent to a Umami analytics account: site stats and metric breakdowns, live visitor counts, and the individual sessions behind the numbers.
What you get
- The websites in your Umami account with their IDs, which every other call needs
- Headline stats for a site — pageviews, visitors, bounce rate
- Metric breakdowns by URL, referrer, browser or country
- Pageview time series at an interval you choose
- The live count of active visitors
- Session IDs for an event or a period, and the full activity trail for one session
- Semantic search across many user journeys, returning only the chunks relevant to your question
- A screenshot and the raw HTML of a page, so behaviour can be read against what was on screen
Requirements
A Umami analytics account with API access. Most calls take a website ID, so get_websites comes first. The journey search embeds text locally with an open-source sentence-transformer model from Hugging Face, so that tool pulls a model down on first use.
Setup effort
Build from source — git clone https://github.com/jakeyShakey/umami_mcp_server
USE CASES
Working out why a page converts badly
Read the site's metrics by URL, then pull session IDs for that page and follow one visitor's trail.
Answering a traffic question
Get pageviews, visitors and bounce rate for a site, with the time series at the interval you want.
Seeing who is on the site right now
Read the live active-visitor count for the site.
Asking a behavioural question of many journeys at once
Search the stored user journeys semantically and get back only the chunks that answer it.
Reading behaviour against the page it happened on
Capture the page and its HTML, then compare the activity trail against what was actually rendered.
Finding the website ID before anything else
List the sites in the account with their IDs, which the rest of the tools take as an argument.
10 tools
Listed in project docs. Your client may show a different list.
get_website_statsget_website_metricsget_pageview_seriesget_active_visitorsget_session_idsget_tracking_dataget_docsget_screenshotget_htmlBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- UMAMI_PASSWORD in your environment
- UMAMI_USERNAME in your environment
- UMAMI_TEAM_ID in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
pip install uv
git clone https://github.com/jakeyShakey/umami_mcp_serverMCP Clients
Claude Desktop
{
"mcpServers": {
"analytics_service": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_ANALYTICS_SERVICE>",
"run",
"analytics-service"
],
"env": {
"UMAMI_API_URL": "<YOUR_UMAMI_API_URL>",
"UMAMI_USERNAME": "<YOUR_UMAMI_USERNAME>",
"UMAMI_PASSWORD": "<YOUR_UMAMI_PASSWORD>",
"UMAMI_TEAM_ID": "<YOUR_UMAMI_TEAM_ID>"
}
}
}
}Add this to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%/Claude/claude_desktop_config.json). <YOUR_PATH_TO_ANALYTICS_SERVICE> is the full path of the umami_mcp_server folder the git clone step creates (the one holding pyproject.toml).