appmetrica-mcp について
appmetrica-mcpは、AIエージェントからYandex AppMetricaのモバイル分析レポート、ログ、ファネル、キャンペーンを扱うMCPサーバーです。イベント監査に加え、ログイン済みChromeセッションを使ったワークスペース編集にも実験的に対応します。
主な機能
- 01レポート、指標、時系列の照会
- 02ファネルとセグメントの分析・管理
- 0313種類のテーブルから生ログをエクスポート
- 04クラッシュとプッシュキャンペーンの確認
- 05イベント計測の監査
- 06実験的なWebツールによるワークスペース作成
活用シーン
- 01アプリ利用状況と収益の推移比較
- 02購入またはクラッシュのイベントログ出力
- 03ファネル構築と不足イベントの特定
- 04プッシュキャンペーンの効果確認
MCP 対応
レポート、ログ、ファネル、セグメント、プッシュキャンペーンなどのAppMetrica分析・管理ツールをMCPクライアントに提供します。書き込み操作は既定で無効で、実験的なワークスペース機能にはログイン済みChromeセッションを使います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y appmetrica-mcpAPPMETRICA_OAUTH_TOKENシークレットYandex OAuth token with AppMetrica scope; optional when `npx appmetrica-mcp auth` saved credentialsAPPMETRICA_ALLOW_WRITESet to "true" to enable write tools (funnels, segments, push campaigns, web workspaces)APPMETRICA_WORKSPACES_FILEPath of the local JSON file with saved dashboard widget sets (default ~/.config/appmetrica-mcp/workspaces.json)APPMETRICA_BROWSER_PROFILEChrome profile directory for the experimental web session (default ~/.config/appmetrica-mcp/chrome-profile)APPMETRICA_BROWSER_PATHPath to a Chrome/Chromium executable for the experimental web session (default: system Google Chrome)APPMETRICA_BROWSER_CHANNELPlaywright browser channel for the experimental web session (chrome | chromium | msedge; default chrome)APPMETRICA_BROWSER_IDLE_MSIdle time after which the headless web session closes Chrome and frees the profile (default 120000)APPMETRICA_OAUTH_CLIENT_IDシークレットYour own Yandex OAuth app ClientID for `appmetrica-mcp auth` (default: bundled public app)APPMETRICA_CREDENTIALS_FILEシークレットWhere `appmetrica-mcp auth` stores the token (default ~/.config/appmetrica-mcp/credentials.json)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
45掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
AppMetrica MCP — Claude と AI エージェント向けの Yandex App Metrica MCP サーバー

AppMetrica 向けの MCP サーバーです。AppMetrica は Yandex のモバイル分析プラットフォームです。レポート、ファネル、ダッシュボード、生イベントログ、クラッシュデータ、プッシュ通知キャンペーンなど、アプリの分析情報に Claude が直接アクセスできるほか、AppMetrica 上でファネルやセグメントを作成できます。
Update 0.3.0 (October 2026). このサーバーは分析情報を読み取るだけでなく、AppMetrica 上で構築できるようになりました。Management API を通じた保存済みファネルとセグメントの作成、およびログイン済みの Chrome セッションを通じた実際のワークスペース/ダッシュボードの作成に対応しています(
web_*ツール、初回のみnpx appmetrica-mcp login)。さらに、時系列(get_report_bytime)、ドキュメントに基づく 197 個の指標カタログ、Logs API の全 13 テーブル、audit_events、ワークフロー用プロンプトanalytics_setupが加わりました。全一覧は CHANGELOG.md をご覧ください。
特長
AppMetrica では、モバイル製品の分析情報(ユーザー、セッション、イベント、ファネル、リテンション、収益、クラッシュ)がウェブ UI と複数の HTTP API に分かれています。この MCP サーバーでは、それらすべてをひとまとまりのツールとして利用できるため、Claude などの AI エージェントが次のような質問に答えたり、操作を実行したりできます。
- 「今週、DAU、新規ユーザー数、クラッシュのないセッション数はどのように変化しましたか?」
- 「初回起動から購入までのファネルを作成し、AppMetrica に保存してください。」
- 「アプリが送信しているイベント、使われなくなったイベント、登録ファネルに不足しているものを教えてください。」
- 「マーケティングチーム向けに、オーディエンス、収益、ファネルのウィジェットを含むワークスペースを作成してください。」
- 「9 月の購入イベントの生データをエクスポートし、国別に比較してください。」
Claude Code、Claude Desktop、その他の MCP クライアントで動作し、公式 MCP Registry に io.github.pavellunev/appmetrica-mcp として登録されています。
機能
- Reporting API — 指標(ユーザー、セッション、収益、クラッシュ、イベントなど)の集計。ディメンション別の内訳、時系列(
bytime)、フィルター、並べ替え、サンプリング制御に対応 - ファネル — 保存済みのウェブ UI ファネルまたはその場で指定したステップを使った、ステップ別のファネルレポート。絶対/相対コンバージョンに対応。保存済みファネルの作成、更新、削除
- ダッシュボードとワークスペース — Reporting API で算出するプリセットまたはカスタムのウィジェットセット。名前付きのウィジェットセットをワークスペースとしてローカルに保存
- ウェブセッション(試験運用) — ログイン済みのヘッドレス Chrome セッションを通じて、実際の AppMetrica ワークスペース(ダッシュボード)とウィジェットを作成、管理(
web_*ツール。公開 API では実行できません) - セグメント — 保存済みセグメントの一覧表示と、
segment_idによる各種レポートへの適用。セグメントの作成、更新、削除 - イベント監査 —
audit_eventsで、登録済みのイベントと実際のボリュームを比較し、計測設定の不足を報告 - ワークフロー用プロンプト —
analytics_setupで、アプリの分析、ファネル/セグメント/ダッシュボードの構築、計測設定の不足項目の一覧表示をエージェントに案内 - Logs API — 全 13 テーブルの生データをエクスポート(イベント、クラッシュ、エラー、インストール、セッション、ディープリンク、ポストバック、クリック、プッシュトークン、プロフィール、収益、eコマース、広告収益)
- Management API — アプリケーション、イベント名、コンバージョン、Logs API のステータス
- Push API — キャンペーンと統計の表示。書き込みモードが有効な場合はキャンペーンを作成
- デフォルトで安全 — 書き込み操作(プッシュキャンペーン、ファネル、セグメント)は、明示的に有効にしない限り無効
必要条件
- Node.js 22+
- 1 つ以上のアプリケーションを登録した AppMetrica アカウント
- Yandex OAuth トークン(下記を参照)
- 任意。試験運用の
web_*ツールを使用する場合のみ必要:Google Chrome と初回のnpx appmetrica-mcp login(「ウェブセッション」を参照)
OAuth トークンの取得
オプション A — コマンド 1 つ(推奨)
npx appmetrica-mcp auth
ウィザードを起動すると、Yandex の同意ページが Chrome ウィンドウで開きます(ウェブセッションツールと同じ Chrome プロファイルを使うため、初回以降はすでにログインしています)。Разрешить をクリックすると、ウィザードがページの URL から確認コードを取得します。コピーする必要はありません。トークンは ~/.config/appmetrica-mcp/credentials.json に保存され(モード 0600。Yandex のトークンは約 1 年間有効なので、期限が切れたら auth を再実行してください)、サーバーが自動的に読み込みます。APPMETRICA_OAUTH_TOKEN は不要です。最後に、ウィザードから AppMetrica のウェブセッションへのログインも選択できます(web_* ワークスペースツールでのみ必要です)。
詳細:
- バンドルされた公開
appmetrica-mcpOAuth アプリを使う、PKCE 対応の標準的な OAuth 2.0 認可コードフローです。クライアントシークレットは使用しません。 - Google Chrome が必要です(または
APPMETRICA_BROWSER_PATH/APPMETRICA_BROWSER_CHANNELを設定してください)。Chrome がない場合や SSH 経由の場合は、npx appmetrica-mcp auth --manualを使用してください。デフォルトのブラウザーで同じページが開き、Yandex が表示するコードをターミナルに貼り付けます。 - バンドル版ではなく独自の Yandex OAuth アプリを使用する場合は、
APPMETRICA_OAUTH_CLIENT_IDを設定してください(リダイレクト URI はhttps://oauth.yandex.ru/verification_code、AppMetrica の読み取り/書き込みアクセス権が必要です)。そのアプリにhttp://127.0.0.1:8742/callbackも登録されている場合、--loopbackを指定すると Chrome の代わりにローカルコールバックサーバーを起動します(APPMETRICA_OAUTH_PORTでポートを変更できます)。 - MCP サーバー自体がブラウザーを開くことはありません。トークンが見つからない場合、ツールは「
npx appmetrica-mcp authを実行してください」という短いメッセージを返します。
オプション B — トークンを自分で貼り付ける
ロシア語版 OAuth ポータル(oauth.yandex.ru)を使用してください。国際版(oauth.yandex.com)では、UI に AppMetrica のスコープが表示されません。
- oauth.yandex.ru/client/new にアクセスし、アプリ名を入力して、Web services を選択し、コールバック URI に
https://oauth.yandex.ru/verification_codeを設定します。 - Доступы (アクセス権) → AppMetrica で、
Чтение данных AppMetrica(必須)とЗапись данных AppMetrica(書き込みツールを使う場合は任意)を有効にします。ClientID をコピーします。 https://oauth.yandex.ru/authorize?response_type=token&client_id=CLIENT_IDを開いてログインし、認可します。リダイレクト URL からaccess_tokenをコピーし、APPMETRICA_OAUTH_TOKENとして渡します。
トークンはデフォルトでは期限切れになりません。passport.yandex.ru/profile/access からいつでも取り消せます。環境変数に設定したトークンは、保存済みの認証情報ファイルより常に優先されます。
インストール
Claude Code(推奨)
claude mcp add appmetrica -- npx -y appmetrica-mcp
npx appmetrica-mcp auth # one-time browser login (or pass -e APPMETRICA_OAUTH_TOKEN=... instead)
書き込み操作(キャンペーンのプッシュ、ファネルやセグメントの作成/更新/削除)を有効にするには:
claude mcp add appmetrica \
-e APPMETRICA_ALLOW_WRITE=true \
-- npx -y appmetrica-mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に追加します:
{
"mcpServers": {
"appmetrica": {
"command": "npx",
"args": ["-y", "appmetrica-mcp"],
"env": {
"APPMETRICA_ALLOW_WRITE": "true"
}
}
}
}
ソースからビルド
git clone https://github.com/pavellunev99/app_metrica_mcp
cd app_metrica_mcp
npm install
npm run build
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
APPMETRICA_OAUTH_TOKEN | いいえ | — | Yandex OAuth トークン。npx appmetrica-mcp auth で保存済みの場合は省略できます(環境変数の値が優先されます) |
APPMETRICA_CREDENTIALS_FILE | いいえ | ~/.config/appmetrica-mcp/credentials.json | auth がトークンを保存する場所 |
APPMETRICA_OAUTH_CLIENT_ID | いいえ | バンドル済みの公開アプリ | auth に使用する独自の Yandex OAuth アプリの ClientID |
APPMETRICA_OAUTH_PORT | いいえ | 8742 | auth --loopback のコールバックサーバーのポート(デフォルトの Chrome フローでは無視されます) |
APPMETRICA_ALLOW_WRITE | いいえ | false | 書き込みツールを有効にするには true に設定します。対象はプッシュキャンペーンの作成、ファネルとセグメントの作成・更新・削除です |
APPMETRICA_WORKSPACES_FILE | いいえ | ~/.config/appmetrica-mcp/workspaces.json | ローカルワークスペース(保存済みダッシュボードウィジェットセット)を格納する JSON ファイル |
APPMETRICA_BROWSER_PROFILE | いいえ | ~/.config/appmetrica-mcp/chrome-profile | 実験的な web_* ツールで Yandex へのログイン状態を保持する Chrome プロファイルディレクトリ |
APPMETRICA_BROWSER_PATH | いいえ | — | Chrome/Chromium 実行ファイルへのパス(チャンネル設定より優先されます) |
APPMETRICA_BROWSER_CHANNEL | いいえ | chrome | ウェブセッションに使用するブラウザチャンネル:chrome、chromium、msedge、... |
APPMETRICA_BROWSER_IDLE_MS | いいえ | 120000 | ヘッドレスウェブセッションが Chrome を終了してプロファイルを解放するまでのアイドル時間(これにより login を実行できます) |
利用可能なツール
管理
| ツール | 説明 |
|---|---|
list_applications | アカウント内のすべての AppMetrica アプリケーションを一覧表示します |
get_application | ID を指定して特定のアプリケーションの詳細を取得します |
list_events | アプリケーションのクライアントイベント名を一覧表示します(ファネルのステップとして使用します) |
list_conversions | 設定済みのコンバージョン(アトリビューションされたイベント)を一覧表示します |
get_logs_api_status | アカウントで Logs API が有効かどうかを確認します |
レポート
| ツール | 説明 |
|---|---|
get_report | 期間の集計指標を取得します。filters、sort、segment_id、currency、accuracy、include_undefined、lang、offset を指定できます |
get_report_bytime | 同じデータを時系列で取得します(group:day/week/month/hour/all)。呼び出しごとに名前空間のプレフィックスを 1 つ指定します |
get_drilldown | ディメンション値を掘り下げて、詳細な内訳を取得します |
list_metrics | 指標/ディメンションのカタログ(指標 197 件、ディメンション 188 件)。概要を取得するか、search/namespace/kind/limit で項目を絞り込めます |
audit_events | 期間のイベント計測を監査します。登録済み・アクティブ・ボリュームゼロのイベントを確認し、任意の expected_events と平易な言葉での所見を指定できます(読み取り専用) |
セグメント
| ツール | 説明 |
|---|---|
list_segments | 保存済みのセグメント(id、name、expression)を一覧表示します |
get_segment | 1 つのセグメントの全フィールドを取得します |
ファネル
| ツール | 説明 |
|---|---|
list_funnels | 保存済みのファネルと、デコードされたステップおよびオプションを一覧表示します |
get_funnel_report | 保存済みファネル(funnel_id)またはアドホックな steps について、ステップごとのデバイス数とコンバージョンを取得します |
ダッシュボードとワークスペース
| ツール | 説明 |
|---|---|
get_dashboard | 期間を指定して、プリセットウィジェット(widgets)または保存済みワークスペース(workspace)を実行します |
list_dashboard_presets | 指標を含むプリセットウィジェットを一覧表示します |
list_workspaces | ローカルに保存されたワークスペースを一覧表示します |
get_workspace | ウィジェットの仕様を含むワークスペースを取得します |
save_workspace | ローカルワークスペースを作成または更新します(ローカルファイルのみ) |
delete_workspace | ローカルワークスペースを削除します(ローカルファイルのみ) |
Web セッション(実験的)
ログイン済みのヘッドレス Chrome を通じて AppMetrica Web UI の内部 API を操作する非公式ツールです。詳しくはWeb セッションを参照してください。すべてのツールで、npx appmetrica-mcp login を一度実行する必要があります。Write と記されたツールでは、APPMETRICA_ALLOW_WRITE=true も必要です。
| ツール | アクセス | 説明 |
|---|---|---|
web_session_status | 読み取り | Web セッションの状態(ログイン済みか、Yandex ログイン、プロファイルディレクトリ)を確認します |
web_list_workspaces | 読み取り | アプリの AppMetrica ワークスペース(システム用およびカスタム)を一覧表示します |
web_get_workspace | 読み取り | 1 つのワークスペースのグループ、ヘッダー、ウィジェットの名前、メトリクス、ディメンションを取得します |
web_list_widget_presets | 読み取り | Web のプリセットウィジェット(widget_id は preset の値)を一覧表示します。category は任意です |
web_list_report_namespaces | 読み取り | Reporting API のプレフィックスを含むレポート名前空間を一覧表示します。namespace_id を指定すると、有効なメトリクスとディメンションを取得します |
web_create_workspace | 書き込み | 1 回の呼び出しで、groups({header?, widgets?})を指定してワークスペースを作成します |
web_add_widgets | 書き込み | ワークスペースにウィジェットを 1 行追加します(position は任意です) |
web_add_header | 書き込み | セクションヘッダーの行を追加します |
web_rename_workspace | 書き込み | ワークスペースの名前を変更します |
web_remove_widget | 書き込み | dashboard_widget_id でウィジェットを削除します |
web_delete_workspace | 書き込み | カスタムワークスペースを削除します(システム用の <appId>/… ダッシュボードは削除できません) |
web_push_workspace | 書き込み | ローカルのワークスペースから AppMetrica ワークスペースを作成します(workspace、name は任意です) |
ログ
| ツール | 説明 |
|---|---|
export_events | カスタムイベントの生ログをエクスポートします |
export_crashes | クラッシュの生ログをエクスポートします |
export_installations | インストールの生ログをエクスポートします |
export_logs | 任意の Logs API テーブル(13 テーブル)を、フィールドの検証付きでエクスポートします。push_tokens では日付は不要です |
プッシュ通知
| ツール | アクセス | 説明 |
|---|---|---|
list_push_campaigns | 読み取り | ステータスフィルターを任意で指定して、プッシュ通知キャンペーンを一覧表示します |
get_push_stats | 読み取り | キャンペーンの配信統計を取得します |
create_push_campaign | 書き込み | プッシュキャンペーンを作成します(APPMETRICA_ALLOW_WRITE=true が必要です) |
書き込み操作
以下の操作はすべて、APPMETRICA_ALLOW_WRITE=true(および書き込みアクセス権のある OAuth トークン)が必要です。これが設定されていない場合は、エラーが返され、リクエストは送信されません。
| ツール | 説明 |
|---|---|
create_funnel | 保存済みファネルを作成します(name、steps、comment、foreground_only、single_session、events_between_steps) |
update_funnel | ファネルの名前やコメントを変更するか、ステップとオプションを再設定します(保存済みファネルのその他の部分は保持されます) |
delete_funnel | 保存済みファネルを削除します |
create_segment | events からセグメントを作成します(指定したイベントをすべて実行したユーザー) |
update_segment | セグメントのnameやeventsを変更します |
delete_segment | セグメントを削除します |
create_push_campaign | プッシュキャンペーンを作成します(「プッシュ通知」を参照) |
web_create_workspace、web_add_widgets、web_add_header、web_rename_workspace、web_remove_widget、web_delete_workspace、web_push_workspace | 実験的なウェブセッション用ツールです(「ウェブセッション」を参照)。OAuth トークンではなく、Chrome のログインセッションを使用します |
作成できるものとできないもの。 ファネルとセグメントは Management API を通じて作成され、AppMetrica のウェブ UI に表示されます。ダッシュボードとワークスペースは、公開 API では作成できません。ウェブ UI では、Cookie セッションと CSRF トークンが必要な内部 GraphQL エンドポイントの背後に置かれており、OAuth トークンでは利用できないためです。実験的なweb_*ツールは、ログイン済みの Chrome セッションを使ってこの制限を回避します(「ウェブセッション」を参照)。それ以外の場合は、ローカルのワークスペースとプリセットを使用してください(「ダッシュボードとワークスペース」を参照)。analytics_setupプロンプトは、手動で作成できる「ウェブダッシュボードの設計案」も出力します。
保存済みファネルでサポートされるのは、ウェブのファネルエディターに表示できる内容のみです。具体的には、クライアントイベントのステップ(1 つのステップに複数のイベントを指定した場合はいずれか。各ステップでイベントパラメーターkey/valueを指定できるのは最大 1 つで、そのステップのすべてのイベントに適用されます)とinstallステップです。その他のステップ種別(crash、purchase、session_startなど)や、1 ステップに複数のパラメーターを指定することはできません。これらはget_funnel_reportでその場で実行してください。セグメントはeventsのみから作成されます(指定したイベントをすべて実行したユーザー)。API はウェブエディターのフィルター JSON からセグメント式を生成するため、その他の条件種別(デバイス、地域、バージョン、プロフィールなど)はウェブ UI で作成する必要があります。その場でフィルタリングするには、レポートツールのfiltersパラメーターを使用してください。
プロンプト
| プロンプト | 引数 | 説明 |
|---|---|---|
analytics_setup | app_id、project_path(任意)、goal(任意) | エンドツーエンドのワークフローです。アプリのイベント(過去 28 日間)を監査し、ソースコードから AppMetrica のイベント呼び出しを検索し、3〜6 個のファネルを設計して検証します(書き込みモードが有効な場合はcreate_funnelで保存し、そうでない場合は出力します)。セグメントを作成し、ダッシュボードを構築します(get_dashboard+save_workspaceを実行し、ウェブセッションにログインしている場合はweb_push_workspaceで AppMetrica に反映し、そうでない場合はウェブダッシュボードの設計案を出力します)。最後に「計測の不足箇所」セクションを作成します。 |
Funnels
get_funnel_report は、ウェブ版の「ファネル」レポートを再現します。Reporting API からステップごとの指標 ym:uf:devicesInStep1..N(シングルセッションのファネルでは ym:sf:)を読み込みます。これは、各ステップを順番に完了したデバイス数です。絶対コンバージョン率はステップ 1 を基準にし、相対コンバージョン率は前のステップを基準にします。
- 保存済みファネル —
list_funnelsにはウェブ UI で作成したファネルが表示されます。funnel_idを渡すと、保存済みのパターンがそのまま使われます(「ステップ間のイベント」がオフの状態で保存されたファネルでは、ウェブ UI と同様に、エディターのステップから制限が再構築されます)。このモードでは、以下のファネルオプションは無視されます。 - アドホックファネル —
stepsを渡します。各ステップには、クライアントevents(いずれかのイベント)、任意のevent_params(key==value)、または別のkind(install、session_start、crash、error、purchase、ad_revenue、deeplink、any_event)を指定できます。イベント名を確認するにはlist_eventsを使います。 - オプション(アドホック):
foreground_only(デフォルトはtrue)、single_session(デフォルトはfalse)、events_between_steps(デフォルトはtrue。falseの場合はステップをnextで結合し、funnel_restrictionを送信します)、window_seconds。 - 内訳 —
dimensions(完全なキー、またはdate、appVersion、operatingSystemInfo、regionCountryなどの末尾部分)、filters、segment_id、group(day/week/month。時系列表示用のbytimeリクエストを 1 回追加します)。
アドホックファネルの例:
{
"app_id": 12345,
"date_from": "2026-09-01",
"date_to": "2026-09-30",
"steps": [
{ "title": "Open", "events": ["app_open"] },
{ "title": "Paywall", "events": ["paywall_shown"] },
{ "title": "Purchase", "kind": "purchase" }
],
"dimensions": ["operatingSystemInfo"]
}
ダッシュボードとワークスペース
AppMetrica のウェブワークスペースと「Обзор」ダッシュボードは、内部の Cookie 認証エンドポイントで提供されており、公開 API(OAuth トークン)からはアクセスできません。そのため、この MCP はダッシュボードを独自に構築します(実際のウェブワークスペースを管理するには、実験的な Web セッション ツールを使います。web_push_workspace はローカルのワークスペースをそこにコピーします)。
- プリセット —
get_dashboardは Reporting API から算出した名前付きウィジェットを実行します。プリセットはaudience、installs、installs_by_country、engagement、app_versions、events、crashes、errors、anr、revenue、ad_revenue、ad_revenue_by_type、conversions、traffic、push、funnels(保存済みファネルすべて)、retention(公開 API では利用できず、unavailableの注記を返します)です。デフォルトのセットはaudience、installs、engagement、crashes、eventsです。各プリセットの指標はlist_dashboard_presetsで確認できます。 - ウィジェットごとに 1 リクエストを順番に実行し、名前空間を混在させることはありません。ウィジェットが失敗すると、ダッシュボード全体を失敗させる代わりに
{name, error}を返します。クォータ(1 秒あたり 30 リクエスト、1 日あたり 5000 リクエスト)に注意してください。groupを指定すると、内訳のないウィジェットが時系列になり、currency(デフォルトはUSD)は収益ウィジェットに適用され、segment_idはすべてのウィジェットを保存済みセグメントに限定します。 - ワークスペース —
save_workspaceは、名前付きのウィジェットセットをローカルの JSON ファイル(デフォルトは~/.config/appmetrica-mcp/workspaces.json。APPMETRICA_WORKSPACES_FILEで上書き可能)に保存します。get_dashboard(workspace=...)で実行できます。ウィジェットにはnameと、preset、metrics(カスタム、単一の名前空間。dimensions、filters、segment_id、limitは任意)、funnel_idのいずれか 1 つだけを指定します。ワークスペースではデフォルトのapp_idを定義できます。ワークスペース用ツールが操作するのはローカルファイルのみです。APPMETRICA_ALLOW_WRITEによる制限はなく、AppMetrica に書き込むこともありません。
Web セッション(実験的):AppMetrica のワークスペースとダッシュボード
機能。 web_* ツールを使うと、実際の AppMetrica ワークスペース(ダッシュボード)とそのウィジェット(公開 API では管理できない製品機能)を一覧表示、作成、編集、削除できます。ウェブ UI は内部 GraphQL エンドポイント(POST https://appmetrica.yandex.ru/api)を使用します。このエンドポイントが受け付けるのは、Yandex の Cookie セッションと、ページに埋め込まれた CSRF トークンのみです。OAuth トークンは拒否されます。そのため、この MCP は実際の Google Chrome(playwright-core、永続プロファイル)を介してエンドポイントを操作し、ログイン状態を再利用します。
ログイン(初回のみ)。
npx appmetrica-mcp login # opens Chrome; log in to Yandex, the window closes by itself
npx appmetrica-mcp session-status # prints {"logged_in": true, "login": "...", ...}
その後のすべての web_* 呼び出しでは、保存したプロファイルをヘッドレスで再利用します(最初の呼び出しでは Chrome が起動し、約 7 秒かかります。セッションはすべての呼び出しで共有され、サーバーの終了時に閉じられます)。Yandex はアクセスのたびにセッションを更新し、CSRF トークンも自動的に更新されるため、再ログインが必要なのは Yandex にセッションが無効化された場合だけです。その場合、ツールは npx appmetrica-mcp login の実行を促す「未ログイン」エラーを返します。Chrome プロファイルを開けるのは一度に 1 つの Chrome だけなので、ヘッドレスセッションは web_* の呼び出しが 2 分間ないと Chrome を閉じ(APPMETRICA_BROWSER_IDLE_MS)、ログアウト状態を検出した場合もすぐに閉じます。ツールがアイドル状態のときは login を実行してください。Chrome がプロファイルを使用中と報告した場合は、数分待つかサーバーを停止してください。
セキュリティに関する注意。 プロファイルには、そのアカウントの Yandex セッション全体(スコープが限定されたトークンではありません)が保存され、Chrome は基本的なキーチェーンを使用してセッションを保管します。そのため、プロファイルディレクトリは認証情報として取り扱ってください。ご自身のマシンに保管し、必要な AppMetrica アプリのみにアクセスできる専用の Yandex アカウントを使用することをおすすめします。web_session_status はアカウント名(yandex_login)を返します。それ以外の Cookie やトークンの値が返されることはありません。
環境変数。 APPMETRICA_BROWSER_PROFILE(プロファイルディレクトリ。デフォルトは ~/.config/appmetrica-mcp/chrome-profile)、APPMETRICA_BROWSER_PATH(Chrome/Chromium の実行ファイル)、APPMETRICA_BROWSER_CHANNEL(デフォルトは chrome。chromium、msedge など)。要件:Google Chrome がインストールされていること(または APPMETRICA_BROWSER_PATH でブラウザーが指定されていること)。
ウィジェット。 ウィジェットを受け取るすべてのツールは、同じ WidgetInput を受け入れます。以下のいずれか 1 つを指定してください。
{ "preset": "AudienceMulti" }— Web のプリセットウィジェット(ID はweb_list_widget_presetsで確認できます。例:Installs、Audience、Crashes、CrashFreeSessions、Revenue、AppVersion、PushSent)。view_kindは省略可能です。{ "funnel_id": 267628 }— 保存済みのファネル(list_funnels)をFunnelsウィジェットとして使用します(デフォルトのビューはFunnelFirstStep)。{ "name": "...", "metrics": ["ym:u:users"], "dimensions": ["ym:u:appVersion"], "segment_id": 5, "view_kind": "Table" }— カスタムウィジェットです。レポートの名前空間は、最初のメトリックのプレフィックスから推定されます(ym:u:→Audience、ym:r2:→Revenue、ym:ce2:→Eventsなど。複数の名前空間で共有されるプレフィックスの場合は、ym:i:にCohort、ym:ts:にUserAcquisitionが使用されます)。または、namespaceで明示的に指定できます(web_list_report_namespaces)。メトリック ID とディメンション ID は名前空間に対して検証されます。不明な ID を指定すると、類似する ID の一覧とともにエラーになります。
view_kind の値は、Timeline(デフォルト)、TimeColumn、Table、Pie、MultiTimeColumn、FunnelFirstStep です。それ以外の文字列は変更されずに渡されます。グループは { "header": "text", "widgets": [...] } の形式です。両方を含むグループは、ヘッダー行の後にウィジェット行を表示します。AppMetrica では、ワークスペースあたりウィジェットは 20 個、グループは 40 個まで、アプリあたりダッシュボードは 20 個までに制限されています。
{
"app_id": 12345,
"name": "Product overview",
"groups": [
{ "header": "Audience" },
{ "widgets": [{ "preset": "AudienceMulti" }, { "preset": "NewUsers" }] },
{ "header": "Funnels" },
{ "widgets": [{ "funnel_id": 267628 }] },
{ "widgets": [{ "name": "Users by version", "metrics": ["ym:u:users"], "dimensions": ["ym:u:appVersion"], "view_kind": "Table" }] }
]
}
web_create_workspace は、1 回のリクエストでワークスペース全体を作成し、{dashboard_id, name, url, groups} を返します。
ローカルワークスペース → AppMetrica。 web_push_workspace(app_id, workspace, name?) は、save_workspace で保存されたワークスペースを受け取り、AppMetrica に作成します。ウィジェット名を含むヘッダー行が 1 行と、ローカルの各ウィジェットに対応するウェブウィジェットの行が作成されます。明確な対応先がある場合、ローカルプリセットはウェブプリセットにマッピングされます。audience → AudienceMulti、installs → Installs、engagement → UserTimeSpent + AvgSessionTime + UserSessionsCount、app_versions → AppVersion、crashes → CrashFreeSessions + Crashes、errors → ErrorLogsIos + ErrorLogsAndroid、revenue → RevenueTotal + RevenuePurchases、ad_revenue → AdRevenue + AdRevenueARPU + AdRevenueECPM、traffic → Clicks + Installs + InstallConversion、push → PushSent + PushReceived + PushOpened、retention → RetentionDynamics、funnels → 保存済みのファネルごとに 1 つの Funnels ウィジェット。installs_by_country、events、conversions、anr、ad_revenue_by_type と、ローカルのカスタム metrics ウィジェットはカスタムウィジェットになります。ローカルの funnel_id ウィジェットは Funnels ウィジェットになります。作成できないウィジェット(不明なメトリック ID、保存済みファネルがない場合)はスキップされ、skipped に記載されます。notes には引き継げなかった項目(プリセットウィジェットの filters、segment_id)が記載されます。
制限事項。
- これはウェブクライアントが使用する非公式の内部 APIです。予告なく変更されてツールが動作しなくなる可能性があります。GraphQL ドキュメントは
src/web/operations.tsにあります。更新するには、npm run buildの後にnode scripts/record-graphql.mjsを実行して実際の通信を記録し(ログイン済みのプロファイルで Chrome が開き、行った操作がすべて記録されます)、それに応じてsrc/web/operations.tsのフラグメント/オペレーションを更新してください。 - MCP サーバーを実行するマシンに Google Chrome と Yandex ログインが必要です。
- ミューテーションには
APPMETRICA_ALLOW_WRITE=trueが必要です。<appId>/Generalなどのシステムダッシュボードは、web_delete_workspaceでは削除できません。 - Yandex によりウェブエンドポイントがレート制限される(HTTP 429)ことがあります。その場合は 1 分待ってから再試行してください。
API カバレッジ
- Reporting API —
data、data/bytime、data/drilldown。フィルター、並べ替え、セグメント(segment_id)、通貨とサンプリングのパラメーター、funnel_patternによるファネルのステップメトリック。 - Logs API — 13 の全テーブル:
events、crashes、errors、installations、sessions_starts、deeplinks、postbacks、clicks、push_tokens、profiles_v2、revenue_events、ecommerce_events、ad_revenue_events。 - Management API — アプリケーション、イベント一覧、コンバージョン、セグメント、保存済みファネル(読み取り、および書き込みモードでの作成/更新/削除)、Logs API のステータス。
- メトリック/ディメンションのカタログと Logs API のフィールド一覧は公式ドキュメントに基づいており、
src/catalog.generated.tsに保存されています。node scripts/update-catalog.mjsで再生成できます。
使用例
接続後、Claude に次のようなことを依頼できます。
- 「AppMetrica のアプリケーション一覧を表示して」
- 「アプリ 12345 の過去 7 日間の DAU とセッション数を表示して」
- 「アプリ 12345 の 2024-01-01 から 2024-01-07 までのクラッシュログをエクスポートして」
- 「アプリ 12345 で現在有効なプッシュキャンペーンは?」
- 「アプリバージョン別の新規ユーザー数を表示して」
- 「先月のアプリ 12345 の保存済みファネルのコンバージョンを表示して」
- 「9 月の iOS ユーザーについて、app_open → paywall_shown → purchase のファネルを作成して」
- 「アプリ 12345 の過去 14 日間の概要ダッシュボードを週単位で作成して」
- 「audience、crashes、revenue ウィジェットを含む「weekly」ワークスペースを保存して」
- 「アプリ 12345 の過去 1 か月のイベントを監査して、利用されていないイベントを教えて」
- 「app_open → paywall_shown → purchase_completed のファネルと、ペイウォールを見たユーザーのセグメントを作成して」(
APPMETRICA_ALLOW_WRITE=trueが必要です) - 「アプリ 12345 と ~/Projects/MyApp で analytics_setup プロンプトを実行して」
- 「audience、クラッシュフリーセッション、自分のペイウォールファネルを含む「Product overview」という AppMetrica ワークスペースをアプリ 12345 用に作成して」(実験的なウェブセッション。
APPMETRICA_ALLOW_WRITE=trueが必要です)
レート制限
AppMetrica は、すべての API リクエストに次の制限を適用します。
- OAuth トークンごとに 30 リクエスト / 秒
- OAuth トークンごとに 5,000 リクエスト / 日
クライアントは、429 および 5xx のレスポンスを受け取ると、指数バックオフ(1s → 2s → 4s、最大 3 回)で自動的に再試行します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。