mcpField
A
appmetrica-mcp

appmetrica-mcp

ローカル
github.com/pavellunevデータ・分析34 週間前に更新

appmetrica-mcp について

appmetrica-mcpは、AIエージェントからYandex AppMetricaのモバイル分析レポート、ログ、ファネル、キャンペーンを扱うMCPサーバーです。イベント監査に加え、ログイン済みChromeセッションを使ったワークスペース編集にも実験的に対応します。

主な機能

  1. 01レポート、指標、時系列の照会
  2. 02ファネルとセグメントの分析・管理
  3. 0313種類のテーブルから生ログをエクスポート
  4. 04クラッシュとプッシュキャンペーンの確認
  5. 05イベント計測の監査
  6. 06実験的なWebツールによるワークスペース作成

活用シーン

  1. 01アプリ利用状況と収益の推移比較
  2. 02購入またはクラッシュのイベントログ出力
  3. 03ファネル構築と不足イベントの特定
  4. 04プッシュキャンペーンの効果確認

MCP 対応

レポート、ログ、ファネル、セグメント、プッシュキャンペーンなどのAppMetrica分析・管理ツールをMCPクライアントに提供します。書き込み操作は既定で無効で、実験的なワークスペース機能にはログイン済みChromeセッションを使います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pavellunev-appmetrica": {
"command": "npx",
"args": [
"-y",
"appmetrica-mcp"
],
"env": {
"APPMETRICA_OAUTH_TOKEN": "<APPMETRICA_OAUTH_TOKEN>",
"APPMETRICA_ALLOW_WRITE": "<APPMETRICA_ALLOW_WRITE>",
"APPMETRICA_WORKSPACES_FILE": "<APPMETRICA_WORKSPACES_FILE>",
"APPMETRICA_BROWSER_PROFILE": "<APPMETRICA_BROWSER_PROFILE>",
"APPMETRICA_BROWSER_PATH": "<APPMETRICA_BROWSER_PATH>",
"APPMETRICA_BROWSER_CHANNEL": "<APPMETRICA_BROWSER_CHANNEL>",
"APPMETRICA_BROWSER_IDLE_MS": "<APPMETRICA_BROWSER_IDLE_MS>",
"APPMETRICA_OAUTH_CLIENT_ID": "<APPMETRICA_OAUTH_CLIENT_ID>",
"APPMETRICA_CREDENTIALS_FILE": "<APPMETRICA_CREDENTIALS_FILE>"
}
}
}
}
起動コマンドnpx -y appmetrica-mcp
設定が必要な環境変数
APPMETRICA_OAUTH_TOKENシークレットYandex OAuth token with AppMetrica scope; optional when `npx appmetrica-mcp auth` saved credentials
APPMETRICA_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmappmetrica-mcp0.3.1

ツール

45

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

AppMetrica MCP — Claude と AI エージェント向けの Yandex App Metrica MCP サーバー

npm version license

AppMetrica 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-mcp OAuth アプリを使う、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 のスコープが表示されません。

  1. oauth.yandex.ru/client/new にアクセスし、アプリ名を入力して、Web services を選択し、コールバック URI に https://oauth.yandex.ru/verification_code を設定します。
  2. Доступы (アクセス権) → AppMetrica で、Чтение данных AppMetrica(必須)と Запись данных AppMetrica(書き込みツールを使う場合は任意)を有効にします。ClientID をコピーします。
  3. 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.jsonauth がトークンを保存する場所
APPMETRICA_OAUTH_CLIENT_IDいいえバンドル済みの公開アプリauth に使用する独自の Yandex OAuth アプリの ClientID
APPMETRICA_OAUTH_PORTいいえ8742auth --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_applicationID を指定して特定のアプリケーションの詳細を取得します
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_segment1 つのセグメントの全フィールドを取得します
ファネル
ツール説明
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_segmentevents からセグメントを作成します(指定したイベントをすべて実行したユーザー)
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_setupapp_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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。