返回市场
天文-MCP服务器

天文-MCP服务器

作者:TimBroddin8 星标更新:2025-09-12

项目介绍

Astro MCP Server

一个提供对Astro ASO(应用商店优化)数据访问的MCP(模型上下文协议)服务器,适用于LLMs。

Astro MCP Server 示例

要求

  • Astro
  • 支持MCP的工具(如Claude Desktop, Claude Code等)

功能

此MCP服务器提供了以下用于查询Astro ASO数据库的工具:

可用工具

  1. search_rankings - 查询当前关键词排名的应用

    • 查找应用在特定关键词下的排名
    • 按应用商店过滤(如us, uk等)
    • 按应用名称或应用ID过滤
  2. get_historical_rankings - 获取历史排名数据

    • 追踪排名随时间的变化
    • 可配置的时间段(默认:30天)
    • 按应用和商店过滤
  3. list_apps - 列出所有跟踪的应用

    • 显示应用名称、ID、平台
    • 包括每个应用的关键词数量
  4. get_app_keywords - 获取特定应用的所有关键词

    • 显示当前和之前的排名
    • 包括难度和受欢迎程度评分
    • 显示排名变化
    • 接受应用名称或应用ID
  5. get_keyword_trends - 分析排名趋势

    • 统计分析(平均值、最小值、最大值、波动性)
    • 趋势检测(改善/下降/稳定)
    • 可配置的时间周期(周/月/年/全部)
  6. compare_rankings - 比较两个日期之间的排名

    • 查找两个特定日期之间的排名变化
    • 计算百分比变化
  7. get_app_ratings - 获取应用评级历史

    • 追踪评级随时间的变化
    • 显示用户评级数量
  • 接受应用名称或应用ID
  1. get_keyword_competitors - 获取实际应用商店中的关键词竞争对手

    • 显示来自应用商店数据的实际竞争对手应用及其类别
    • 根据实际应用商店搜索结果进行排名
    • 多个商店支持并自动聚合数据
    • 可配置返回的竞争者数量限制
  2. get_keyword_recommendations - 获取关键词建议

    • 基于现有跟踪数据建议相关关键词
    • 帮助发现新的关键词机会
    • 使用模糊匹配以发现更广泛的关键词
  3. analyze_competitive_landscape - 全面竞争分析

    • 在所有跟踪关键词中识别顶级竞争对手及其类别
    • 计算市场份额指标(前10/25/50排名)
    • 显示竞争对手主导分数和共享关键词
    • 评估竞争强度水平
    • 可配置返回的竞争者数量限制
  4. calculate_keyword_opportunity - 寻找关键词机会

    • 识别低竞争的高机会关键词
    • 结合流行度、难度和竞争指标
    • 可配置阈值以发现目标机会
    • 提供每个机会得分的理由
  5. detect_ranking_anomalies - 检测异常排名变化

    • 识别突然的排名下降、上升和波动峰值
    • 提供关于时间点和之前排名的背景信息
    • 将异常严重性分类为(低/中/高/关键)
    • 包括对排名变化的解释
  6. predict_ranking_trends - 预测未来的排名走势

    • 使用线性回归预测排名轨迹
    • 提供置信分数和趋势方向
    • 根据历史数据估计未来排名位置
    • 显示用于预测的方法论和数据点
  7. find_low_competition_keywords - 发现未充分利用的关键词

    • 找到具有低竞争分数的关键词
    • 平衡难度与流行度以实现最佳定位
    • 帮助识别利基市场机会
    • 可配置参数以精确筛选

安装

先决条件

  • Astro 应用必须安装在Mac上,并且其数据库中有数据
  • 需要 Node.js 18+
    # 检查你的Node版本
    node --version
    

使用Claude

Claude Code(推荐)

使用此MCP服务器最简单的方式是通过Claude Code:

# 从NPM安装
claude mcp add -s user -t stdio astro -- npx -y astro-mcp-server

# 如果npx使用了错误的Node版本(常见于nvm),使用完整路径:
claude mcp add -s user -t stdio astro -- $(which npx) -y astro-mcp-server

# 或对于本地/源码安装(构建后):
claude mcp add -s user -t stdio astro -- node /path/to/astro-mcp-server/dist/index.js

Claude Desktop

添加以下内容到你的Claude Desktop配置中:

对于NPM安装:

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "astro-aso": {
      "command": "npx",
      "args": ["-y", "astro-mcp-server"]
    }
  }
}

对于本地/源码安装:

首先构建项目:

cd /path/to/astro-mcp-server
npm run build

然后添加到Claude Desktop配置:

{
  "mcpServers": {
    "astro-aso": {
      "command": "node",
      "args": ["/path/to/astro-mcp-server/dist/index.js"]
    }
  }
}

单独运行

你也可以单独运行服务器进行测试:

# 如果全局安装
astro-mcp-server

# 或使用npx运行
npx astro-mcp-server

# 或从源码运行(构建后)
npm run build
npm start

# 或用于开发模式自动重载
npm run dev

使用MCP Inspector测试

使用MCP Inspector测试服务器:

# 对于NPM安装
npx @modelcontextprotocol/inspector npx astro-mcp-server

# 对于本地安装(构建后)
npx @modelcontextprotocol/inspector node /path/to/dist/index.js

示例查询

连接到Claude(通过Claude Code或Claude Desktop)后,你可以提出如下问题:

基本查询:

  • "使用Astro MCP显示关键词'生产力'在美国商店的当前排名"
  • "使用Astro MCP显示过去一个月内'任务管理器'的排名趋势"
  • "使用Astro MCP列出所有正在跟踪的应用"
  • "使用Astro MCP显示应用'Things 3'排名的关键词"
  • "使用Astro MCP比较'笔记'关键词上周和今天的排名"
  • "使用Astro MCP显示应用ID 1234567890的评级历史"

高级竞争情报:

  • "使用Astro MCP显示关键词'meditation'的实际应用商店竞争对手及其类别"
  • "使用Astro MCP分析我的应用在生产力领域的竞争格局,展示前15名竞争对手"
  • "使用Astro MCP寻找低竞争且高流行的关键词机会"
  • "使用Astro MCP检测本周我应用性能中的任何排名异常"
  • "使用Astro MCP预测我的'todo app'关键词下个月的排名"
  • "使用Astro MCP找到我应针对的低竞争关键词,以推广我的健康应用"
  • "使用Astro MCP基于我当前的'健身'关键词获取关键词建议"

数据库要求

服务器需要读取Astro的SQLite数据库,通常位于:

~/Library/Containers/matteospada.it.ASO/Data/Library/Application Support/Astro/Model.sqlite

确保Astro至少运行过一次并且收集了一些数据后再使用此服务器。

技术细节

  • 运行时:Node.js 18+
  • 数据库:SQLite通过sql.js(JavaScript实现,无需本地编译)
  • 数据库加载:自动检测并重新加载数据库更改,包括WAL模式支持并通过检查点强制合并
  • 协议:MCP(模型上下文协议)通过stdio
  • TypeScript:编译为JavaScript以供分发
  • 日期处理:将Core Data时间戳转换为ISO格式
  • 应用标识:支持应用名称(部分匹配)和应用ID(精确匹配)
  • WAL模式支持:自动处理Write-Ahead Logging模式数据库,通过强制检查点合并最近更改

数据库模式

服务器从Astro数据库中的这些主要表中读取数据:

  • ZAPPLICATION - 应用信息
  • ZKEYWORD - 关键词及当前排名
  • ZDATAPOINT - 历史排名数据点
  • ZBINARYDATA - 实际应用商店竞争对手数据(JSON格式)
  • ZRATING - 应用评级
  • ZRATINGDATAPOINT - 历史评级数据

开发

项目结构

astro-mcp-server/
├── src/
│   ├── index.ts      # 主服务器实现
│   └── types.ts      # TypeScript类型定义
├── package.json      # 依赖项
├── tsconfig.json     # TypeScript配置
├── mcp.json          # MCP配置
└── README.md         # 本文件

从源码构建

  1. 克隆仓库
  2. 安装依赖项:npm install
  3. 构建项目:npm run build
  4. 开发模式运行:npm run dev

发布到NPM

  1. 更新package.json中的版本
  2. 更新package.json中的作者和仓库URL
  3. 运行:npm publish(通过prepublishOnly自动构建)

贡献

欢迎贡献!请随意提交Pull Request。

许可证

MIT - 详情见LICENSE文件

故障排除

常见问题

  1. "数据库未找到"错误

    • 确保已安装Astro并且至少运行过一次
    • 检查数据库路径是否存在
  2. "权限被拒绝"错误

    • 服务器需要读取Astro数据库的权限
    • 检查SQLite数据库的文件权限
  3. Node.js兼容性

    • 确保使用的是Node.js 18或更高版本
    • 该服务器使用sql.js(纯JavaScript),因此不需要本地模块编译
    • 这消除了better-sqlite3常见的NODE_MODULE_VERSION错误
  4. 无数据返回或数据陈旧

    • 确保Astro已收集关键词跟踪数据
    • 检查是否使用了正确的应用名称或ID
    • 验证商店参数(默认为'us')
    • 服务器在检测到更改时会自动重新加载数据库
    • 对于WAL模式数据库,最近更改会通过检查点自动合并

支持

对于问题或疑问,请在GitHub上打开一个Issue。


该项目由Tim Broddin用心编写 - 可在Titans of Industry处雇佣