Umami MCP Server
Umami MCP Server
MCP-сервер только для чтения для аналитики Umami. Он взаимодействует с REST API Umami напрямую по HTTP, в первую очередь поддерживает self-hosted установки Umami, а также работает с ключами API Umami Cloud.
Этот репозиторий создан для того, чтобы агенты верхнего уровня могли запрашивать аналитику, не перечитывая документацию Umami каждый раз. Никакой автоматизации браузера, никакого парсинга DOM, никаких операций записи.
Возможности
Инструменты MCP только для чтения для наиболее распространенных запросов аналитики Umami
Два режима аутентификации:
UMAMI_API_KEYUMAMI_USERNAME+UMAMI_PASSWORD
Кэширование bearer-токена в памяти для self-hosted установок
Автоматический повторный вход и одна попытка повтора при
401для режима с именем пользователя/паролемПоддержка как ISO-строк времени, так и временных меток в миллисекундах
Общая обработка фильтров для статистики, просмотров страниц, разбивок и серий событий
Строгий TypeScript с небольшими, поддерживаемыми модулями
Четкий структурированный вывод инструментов и явные категории ошибок
Related MCP server: umami-mcp-server
Требования
Node.js
>= 20pnpm
>= 10
Установка
Из npm:
npm install -g umami-analytics-mcpИли запуск без установки:
npx -y umami-analytics-mcpДля локальной разработки в этом репозитории:
pnpm installНастройка
Создайте файл .env на основе .env.example.
cp .env.example .envЗаполните один из следующих вариантов аутентификации:
Режим API-ключа
UMAMI_API_URL=https://api.umami.is/v1
UMAMI_API_KEY=your-api-key
UMAMI_DEFAULT_TIMEZONE=Asia/ShanghaiРежим имени пользователя/пароля для self-hosted
UMAMI_API_URL=https://umami.example.com/api
UMAMI_USERNAME=admin
UMAMI_PASSWORD=secret
UMAMI_DEFAULT_TIMEZONE=Asia/ShanghaiПримечания:
UMAMI_API_URLдолжен указывать на базу API, а не просто на источник сайта.Если установлены и
UMAMI_API_KEY, и имя пользователя/пароль,UMAMI_API_KEYимеет приоритет.UMAMI_DEFAULT_TIMEZONEиспользуется, когда инструмент поддерживает часовой пояс, а вы его не указали.
Локальный запуск
Режим разработки:
pnpm devСборка и запуск:
pnpm build
pnpm startСервер использует транспорт MCP stdio, поэтому он остается подключенным к stdin/stdout до тех пор, пока клиент не отключится.
Если установлено из npm, эквивалентная команда:
umami-analytics-mcpТестирование
pnpm test
pnpm buildТакже существует шаблон интеграционного теста с реальным API, который по умолчанию пропускается:
UMAMI_INTEGRATION_TEST=1 pnpm test:integrationMCP Inspector
Сначала выполните сборку:
pnpm buildЗатем запустите официальный MCP Inspector для собранного сервера:
npx @modelcontextprotocol/inspector node dist/cli.jsДля горячей перезагрузки во время разработки это также работает:
npx @modelcontextprotocol/inspector pnpm devЕсли вы хотите протестировать путь к опубликованному пакету, используйте:
npx @modelcontextprotocol/inspector npx -y umami-analytics-mcpУбедитесь, что те же переменные окружения Umami доступны процессу Inspector.
Рекомендуемые дымовые тесты в Inspector:
umami_pingumami_list_websitesumami_get_statsumami_get_breakdown
Инструменты
umami_ping
Проверяет конфигурацию и аутентификацию.
Пример:
{}umami_list_websites
Выводит список доступных веб-сайтов.
Пример:
{}umami_find_website
Нечеткий поиск по названию или домену веб-сайта.
Пример:
{
"query": "example.com"
}umami_get_stats
Сводная статистика для веб-сайта и временного диапазона.
Пример:
{
"websiteId": "8f2f8ce2-1234-4567-89ab-0123456789ab",
"startAt": "2026-04-23T00:00:00+08:00",
"endAt": "2026-04-23T23:59:59+08:00",
"filters": {
"path": "/pricing"
}
}umami_get_pageviews
Временные ряды просмотров страниц и сессий.
Пример:
{
"websiteId": "8f2f8ce2-1234-4567-89ab-0123456789ab",
"startAt": "2026-04-17T00:00:00+08:00",
"endAt": "2026-04-23T23:59:59+08:00",
"unit": "day",
"compare": "prev",
"filters": {
"path": "/blog"
}
}umami_get_breakdown
Строки разбивки, такие как популярные страницы, источники переходов, страны, браузеры, устройства и многое другое.
Пример:
{
"websiteId": "8f2f8ce2-1234-4567-89ab-0123456789ab",
"startAt": "2026-04-17T00:00:00+08:00",
"endAt": "2026-04-23T23:59:59+08:00",
"type": "path",
"limit": 10,
"expanded": false
}umami_get_active
Возвращает текущее количество активных посетителей.
Пример:
{
"websiteId": "8f2f8ce2-1234-4567-89ab-0123456789ab"
}umami_get_events_series
Возвращает количество пользовательских событий во времени.
Пример:
{
"websiteId": "8f2f8ce2-1234-4567-89ab-0123456789ab",
"startAt": "2026-04-17T00:00:00+08:00",
"endAt": "2026-04-23T23:59:59+08:00",
"unit": "day"
}Общие фильтры
Эти инструменты поддерживают один и тот же объект filters:
pathreferrertitlequerybrowserosdevicecountryregioncityhostname
Обработка ошибок
Ошибки инструментов возвращаются как структурированные результаты MCP-инструментов со следующими категориями:
config_missingauth_failedwebsite_not_foundumami_http_errornetwork_timeoutnetwork_errorinvalid_input
Подключение в любом Stdio MCP-клиенте
Любой MCP-клиент на базе stdio может запустить этот сервер с помощью:
command:npxargs:["-y", "umami-analytics-mcp"]env: ваши переменные Umami
Пример фрагмента JSON для клиентов, использующих объект mcpServers:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "umami-analytics-mcp"],
"env": {
"UMAMI_API_URL": "https://umami.example.com/api",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "secret",
"UMAMI_DEFAULT_TIMEZONE": "Asia/Shanghai"
}
}
}
}Для локальной невыпущенной версии вы все равно можете указать путь напрямую к собранному файлу:
{
"mcpServers": {
"umami": {
"command": "node",
"args": ["/absolute/path/to/umami-mcp/dist/cli.js"]
}
}
}Публикация в npm
Этот репозиторий теперь структурирован как CLI-пакет npm.
Рекомендуемый процесс выпуска:
pnpm test
pnpm build
pnpm pack --dry-run
npm login
pnpm publishПримечания:
Имя пакета установлено как
umami-analytics-mcp, так какumami-mcpуже занято в npm.Текущая
license—UNLICENSEDв качестве безопасного заполнителя. Замените ее перед реальным публичным open-source релизом, если хотите использовать разрешительную лицензию.Если позже вы будете публиковать пакет под своим собственным пространством имен npm, измените только поле
nameвpackage.json.
Внутренняя документация
Сводка API, используемая этим репозиторием: docs/umami-api.md
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server exposing Umami analytics (Cloud + self-hosted)5MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Umami Analytics that provides read-only tools to query website stats, events, sessions, reports, and more, enabling natural language analytics queries.132MIT
- AlicenseAqualityBmaintenanceA security-first MCP server for Umami analytics (Cloud and self-hosted v3) enabling analytics, reporting, and administration with least privilege and credential-safe design.328MIT
- AlicenseAqualityBmaintenanceA read-only MCP server for Umami analytics, enabling natural language queries of website stats, traffic trends, events, sessions, and analytics reports.13121Elastic 2.0
Related MCP Connectors
Read-only Yandex Metrika MCP. Query visits, sources, geo, devices and more in plain language.
MCP server for interacting with the Supabase platform
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mzaxd/umami-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server