Umami MCP
公式あなたのAIアシスタントをUmamiに接続し、平易な言葉でウェブサイトのアナリティクスについて質問できます。
Umami MCPで何ができますか?
- アクセス可能なサイトを一覧表示 — アクセスできるすべてのウェブサイトを表示するよう依頼します。他のクエリ用の
websiteIdを取得するには、最初にlist_websitesを呼び出します。 - トラフィックサマリーを取得 —
get_website_statsを使用して、ページビュー、訪問者数、直帰率、滞在時間を前回期間との比較を含めて依頼します。 - トラフィックソースを分析 —
get_website_metricsを使用して、どのページ、リファラー、国、デバイスがトラフィックを生み出したかを依頼します。 - カスタムイベントを追跡 —
get_event_stats、get_event_series、またはget_event_propertiesを使用して、イベントの合計、系列、プロパティ値について依頼します。 - セッションを検査 —
get_sessionsを使用したページ分割されたセッションリスト、またはget_sessionを使用した単一セッションのアクティビティタイムラインを依頼します。 - 分析モデルを実行 — 保存済みファネルの実行(
run_funnel)、コホートリテンションの表示(run_retention)、目標コンバージョンの確認(get_goals)を依頼します。
ホスト型 MCP サーバー
npx add-mcp 'https://cloud.umami.is/mcp'Claude Code、Codex、Cursor、VS Code などにインストールできます
ドキュメント
@umami/mcp
Model Context Protocol サーバー for Umami
アナリティクス。Claude、ChatGPT、Cursor、その他のMCPクライアントが、@umami/api-client を通じてUmami APIを呼び出す読み取り専用ツールを使って、ウェブサイトのトラフィックに関する質問に回答できるようにします。
MCPサーバーはデータベースと直接通信することはありません。すべてのツールは公開APIを通じて動作し、Webアプリと同じユーザー/チーム権限チェックが適用されます。
ツール
| ツール | 目的 |
|---|---|
list_websites | アクセス可能なウェブサイトを検索します(最初に呼び出して websiteId を取得してください)。 |
get_website_daterange | 記録データが存在する最古および最新の日付。 |
get_website_stats | ページビュー、訪問者、訪問数、直帰率、滞在時間 + 前期間との比較。 |
get_website_traffic | 分、時間、日、月、年単位のページビュー/訪問の時系列。 |
get_website_metrics | 上位ページ、参照元、チャネル、国、ブラウザ、デバイス、UTM、イベント。 |
get_realtime | 現在アクティブな訪問者。 |
get_events | 個別の追跡イベント(ページネーション対応)。 |
get_event_stats | カスタムイベント合計 + 前期間との比較。 |
get_event_series | イベント名ごとにグループ化された、時間経過に伴うカスタムイベント数。 |
get_event_properties | カスタムイベントのプロパティ名、または1つのプロパティの値。 |
get_sessions | 訪問者セッション(ページネーション対応)。 |
get_session_stats | セッションレベルの合計:訪問者、訪問数、ページビュー、イベント、国。 |
get_annotations | タイムライン上の日付付きメモ(ローンチ、キャンペーン)で変化を説明。 |
list_segments | 保存済みセグメントとコホート。filters.segment / .cohort でIDを渡します。 |
get_session | アクティビティタイムラインとプロパティを含む1つのセッション。 |
list_funnels | ステップ付きの保存済みファネル(run_funnel 用に funnelId を取得)。 |
run_funnel | 保存済み funnelId またはアドホックなページ/イベントステップからのコンバージョンファネル。 |
get_goals | 範囲内のコンバージョン、訪問者、率を含む保存済みゴール。 |
run_journey | 訪問者がたどる最も一般的な経路。 |
run_retention | コホート定着率テーブル。 |
run_attribution | コンバージョンに対するファースト/ラストクリックアトリビューション。 |
get_revenue | 収益の合計、時系列、内訳。 |
get_performance | Core Web Vitals(LCP、INP、CLS、FCP、TTFB)のパーセンタイル、トレンド、内訳。 |
すべてのツールは読み取り専用です。日付はISO 8601形式です。結果はページネーションされ、ページサイズには上限があります。
リモート:Umami Cloud
既存のCloud APIキーを使用して https://cloud.umami.is/mcp に接続します:
Authorization: Bearer api_<your-cloud-api-key>
カスタムヘッダーをサポートするクライアントは、代わりに x-umami-api-key を使用できます。両方のヘッダーが提供された場合、同じキーを含める必要があります。APIキーまたはベアラーヘッダー設定をサポートするクライアントを使用してください。
Cloud MCPは、Cloud APIと同じサブスクリプション要件とウェブサイト/チーム権限を持ちます。すべてのツールはCloud APIゲートウェイを呼び出し、キーを検証してリクエストをリージョンにルーティングします。
リモート:セルフホスト
Umamiインスタンスの 設定 → APIキー でAPIキーを生成し、Streamable HTTPエンドポイントでMCPクライアントを設定します:
https://your-umami.example.com/mcp
キーを使用して認証ヘッダーを設定します:
Authorization: Bearer umami_<your-api-key>
ベアラートークンまたはカスタム認証ヘッダーをサポートするクライアントを使用してください。エンドポイントはセルフホストのAPIキーを受け入れます。ブラウザのログイントークンはサポートされていません。ツールは読み取り専用で、キー所有者の既存のユーザー/チーム権限を尊重します。設定でキーを失効させるとアクセスが切断されます。MCPはデフォルトで無効です。エンドポイントを有効にするには MCP_ENABLED=1 を設定します。
ローカル / stdio
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@umami/mcp"],
"env": {
"UMAMI_URL": "https://analytics.example.com",
"UMAMI_API_TOKEN": "umami_…"
}
}
}
}
| 変数 | 説明 |
|---|---|
UMAMI_URL | セルフホストインスタンスのURL(/api が追加されます)。 |
UMAMI_API_URL | 代わりに完全なAPIベースURL。例:https://api.umami.is/v1。 |
UMAMI_API_TOKEN | APIキーまたはログイントークン(セルフホスト)。 |
UMAMI_API_KEY | Umami Cloud APIキー。 |
Cloud stdioの場合、UMAMI_API_KEY を設定し、UMAMI_URL と UMAMI_API_TOKEN を省略します:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@umami/mcp"],
"env": { "UMAMI_API_KEY": "api_<your-cloud-api-key>" }
}
}
}
プロンプト例
- 私のウェブサイトを表示してください。
- 先週 example.com の訪問者は何人でしたか?
- 今月の上位10ページは何ですか?
- 今月のトラフィックを前月と比較してください。
- トラフィックはどこから来ていますか?
- 昨日発生したサインアップイベントは何ですか?
- ユーザー abc123 のセッションを表示してください。
- 先月のチェックアウトイベントで人々が選択した料金プランはどれですか?
- 今週、毎日何件のサインアップイベントが発生しましたか?
- 先月のチェックアウトファネルを実行してください。
- 今四半期のゴールに対してどうですか?
- モバイルでLCPが最も悪いページはどれですか?
- トラフィックが急増した日に何が起こりましたか?
プログラムでの使用
import { UmamiClient } from '@umami/api-client';
import { createUmamiMcpServer } from '@umami/mcp';
const server = createUmamiMcpServer({
client: new UmamiClient({ baseUrl, token }),
});
createUmamiMcpHttpHandler({ createClient }) は、任意のWebフレームワークに埋め込むためのStreamable HTTPハンドラーを返します。ホストはベアラートークンを検証し、authInfo を渡します。