mcpField
A
appmetrica-mcp

appmetrica-mcp

本地服务
github.com/pavellunev数据与分析34 周前更新

关于 appmetrica-mcp

appmetrica-mcp 将 AI Agent 连接到 Yandex AppMetrica,支持移动应用分析报告、原始日志、漏斗和营销活动管理。它还可审计事件埋点,并通过已登录的 Chrome 会话实验性地编辑工作区。

主要功能

  1. 01查询报告、指标和时间序列
  2. 02分析及管理漏斗与细分群体
  3. 03导出 13 类表中的原始日志
  4. 04查看崩溃数据和推送活动
  5. 05审计事件埋点
  6. 06通过实验性网页工具创建工作区

适用场景

  1. 01比较应用使用量和收入的变化
  2. 02导出购买或崩溃事件日志
  3. 03构建漏斗并查找缺失事件
  4. 04查看推送活动表现

MCP 相关

向 MCP 客户端提供 AppMetrica 分析和管理工具,包括报告、日志、漏斗、细分群体及推送活动。写入操作默认关闭;实验性工作区工具使用已登录的 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 Agent 的 Yandex App Metrica MCP 服务

npm version license

AppMetrica MCP

适用于 AppMetrica 的 MCP 服务——Yandex 的移动分析平台。让 Claude 直接访问应用分析数据:报告、漏斗、仪表板、原始事件日志、崩溃数据和推送通知活动,还可以在 AppMetrica 中创建漏斗和细分。

更新 0.3.0(2026 年 10 月)。 该服务现在不仅能读取分析数据,还能在 AppMetrica 中构建分析内容:通过 Management API 创建已保存的漏斗和细分,还能通过实验性的已登录 Chrome 会话创建实际工作区和仪表板(web_* 工具,只需运行一次 npx appmetrica-mcp login)。新增功能还包括:时间序列(get_report_bytime)、根据文档整理的 197 项指标目录、全部 13 个 Logs API 表、audit_events 和 analytics_setup 工作流提示词。完整列表见 CHANGELOG.md。

为什么使用

AppMetrica 的移动产品分析数据(用户、会话、事件、漏斗、留存、收入、崩溃)分散在网页 UI 和多个 HTTP API 中。此 MCP 服务将这些数据和功能整合到一组工具中,让 Claude 等 AI Agent 能够回答问题并采取行动,例如:

  • “本周 DAU、新用户和无崩溃会话有哪些变化?”
  • “从首次启动到购买构建一个漏斗,并保存到 AppMetrica 中。”
  • “应用发送了哪些事件?哪些事件已不再使用?注册漏斗还缺少什么?”
  • “为营销团队创建一个包含受众、收入和漏斗组件的工作区。”
  • “导出 9 月的原始购买事件,并比较不同国家。”

它适用于 Claude Code、Claude Desktop 和其他 MCP 客户端,并已作为 io.github.pavellunev/appmetrica-mcp 收录于 官方 MCP Registry。

功能

  • Reporting API — 聚合指标(用户、会话、收入、崩溃、事件等),支持按维度细分、时间序列(bytime)、筛选、排序和采样控制
  • 漏斗 — 为已保存的网页 UI 漏斗或临时步骤生成逐步漏斗报告,支持绝对/相对转化;创建、更新和删除已保存的漏斗
  • 仪表板和工作区 — 通过 Reporting API 计算预设或自定义组件集;将命名组件集作为工作区保存在本地
  • 网页会话(实验性) — 通过已登录的无头 Chrome 会话创建和管理实际 AppMetrica 工作区(仪表板)及组件(web_* 工具;公共 API 无法实现此操作)
  • 细分 — 列出已保存的细分,并通过 segment_id 将其应用到任意报告;创建、更新和删除细分
  • 事件审计 — audit_events 对比已注册事件与实际事件量,并报告埋点缺失情况
  • 工作流提示词 — analytics_setup 引导 Agent 分析应用、构建漏斗/细分/仪表板并列出埋点缺失项
  • Logs API — 导出全部 13 个表的原始数据(事件、崩溃、错误、安装、会话、深度链接、回传、点击、推送令牌、用户档案、收入、电商、广告收入)
  • Management API — 应用、事件名称、转化、Logs API 状态
  • Push API — 查看活动和统计数据;启用写入模式后可创建活动
  • 默认安全 — 除非明确选择启用,否则会禁用写入操作(推送活动、漏斗、细分)

要求

  • Node.js 22+
  • 至少包含一个应用的 AppMetrica 账户
  • Yandex OAuth 令牌(见下文)
  • 可选,仅适用于实验性的 web_* 工具:Google Chrome,以及一次性运行 npx appmetrica-mcp login(见“网页会话”)

获取 OAuth 令牌

选项 A — 一条命令(推荐)
npx appmetrica-mcp auth

向导会在 Yandex 授权页面打开一个 Chrome 窗口(使用 Web 会话工具所用的同一个 Chrome 配置文件,因此首次登录后就会保持登录状态)。你点击 Разрешить 后,向导会直接从页面 URL 中获取确认码——无需复制任何内容。令牌会保存到 ~/.config/appmetrica-mcp/credentials.json(权限模式为 0600;Yandex 令牌有效期约为一年,到期后只需再次运行 auth),服务器会自动读取令牌——无需设置 APPMETRICA_OAUTH_TOKEN。向导结束时,还会提供登录 AppMetrica Web 会话的选项(仅 web_* 工作区工具需要)。

详情:

  • 使用标准 OAuth 2.0 授权码流程,并通过 PKCE 向随附的公开 appmetrica-mcp OAuth 应用授权;无需客户端密钥。
  • 需要 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)的界面不提供 AppMetrica 权限范围。

  1. 前往 oauth.yandex.ru/client/new,为应用命名,选择 Web services,并将回调 URI 设置为 https://oauth.yandex.ru/verification_code。
  2. 在 Доступы (Access) → 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保存 Yandex 登录状态的 Chrome 配置文件目录,供实验性的 web_* 工具使用
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)。每次调用仅使用一个命名空间前缀
get_drilldown深入查看某个维度值,以获取详细分类
list_metrics指标/维度目录(197 个指标、188 个维度):可获取精简概览,或使用 search / namespace / kind / limit 筛选条目
audit_events指定时段的事件埋点审计:已注册、活跃和零流量事件,并可选提供 expected_events,输出通俗易懂的审查结果(只读)
细分
工具说明
list_segments列出已保存的细分(id、name、expression)
get_segment获取一个细分的所有字段
漏斗
工具说明
list_funnels列出已保存的漏斗及解码后的步骤和选项
get_funnel_report获取已保存漏斗(funnel_id)或临时 steps 的逐步设备数和转化率
仪表板与工作区
工具说明
get_dashboard针对日期范围运行预设组件(widgets)或已保存的工作区(workspace)
list_dashboard_presets列出预设组件及其指标
list_workspaces列出本地保存的工作区
get_workspace获取包含组件规格的工作区
save_workspace创建或更新本地工作区(仅限本地文件)
delete_workspace删除本地工作区(仅限本地文件)
网页会话(实验性)

通过已登录的无头 Chrome 驱动 AppMetrica 网页界面内部 API 的非官方工具 — 参见 网页会话。每个工具都需要先运行一次 npx appmetrica-mcp login;标记为 Write 的工具还需要设置 APPMETRICA_ALLOW_WRITE=true。

工具访问权限描述
web_session_status读取检查网页会话:登录状态、Yandex 登录信息、配置文件目录
web_list_workspaces读取列出应用的 AppMetrica 工作区(系统工作区和自定义工作区)
web_get_workspace读取获取单个工作区:包含名称、指标和维度的分组、标题和小组件
web_list_widget_presets读取列出网页预设小组件(widget_id = preset 值),可选 category
web_list_report_namespaces读取列出报告命名空间及其 Reporting API 前缀;指定 namespace_id 可查看有效指标和维度
web_create_workspace写入一次性创建包含 groups({header?, widgets?})的工作区
web_add_widgets写入向工作区添加一行小组件(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创建推送活动(请参阅 Push Notifications)
web_create_workspace、web_add_widgets、web_add_header、web_rename_workspace、web_remove_widget、web_delete_workspace、web_push_workspace实验性 Web 会话工具(请参阅 Web session);这些工具使用 Chrome 登录状态,而非 OAuth 令牌

可以和不可以创建的内容。 漏斗和细分群体通过 Management API 创建,并会显示在 AppMetrica Web UI 中。公开 API 无法创建仪表板和工作区:Web UI 通过内部 GraphQL 端点管理这些内容,该端点需要 Cookie 会话和 CSRF 令牌,OAuth 令牌无法使用。实验性的 web_* 工具通过已登录的 Chrome 会话绕过这一限制(请参阅 Web session);否则请使用本地工作区和预设(请参阅 Dashboards & workspaces);analytics_setup 提示词还会输出一份“Web 仪表板蓝图”,供你手动搭建。

已保存的漏斗仅支持 Web 漏斗编辑器可以展示的内容:客户端事件步骤(每个步骤可包含多个事件,表示其中任意一个;每个步骤最多设置一个事件参数 key/value,并应用于该步骤的所有事件)以及 install 步骤。其他步骤类型(crash、purchase、session_start 等)和每个步骤中的多个参数都会被拒绝——可使用 get_funnel_report 临时运行这些查询。细分群体仅可根据 events 创建(完成所有这些事件的用户):API 会根据 Web 编辑器的筛选条件 JSON 推导细分表达式,因此其他条件类型(设备、地理位置、版本、用户档案等)必须在 Web UI 中创建。若需临时筛选,请使用报告工具的 filters 参数。

提示词
提示词参数描述
analytics_setupapp_id、project_path(可选)、goal(可选)端到端工作流:审查应用最近 28 天的事件,扫描源代码中的 AppMetrica 事件调用,设计并验证 3-6 个漏斗(写入模式开启时通过 create_funnel 保存,否则输出漏斗),创建细分群体,构建仪表板(通过 get_dashboard + save_workspace,然后在 Web 会话已登录时使用 web_push_workspace 推送到 AppMetrica,否则生成 Web 仪表板蓝图),最后输出“埋点缺口”部分

漏斗

get_funnel_report 与网页版“Funnels”报告保持一致。它会从 Reporting API 读取每个步骤的指标 ym:uf:devicesInStep1..N(单会话漏斗使用 ym:sf:):按顺序完成每个步骤的设备数。绝对转化率以第 1 步为基准,相对转化率以上一步为基准。

  • 已保存的漏斗 — list_funnels 会显示在 Web UI 中创建的漏斗;传入 funnel_id 后,将原样使用已保存的模式(对于保存时关闭了“步骤之间的事件”的漏斗,会像 Web 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 请求以获取时间序列)。

临时漏斗示例:

{
  "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 的 Web 工作区和“Обзор”信息中心由一个需要 Cookie 身份验证的内部端点提供服务,公共 API(OAuth 令牌)无法访问该端点。因此,这个 MCP 会自行构建信息中心(如需管理实际的 Web 工作区,请使用实验性的 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 会显示每个预设包含的指标。
  • 每个组件单独发起一个请求,按顺序运行,绝不混用命名空间;失败的组件会返回 {name, error},而不会导致整个信息中心失败。请留意配额(每秒 30 个请求,每天 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 中的一项。工作区可以定义默认的 app_id。工作区工具只会操作本地文件——不受 APPMETRICA_ALLOW_WRITE 限制,也绝不会写入 AppMetrica。

Web 会话(实验性):AppMetrica 中的工作区与信息中心

功能说明。 web_* 工具可以列出、创建、编辑和删除 AppMetrica 中实际的工作区(信息中心)及其组件——这是公共 API 无法管理的产品部分。Web 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 配置文件同一时间只能由一个 Chrome 使用,因此无头会话会在 2 分钟没有 web_* 调用后关闭 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,且必须且只能是以下一种:

  • { "preset": "AudienceMulti" } — 网页预设组件(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。

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 通过一次请求创建整个工作区,并返回 {dashboard_id, name, url, groups}。 本地工作区 → AppMetrica。 web_push_workspace(app_id, workspace, name?) 会接收通过 save_workspace 保存的工作区,并在 AppMetrica 中创建它:一个标题行(组件名称)加上每个本地组件对应的一行 Web 组件。本地预设会映射到有明确对应项的 Web 预设: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 → 为每个已保存的漏斗创建一个 Funnels 组件。installs_by_country、events、conversions、anr、ad_revenue_by_type 和本地自定义 metrics 组件会变成自定义组件;本地 funnel_id 组件会变成 Funnels 组件。无法创建的组件(未知的指标 ID、没有已保存的漏斗)会被跳过,并列在 skipped 中;notes 会列出无法迁移的内容(预设组件上的 filters、segment_id)。

限制。

  • 这是 Web 客户端使用的非官方内部 API:它可能会在不事先通知的情况下发生变化,导致工具无法使用。GraphQL 文档保存在 src/web/operations.ts 中;要更新它们,请使用 node scripts/record-graphql.mjs 录制真实流量(先运行 npm run build;它会使用已登录的配置文件打开 Chrome,并录制你的所有操作),然后相应地更新 src/web/operations.ts 中的片段和操作。
  • MCP 服务运行的机器上需要安装 Google Chrome,并登录 Yandex。
  • 修改操作需要设置 APPMETRICA_ALLOW_WRITE=true。web_delete_workspace 无法删除系统仪表板(<appId>/General,……)。
  • Yandex 可能会对 Web 端点实施速率限制(HTTP 429):等待一分钟后重试。

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 天的概览仪表板,按周展示”
  • “保存一个名为 'weekly' 的工作区,包含受众、崩溃和收入组件”
  • “审核应用 12345 过去一个月的事件,并告诉我哪些事件已失效”
  • “创建一个 app_open -> paywall_shown -> purchase_completed 漏斗,以及一个包含看过付费墙用户的细分”(需要 APPMETRICA_ALLOW_WRITE=true)
  • “对 ~/Projects/MyApp 运行 analytics_setup 提示词,应用 12345”
  • “为应用 12345 创建一个名为 'Product overview' 的 AppMetrica 工作区,包含受众、无崩溃会话和我的付费墙漏斗”(实验性 Web 会话;需要 APPMETRICA_ALLOW_WRITE=true)

速率限制

AppMetrica 对所有 API 请求施加以下限制:

  • 每个 OAuth token 每秒 30 次请求
  • 每个 OAuth token 每天 5,000 次请求

客户端会在收到 429 和 5xx 响应时自动重试,并采用指数退避策略(1s → 2s → 4s,最多尝试 3 次)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。