Skip to main content
Glama
arttus

umami-mcp-server

by arttus

umami-mcp-server

Umami Analytics 向けの MCP サーバーです。読み取り専用で、Umami Cloud とセルフホストインスタンスの両方で動作します。エポックミリ秒や UUID ではなく、last_month のようなレンジや example.com のようなサイト名で指定します。

ウェブサイトの探索、トラフィック統計、時系列、ランキング内訳、カスタムイベント、個別セッション、1回の呼び出しでの完全なレポート、ウェブサイト・ユーザー・チームの完全な管理者 CRUD、クライアントオンボーディングの複合ツール、そしてそれ以外の Umami API にアクセスするための素の GET エスケープハッチまで、25 本のツールを備えています。

管理者ツール(ユーザー・チーム・ウェブサイトの作成、および各種削除)には、管理者ログインまたは管理者 API キーを持つセルフホスト Umami が必要です。Umami Cloud は API 経由でユーザーやチームの管理を公開していないため、Cloud に向けて使うと紛らわしい 404 ではなく明確なエラーが返ります。

インストール

npm install
npm run build

Related MCP server: Plausible MCP

設定

.env.example をコピーし、2 つの認証方法のうちいずれかを記入します。

Umami Cloud

Settings の API keys からキーを作成してください。

変数

必須

備考

UMAMI_API_KEY

はい

お使いの Cloud API キー

UMAMI_REGION

いいえ

us または eu。デフォルトはキー所有者のリージョンになります

セルフホスト

変数

必須

備考

UMAMI_BASE_URL

はい

インスタンスのルート URL。例: https://analytics.example.com/api は自動的に付加されます

UMAMI_API_KEY

いずれか

インスタンス上の API キー

UMAMI_USERNAME + UMAMI_PASSWORD

いずれか

ログイン認証情報。ベアラートークンに交換され、有効期限切れ時に自動更新されます

共通

変数

デフォルト

備考

UMAMI_TIMEZONE

UTC

日付境界と時系列バケットの IANA タイムゾーン。例: America/New_York

UMAMI_DEFAULT_WEBSITE

なし

ツール呼び出しで website が省略されたときに使うウェブサイト ID・名前・ドメイン。主に 1 つのサイトを調べる場合は設定しておきましょう

接続する

Claude Desktop または Claude Code

claude_desktop_config.json に追加するか、claude mcp add を実行します:

{
  "mcpServers": {
    "umami": {
      "command": "node",
      "args": ["/absolute/path/to/umami-mcp-server/dist/index.js"],
      "env": {
        "UMAMI_API_KEY": "your-key",
        "UMAMI_TIMEZONE": "America/New_York",
        "UMAMI_DEFAULT_WEBSITE": "example.com"
      }
    }
  }
}

セルフホストインスタンスの場合は、UMAMI_BASE_URL と、API キーまたはユーザー名とパスワードのペアのどちらかを設定します。

MCP Inspector

UMAMI_API_KEY=your-key npm run inspect

ツール

アナリティクス(読み取り専用)

ツール

説明

umami_list_websites

任意の検索に対応し、トラッキング中のすべてのウェブサイトを一覧表示します。ID が分からない場合はここから始めましょう

umami_get_website

ウェブサイト設定と、実際に収集されたデータの期間、現在の訪問者数を取得します

umami_get_active_visitors

直近 5 分間のユニーク訪問者数

umami_get_stats

ページビュー、訪問者、ビジット、直帰率、平均滞在時間を、前期比の変化とともに表示します

umami_get_pageviews_series

ページビューとセッションを、分・時間・日・月・年の単位でバケット化して表示

umami_get_metrics

任意のディメンションでランク付けられた内訳を表示します。expanded=true で行ごとのエンゲージメント指標が加わります

umami_get_events_series

カスタムイベントの発生数を、イベントと名前ごとに時系列で集計

umami_list_sessions

匿名の個別セッションの一覧をページネーション付きで表示

umami_get_session

1 つのセッションと、そのページごとの行動履歴を表示

umami_traffic_report

統計と 7 種の内訳を 1 回の呼び出しで取得。サイトの調子を知るときに最適なツールです

管理者: ウェブサイト(セルフホスト、管理者ログインまたはキー)

ツール

説明

umami_create_website

新しいウェブサイトを登録し、そのトラッキング ID と <script> スニペットを返します

umami_update_website

名称変更、ドメイン変更、公開共有リンクの設定、リプレイ/ヒートマップのすべてのフィールド(有効フラグ、サンプリングレート、PII マスクレベル、最大録画時間、ブロックセレクタ)を設定します

umami_get_recorder_config

Umami がトラッカーに実際に配信している現在の設定を読み取ります。同じフィールドが Umami の公式ドキュメント内でテキスト単位が異なることがあるため、umami_update_website 実行後に真実の値を確認できます

umami_reset_website

破壊的。 収集済みのデータをすべて消去し、ウェブサイトとトラッキング ID は残します。confirm=true が必要です

umami_delete_website

破壊的。 ウェブサイトの登録とそのすべてのデータを削除します。confirm=true が必要です

管理者: ユーザー(セルフホスト、管理者ログインまたはキー)

ツール

説明

umami_create_user

内部ログインを作成します

umami_list_users

インスタンス上のすべてのログインを一覧表示します

umami_get_user

1 人のロールと、アクセスできるウェブサイトとチームを表示します

umami_update_user

ユーザー名、パスワード、インスタンス全体のロールを変更します

umami_delete_user

破壊的。 ログインを削除します。confirm=true が必要です

管理者: チーム(セルフホスト、管理者ログインまたはキー)

ツール

説明

umami_create_team

チームを作成し、そのアクセスコードを取得します

umami_list_teams

メンバー数とウェブサイト数を伴うチーム一覧を表示します

umami_get_team

チームの詳細と、全メンバー一覧とロールを表示します

umami_get_team_websites

チームに所属するウェブサイトを表示します

umami_update_team

チーム名の変更、アクセスコードのローテーションを行います

umami_join_team

認証済みユーザーとして、アクセスコード経由でチームに参加します

umami_add_team_user

既存のログインをチームへ直接追加します

umami_update_team_user

チームメンバーのロールを変更します

umami_remove_team_user

破壊的。 チームからメンバーを削除します。confirm=true が必要です

umami_delete_team

破壊的。 チームを削除します。confirm=true が必要です

プロビジョニング

ツール

説明

umami_onboard_client

1 回の呼び出しで、ウェブサイトを作成し、任意で専用のチームも作成し、任意で既存ユーザーへのアクセス権を付与し、任意で最初からリプレイ/ヒートマップ設定を構成します。新しいクライアントをセットアップするための最短経路です

エスケープハッチ

ツール

説明

umami_api_get

専用ツールがなくても、任意の Umami エンドポイントに対して読み取り専用の GET を実行します

すべてのデータツールは response_format を受け付けます。読みやすい要約には markdown、構造化されたペイロードには json を指定します。破壊的ツール(resetdeleteremove)はすべて必須の confirm: true 引数を取ります。これがないと呼び出しは拒否されます。他に確認手順はないため、この引数が「引き返せない地点」です。

日付レンジ

range には以下のいずれかを渡します:

  • 相対: 30m, 24h, 7d, 4w, 3mo, 1y

  • 名前付き: today, yesterday, this_week, last_week, this_month, last_month, this_year, last_year, mtd, ytd, all_time

または start_dateend_dateYYYY-MM-DD、完全な ISO 8601 タイムスタンプ、エポックミリ秒で渡します。明示的な日付は range をオーバーライドします。日付境界は UMAMI_TIMEZONE、または呼び出しごとの timezone 引数に従います。

フィルター

ほとんどのツールは、クエリをセグメントする filters オブジェクトを受け取ります:

{ "country": "US", "device": "mobile", "path": "/pricing" }

サポートされているキー: pathreferrertitlequerybrowserosdevicecountryregioncitylanguagehostnametageventdistinctIdutmSourceutmMediumutmCampaignutmContentutmTermsegmentcohort

内訳のディメンション

umami_get_metricsumami_traffic_reportbreakdowns 引数で使用できます: pathentryexittitlequeryreferrerchanneldomaincountryregioncitybrowserosdevicelanguagescreeneventhostnametagdistinctId

接続し終えたら、自然な言葉で質問できます:

  • 「先月のサイトの調子は前月と比べてどうでしたか?」 → range=last_month を指定した umami_get_stats

  • 「直近 30 日間のアナリティクスの全体像を見せて」 → umami_traffic_report

  • 「どのランディングページが最も直帰率が悪いですか?」 → type=entryexpanded=true を指定した umami_get_metrics

  • 「今週の問い合わせフォーム送信は何件ですか?」 → event=contact-form-submit を指定した umami_get_events_series

  • 「フロリダのモバイル訪問者にとって多いページを表示して」 → type=pathfilters={ device: "mobile", region: "US-FL" } を指定した umami_get_metrics

  • 「そのセッションは実際にサイトで何をしましたか?」 → umami_list_sessions、続けて umami_get_session

  • 「新しいクライアントのトラッキングと専用チームを設定し、jordan を追加して」 → website_namedomainteam_namegrant_user_id を指定した umami_onboard_client

  • 「サイトを公開する前にテストデータを削除したい」 → confirm=true を指定した umami_reset_website

設計メモ

  • Webサイトの解決。 どのツールもwebsite引数でUUID、名前、またはドメインを受け付けます。名前とドメインは60秒間キャッシュされたWebサイト一覧と照合され、黙って誤った推測をするのではなく、明確なあいまいさエラーを返します。Webサイトの作成・更新・削除を行うと、そのキャッシュは即座に更新されます。

  • リプレイ/ヒートマップの完全な設定(トグルのみではありません)。 umami_update_websiteは、UmamiのreplayConfigが受け入れるすべてのフィールドを公開します。有効化フラグ、リプレイとヒートマップでそれぞれ独立したサンプルレート、PIIマスクレベル、ブロックセレクタ、最大録画時間です。Umami公式ドキュメントはmaxDurationの単位について不整合があります(ある例はミリ秒、別の例は秒を示しています)。推測で済ませるのではなく、umami_get_recorder_configはトラッカー自体が呼び出すのと同じ公開エンドポイントを読み取るため、どちらのドキュメント例に頼らなくても、保存後に実際に有効な値を確認できます。

  • 導出メトリクス。 Umamiは生のbouncestotaltimeのカウントを返します。直帰率、訪問あたりのビュー数、平均訪問時間はこのサーバー側で計算されるため、どのレスポンスもそのまま読める形になっています。

  • 部分的な失敗。 umami_traffic_reportは内訳を並列実行し、インスタンスがサポートしていないディメンションを除外します。その際、スキップしたディメンションの名前を挙げることで、レポート全体を失敗させません。ディメンションの対応状況はUmamiのバージョンによって異なるため、これは重要です。

  • 破壊的操作はオプトインであり、二重確認はありません。 umami_reset_websiteumami_delete_websiteumami_delete_userumami_remove_team_userumami_delete_teamはすべて、リテラルconfirm: trueを引数として必須とし、それ以外では失敗します。独立した「本当に実行しますか?」のやりとりはありません。ツール呼び出し自体が確認であるため、エージェント(または人間)は、意図して実行する場合にのみconfirm: trueを渡すべきです。

  • umami_onboard_clientはベストエフォートであり、トランザクショナルではありません。 UmamiのAPIには複数ステップのトランザクション機能はありません。チームの作成に成功してもWebサイトのステップが失敗した場合、チームは残されたままになり、エラーメッセージにはその旨と次に確認すべきことが明示されます。静かにロールバックしたり、部分的な状態を隠したりはしません。

  • エスケープハッチ。 umami_api_getは意図的にGET専用で、上記の管理ツールとは分離されています。何も作成・変更・リセット・削除できません。

  • レスポンスサイズ。 レスポンスは25,000文字に制限され、limitoffset、またはより狭い範囲を指し示すメッセージが返されます。

テスト

npm test

test/smoke.mjsは、ダミーのUmami APIを立ち上げ、実際のMCPクライアントをstdioで接続し、アナリティクスツールとそのエラーパスを実行します。test/auth.mjsは、セルフホストのログイン交換と、キャッシュ済みベアラートークンが失効したときに発火するトークン更新をカバーします。test/admin.mjsは、Webサイト/ユーザー/チームのCRUD、チームメンバーシップ、複合オンボーディングツールをカバーし、すべての破壊的ツールがconfirm=trueなしでは実行を拒否することを確認します。

検証対象

Umami v3 APIリファレンス(2026年8月時点): /websites, /websites/:id, /websites/:id/stats, /pageviews, /metrics, /metrics/expanded, /events/series, /active, /daterange, /sessions, /sessions/:id, /sessions/:id/activity, /websites/:id/reset, /users, /admin/users, /users/:id, /users/:id/websites, /users/:id/teams, /teams, /teams/join, /teams/:id, /teams/:id/users, /teams/:id/users/:userId, /teams/:id/websites。クラウドへのリクエストは、ベアラートークンを用いてhttps://api.umami.is/v1へ送信されます。セルフホストへのリクエストは{base}/apiへ送信されます。ユーザーおよびチーム管理エンドポイントは、セルフホストインスタンスにのみ存在します。

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to interact with Umami Analytics for both Cloud and self-hosted instances. It provides tools to retrieve website statistics, visitor metrics, pageview trends, and real-time active user counts.
    5
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables natural language interaction with Plausible Analytics data to query traffic, visitors, engagement, and more using conversational questions.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Umami Analytics that provides read-only tools to query website stats, events, sessions, reports, and more, enabling natural language analytics queries.
    26
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for Umami analytics, enabling natural language queries of website stats, traffic trends, events, sessions, and analytics reports.
    13
    12
    1
    Elastic 2.0

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/arttus/umami-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server