umeng-openapi-mcp-server
MCP server for 友盟 U-App mobile analytics, enabling AI agents to query app statistics, retention, channels, versions, custom events, and more via the OpenAPI.
README
umeng-openapi-mcp-server
友盟 U-App 移动统计 OpenAPI 的 MCP Server。可接入 Codex、Claude Desktop、Cursor 等支持 MCP 的 Agent,让 Agent 直接查询友盟应用列表、核心统计、留存、渠道/版本维度、自定义事件和游戏账号统计数据。
当前覆盖官方 com.umeng.uapp 命名空间下的 28 个 U-App 接口,并提供常用聚合工具与原始 OpenAPI 调用能力。
功能
- 查询当前账号下的 U-App 应用列表,并定位
appkey - 查询今日、昨日、指定日期的 App 统计数据
- 查询新增用户、活跃用户、启动次数、使用时长和留存数据
- 查询渠道维度、版本维度数据
- 查询自定义事件、事件参数和事件参数值统计
- 查询游戏类型 App 的新增账号、活跃账号数据
- 创建 U-App 数据源和自定义事件
- 使用
umeng_raw_call调用同命名空间下的 OpenAPI
环境要求
- Node.js >= 20
- npm
- 友盟 OpenAPI 的
apiKey和apiSecurity
apiKey / apiSecurity 是友盟 OpenAPI 账号级鉴权信息;appkey 是具体 App 的应用 ID,可通过 umeng_get_all_apps 或 umeng_uapp_get_app_list 查询。
MCP 配置
在 Agent 的 MCP 配置中添加:
{
"mcpServers": {
"umeng": {
"command": "npx",
"args": [
"-y",
"github:devhuang0714/umeng-openapi-mcp-server",
"--transport",
"stdio"
],
"env": {
"UMENG_API_KEY": "你的apiKey",
"UMENG_API_SECURITY": "你的apiSecurity",
"UMENG_HOST": "gateway.open.umeng.com",
"UMENG_TIMEOUT_MS": "20000",
"UMENG_DEFAULT_APPKEY": ""
}
}
}
}
UMENG_DEFAULT_APPKEY 可选。设置后,带 appkey 的工具可以省略 appkey 参数,默认查询该 App。
快速验证
配置完成后,可先让 Agent 调用:
umeng_ping
返回 ok: true 表示 MCP Server 已启动,并且环境变量已正确加载。
随后查询应用列表:
umeng_get_all_apps
拿到目标应用的 appkey 后,即可调用统计工具,例如:
{
"appkey": "你的AppKey",
"date": "2026-06-16"
}
常用工具
| MCP tool | 用途 |
|---|---|
umeng_ping |
检查服务状态 |
umeng_get_app_list |
分页查询应用列表 |
umeng_get_all_apps |
自动翻页查询全部应用 |
umeng_find_apps |
按关键词搜索应用 |
umeng_get_app_summary |
聚合查询今日/昨日及指定日期统计 |
umeng_raw_call |
按 apiName 调用友盟 OpenAPI |
U-App 接口工具
这些工具一一对应官方 com.umeng.uapp 的 U-App 移动统计接口,统一使用 umeng_uapp_* 命名。
| MCP tool | 官方 API |
|---|---|
umeng_uapp_create_app |
umeng.uapp.createApp |
umeng_uapp_get_new_accounts |
umeng.uapp.getNewAccounts |
umeng_uapp_get_active_accounts |
umeng.uapp.getActiveAccounts |
umeng_uapp_event_create |
umeng.uapp.event.create |
umeng_uapp_get_launches_by_channel_or_version |
umeng.uapp.getLaunchesByChannelOrVersion |
umeng_uapp_get_active_users_by_channel_or_version |
umeng.uapp.getActiveUsersByChannelOrVersion |
umeng_uapp_get_new_users_by_channel_or_version |
umeng.uapp.getNewUsersByChannelOrVersion |
umeng_uapp_event_param_get_value_duration_list |
umeng.uapp.event.param.getValueDurationList |
umeng_uapp_get_today_yesterday_data |
umeng.uapp.getTodayYesterdayData |
umeng_uapp_get_yesterday_data |
umeng.uapp.getYesterdayData |
umeng_uapp_get_today_data |
umeng.uapp.getTodayData |
umeng_uapp_event_get_unique_users |
umeng.uapp.event.getUniqueUsers |
umeng_uapp_get_all_app_data |
umeng.uapp.getAllAppData |
umeng_uapp_get_app_count |
umeng.uapp.getAppCount |
umeng_uapp_get_channel_data |
umeng.uapp.getChannelData |
umeng_uapp_get_version_data |
umeng.uapp.getVersionData |
umeng_uapp_event_param_get_data |
umeng.uapp.event.param.getData |
umeng_uapp_event_param_get_value_list |
umeng.uapp.event.param.getValueList |
umeng_uapp_event_get_data |
umeng.uapp.event.getData |
umeng_uapp_event_param_list |
umeng.uapp.event.param.list |
umeng_uapp_event_list |
umeng.uapp.event.list |
umeng_uapp_get_retentions |
umeng.uapp.getRetentions |
umeng_uapp_get_durations |
umeng.uapp.getDurations |
umeng_uapp_get_launches |
umeng.uapp.getLaunches |
umeng_uapp_get_active_users |
umeng.uapp.getActiveUsers |
umeng_uapp_get_new_users |
umeng.uapp.getNewUsers |
umeng_uapp_get_daily_data |
umeng.uapp.getDailyData |
umeng_uapp_get_app_list |
umeng.uapp.getAppList |
参数示例
查询新增用户趋势:
{
"appkey": "你的AppKey",
"startDate": "2026-06-01",
"endDate": "2026-06-16",
"periodType": "daily"
}
查询单日统计:
{
"appkey": "你的AppKey",
"date": "2026-06-16",
"channel": "App Store",
"version": "1.0.0"
}
原始 OpenAPI 调用:
{
"apiName": "umeng.uapp.getDailyData",
"namespace": "com.umeng.uapp",
"version": 1,
"method": "GET",
"params": {
"appkey": "你的AppKey",
"date": "2026-06-16"
}
}
本地运行
需要在本地直接运行时:
git clone git@github.com:devhuang0714/umeng-openapi-mcp-server.git
cd umeng-openapi-mcp-server
npm install
npm run build
npm run start
也可以使用 .env:
cp .env.example .env
UMENG_API_KEY=你的友盟OpenAPI_apiKey
UMENG_API_SECURITY=你的友盟OpenAPI_apiSecurity
UMENG_HOST=gateway.open.umeng.com
UMENG_TIMEOUT_MS=20000
UMENG_DEFAULT_APPKEY=
Docker
docker build -t umeng-openapi-mcp-server .
docker run --rm -i \
-e UMENG_API_KEY="你的apiKey" \
-e UMENG_API_SECURITY="你的apiSecurity" \
-e UMENG_HOST="gateway.open.umeng.com" \
-e UMENG_TIMEOUT_MS="20000" \
umeng-openapi-mcp-server
MCP stdio 需要保持标准输入打开,因此 Docker 运行时需要 -i。
常见问题
如何获取 appkey?
调用 umeng_get_all_apps 或 umeng_uapp_get_app_list,返回结果中的 appkey 即为后续统计查询使用的 App ID。
已配置 UMENG_DEFAULT_APPKEY,为什么仍然查不到数据?
确认 UMENG_DEFAULT_APPKEY 是目标 U-App 的应用 appkey,不是友盟 OpenAPI 的 UMENG_API_KEY。
友盟返回鉴权或权限错误
检查 UMENG_API_KEY / UMENG_API_SECURITY 是否正确,以及当前友盟账号是否拥有目标 App 的 OpenAPI 访问权限。
npx 运行时出现 npm cache 权限错误
可以临时指定 npm cache:
npm_config_cache=/tmp/npm-cache npx -y github:devhuang0714/umeng-openapi-mcp-server --transport stdio
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。