关于 appindex
appindex 是连接托管 AppNiche 服务的本地桥接,为 Agent 提供 App Store 和 Google Play 的实时应用数据。它转发搜索、指标历史、商店页面变更、关键词评分和评论查询,且不在本地保存目录数据。
主要功能
- 01跨商店筛选搜索应用
- 02获取应用详情与指标历史
- 03查看商店页面变更时间线
- 04评估关键词难度与机会
- 05读取应用评论和支持国家
适用场景
- 01按类别、评分或下载量筛选应用
- 02追踪应用指标及页面改版
- 03比较关键词竞争难度
- 04查看应用评论与情绪主题
MCP 相关
它作为 MCP 服务,将托管 AppNiche MCP 服务的工具列表提供给 MCP 客户端,并把工具调用转发至上游;结果原样返回。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| games | any | 否 | true:仅限游戏,适用于两个商店——App Store 的“Games”类别和 Google Play 的所有游戏类别。使用 'game_genres' 进一步筛选。 |
| limit | integer | 否 | 要返回的应用数量,范围为 1–100。省略时:助手登录连接为 20,使用 API 密钥时为 50。每个返回的应用消耗 1 个额度,因此请按需指定页面大小;余额较低时,页面大小会缩减至余额。 |
| store | any | 否 | 将结果限制为一个商店:“apple”(App Store)或“google”(Google Play)。省略则搜索两者。 |
| offset | integer | 否 | 返回结果前要跳过的应用数量;用于分页。 |
| search | any | 否 | 与应用标题和开发者名称匹配的自由文本查询,例如“calorie tracker”。 |
| sort_by | enum | 否 | 排序列:“downloads”(默认)、“revenue”、“growth”、“reviews”、“rating”、“title”、“released”或“updated”。downloads | revenue | growth | reviews | rating | title | released | updated |
| category | any | 否 | 用于筛选的商店类别名称,例如“Health & Fitness”、“Productivity”、“Games”。使用“categories”可一次包含多个类别。 |
| language | any | 否 | 应用列表支持的单个应用语言代码,例如“en”、“de”、“pt-BR”。 |
| sort_dir | enum | 否 | 排序方向:“desc”(默认,从高到低)或“asc”。asc | desc |
| languages | any | 否 | 要包含的应用语言代码,例如 ['en', 'es']。 |
| search_in | any | 否 | 匹配“search”的字段:“title”、“developer”或“all”(默认)。使用“developer”可列出某个发行商的应用组合。 |
| categories | any | 否 | 要包含的多个类别名称,例如 ['Health & Fitness', 'Lifestyle']。优先于“category”。 |
| max_rating | any | 否 | 要包含的最高平均星级评分,范围为 0–5;可用于查找表现不佳的现有竞品。 |
| min_rating | any | 否 | 要包含的最低平均星级评分,范围为 0–5,例如 4。 |
| game_genres | any | 否 | 指定类型的游戏,两家商店使用相同名称,例如 ['Puzzle', 'Role Playing', 'Strategy'](还包括 Action、Adventure、Arcade、Board、Card、Casino、Casual、Educational、Family、Music、Racing、Simulation、Sports、Trivia、Word)。隐含 'games'。 |
| max_revenue | any | 否 | 最高预估月收入(美元),例如 50000 表示每月 50K 美元。 |
| max_reviews | any | 否 | 最高累计评论数,例如 1000 可用于排除已占据市场的大型应用。 |
| min_revenue | any | 否 | 最低预估月收入(美元),例如 10000 表示每月 10K 美元。 |
| min_reviews | any | 否 | 最低累计评论数,例如 1000。 |
| price_model | any | 否 | 变现模式:“Free”、“Freemium”或“Paid”。输入时不区分大小写。 |
| growth_metric | any | 否 | 增长筛选器所衡量的指标——目前仅支持“reviews”。 |
| growth_period | any | 否 | 衡量增长的时间窗口:“7d”、“14d”、“30d”、“60d”或“90d”,适用于两个应用商店。Google Play 应用每隔几周测量一次,因此其 14 至 90 天增长率会根据每个应用最近一次较早的测量值按比例推算,覆盖的 Play 应用远多于“7d”。 |
| max_downloads | any | 否 | 最高预估月下载量。 |
| min_downloads | any | 否 | 最低预估月下载量,例如 10000。 |
| not_languages | any | 否 | 本地化缺口筛选器:仅返回未本地化为这些语言代码中任何一种的应用,例如 ['it'] 可查找没有意大利语本地化的应用。仅限 App Store 数据——与 languages=['en'] 结合使用,可筛选出缺少目标市场语言的英语应用。 |
| updated_after | any | 否 | 仅包含最后更新日期为此日期或之后的应用,格式为“YYYY-MM-DD”。 |
| min_growth_pct | any | 否 | “growth_period”内的最低绝对增长百分比,例如 20 表示至少 ±20%。 |
| released_after | any | 否 | 仅包含发布日期为此日期或之后的应用,格式为“YYYY-MM-DD”。 |
| updated_before | any | 否 | 仅包含最后更新日期为此日期或之前的应用,格式为“YYYY-MM-DD”。 |
| released_before | any | 否 | 仅包含发布日期为此日期或之前的应用,格式为“YYYY-MM-DD”。 |
| growth_direction | any | 否 | 仅保留在“growth_period”内呈增长('up')或下降('down')趋势的应用。 |
| max_days_since_update | any | 否 | 仅显示在此天数内更新的应用,例如,30 表示积极维护的应用。 |
| max_days_since_release | any | 否 | 仅显示在此天数内首次发布的应用,例如,90 表示近期发布的应用。 |
详细介绍
appindex
appindex 是一个小型本地桥接程序,用于连接托管的 AppNiche MCP 服务,该服务可提供实时 App Store 和 Google Play 数据。通过 25 多种筛选条件搜索两个商店, 获取某个应用的完整记录,读取其历史指标和上架信息 变更时间线,评估关键词的难度与机会,读取应用评论, 并列出支持的国家/地区代码——这一切都可通过你的 Agent 完成,无需在本地保存目录副本。
该桥接程序不保存任何应用数据。它会在本地提供上游 服务的工具列表,内容与从实时端点捕获的完全一致,并将 每次工具调用转发到上游,原样返回结果。部分工具的描述 中注明了每次调用的积分费用;这些积分由上游服务从调用者 已有的 AppNiche 账户中扣除。这里没有用于购买积分、创建 账户或生成密钥的工具,桥接程序也不会提供这些功能。
工具
search_apps— 按商店、类别、游戏及游戏类型、语言(包括not_languages本地化缺失筛选条件)、价格模式、评分、评论数、 下载量和收入估算、发布时间和更新时间,以及评论增长趋势等 筛选条件搜索 App Store 和 Google Play 应用,并可按任意列 排序。所有筛选条件均为可选项。get_app_detail— 返回某个应用的完整记录。 必填:app_id(规范 ID,例如"apple:284882215"或"google:com.spotify.music"、 不带前缀的 Apple track ID、Android 软件包名称或商店 URL)。get_app_historicals— 返回某个应用的历史指标 数据点,最多 90 天按日统计,超过 90 天则按周统计。必填:store_id。可选:store、days。get_app_timeline— 按时间倒序返回某个应用的上架 信息变更记录:版本、图标和截图改版、价格和商业模式 变更、更名、类别变更、描述重写等,按日期分组。必填:store_id。可选:store、days、before。get_keyword_difficulty— 评估一个关键词在 App Store 或 Google Play 上的难度与机会。必填:keyword。可选:store、country、language。batch_keyword_difficulty— 在一次调用中评估最多 10 个 关键词。必填:keywords。 可选:store、country、language。get_app_reviews— 读取应用评论:传入app_id可读取任意应用在商店中的实时评论,省略它则读取 工作区中已跟踪的应用评论,并附带情感倾向、主题和改进 方向。所有参数均为可选项。get_supported_countries— 返回支持的国家/地区代码。 不接受任何参数。
配置
APPNICHE_MCP_URL(可选)— 覆盖 上游端点。默认值为https://api.getappniche.com/mcp。(此覆盖钩子是本次重建 自行标注的还原。)GETAPPNICHE_API_KEY(可选)— 设置后,每个 上游请求都会携带Authorization: Bearer <key>标头,其中使用调用者在其 AppNiche 控制面板设置中创建的 AppNiche 密钥。未设置时, 不会发送密钥标头。(标头名称和环境变量名称由原始版本的注册表 记录确定;Bearer 方案和此环境变量转发方式是标注的还原—— 捕获原始界面时未提供密钥。)
转发机制
首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC
initialize 请求(协议版本 2025-03-26,
客户端信息名称为 appindex),然后发送
notifications/initialized 通知,接着发送携带调用者参数且不作任何更改的
tools/call 请求。上游在响应 initialize
时若返回 Mcp-Session-Id 标头,该值会随会话的每个后续请求发送;该会话在进程运行期间会一直复用。
响应可能是普通 JSON,也可能是服务器发送的事件;两种格式都会读取。
成功的上游结果会原样传递,包括上游设置的任何 isError 标志。
失败情况——JSON-RPC 错误、非 2xx 状态、无法读取响应或无法完成的请求——会作为 isError 结果返回,其文本以
appindex error: 开头(此呈现方式是本次重建自行添加的标注)。
CLI
每个工具也可作为子命令使用,并接受一个 JSON 参数字符串:
npx @reneturcios/appindex search_apps '{"search":"calorie tracker","store":"apple","limit":10}'
npx @reneturcios/appindex get_app_detail '{"app_id":"apple:284882215"}'
npx @reneturcios/appindex get_keyword_difficulty '{"keyword":"habit tracker"}'
npx @reneturcios/appindex get_supported_countries
npx @reneturcios/appindex --version
退出代码:成功时为 0,结果包含 isError 时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/appindex mcp
MCP 客户端配置:
{
"mcpServers": {
"appindex": {
"command": "npx",
"args": ["-y", "@reneturcios/appindex", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/appindex
docker run --rm ghcr.io/cloudcorprecords/appindex --version
容器的默认命令为 mcp,因此第一种形式是 stdio MCP 服务;其他参数会按常规方式传递给 CLI。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全针对存根 JSON-RPC 上游运行——不会发起实时网络调用。
许可证
MIT — 详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。