ASO MCP服务器
用于Google Play商店中应用商店优化(ASO)研究的模型上下文协议(MCP)服务器。
请注意: 该MCP是一个功能有限的早期原型,尚未准备好投入生产使用。
建在上面 谷歌play scraper -一个用于抓取的Python库 Google Play商店数据。
特性
- 应用程序搜索 -通过价格过滤按关键字搜索应用程序
- 应用程序详细信息 -获取有关任何应用程序的全面信息
- 应用评论 -通过排序、过滤和分页获取用户评论
- 收藏与分类 -按类别浏览免费、付费和收入最高的应用程序
- 关键词研究 -从Google Play商店自动完成中获取关键字建议
- 元数据验证 -根据Google Play限制验证标题、简短描述和完整描述
- 国家和语言支持 -访问所有Google Play支持的国家和语言
- 代理旋转 -可选的代理支持,具有自动轮换功能,失败时重试
安装
先决条件
- Python 3.14+
- 紫外线 (推荐)或pip
设置
# Clone the repository
git clone
cd aso-mcp-python
# Install dependencies with uv
uv sync
# Or with pip
pip install -e .
# Install development dependencies (for testing)
uv sync --dev
# Or with pip
pip install -e ".[dev]"用法
运行服务器
uv run python server.py与AI助手集成
克劳德代码
添加 ~/.claude/settings.json:
{
"mcpServers": {
"aso": {
"command": "uv",
"args": [
"run",
"python",
"server.py"
],
"cwd": "/path/to/aso-mcp-python"
}
}
}Gemini CLI
添加 ~/.gemini/settings.json:
{
"mcpServers": {
"aso": {
"command": "uv",
"args": [
"run",
"python",
"server.py"
],
"cwd": "/path/to/aso-mcp-python"
}
}
}可用工具
应用搜索和发现
google-play-search
按关键字在Google Play商店中搜索应用程序。
参数:
country(string)-国家代码(例如。,us,de,jp)language(string)-语言代码(例如。,en,de,ja)term(string)-搜索词num(整数,可选)-结果数(默认值:20)price(字符串,可选)-价格过滤器:“所有”、“免费”或“付费”(默认值:“全部”)
退货: 包含基本信息(标题、开发者、分数等)的应用程序概述列表
google-play-list
浏览Google Play商店收藏和类别。
参数:
country(string)-国家代码language(string)-语言代码collection(string)-集合类型:“TOP_FREE”、“TOP_PAID”或“GROSSING”category(string)-类别(例如,“应用程序”、“游戏行动”、“生产力”)num(整数,可选)-结果数量(默认值:50)age(字符串,可选)-年龄过滤器:“Age_RANGE1”(5岁及以下)、“Age_RANGE2”(6-8岁)或“Age_RANGE3”(9+岁)
可用类别:
- 概述:
APPLICATION,GAME,FAMILY - 应用程序类别:
BUSINESS,EDUCATION,ENTERTAINMENT,FINANCE,HEALTH_AND_FITNESS,PRODUCTIVITY,TOOLS,以及更多 - 游戏类别:
GAME_ACTION,GAME_ADVENTURE,GAME_PUZZLE,GAME_RACING,GAME_STRATEGY,以及更多
退货: 应用程序概述列表
google-play-app
获取有关特定应用程序的全面详细信息。
参数:
country(string)-国家代码language(string)-语言代码app_id(string)-应用程序包ID(例如“com.spotify.music”)
退货: 详细的应用程序信息包括:
- 基本信息(标题、开发者、摘要、描述)
- 评分(分数、评论计数、直方图)
- 定价(价格、货币、应用内购买)
- 安装统计数据(安装数、最小/最大安装数)
- 媒体(图标、截图、视频、标题图像)
- 技术细节(版本、Android版本、发布/更新日期)
- 联系方式(电子邮件、网站、地址)
- 法律(内容评级、隐私政策)
google-play-reviews
获取具有分页支持的特定应用程序的用户评论。
参数:
country(string)-国家代码language(string)-语言代码app_id(string)-应用程序包IDsort(字符串,可选)-排序顺序:“最新”、“评级”或“有用性”(默认值:“最新动态”)num(整数,可选)-评论数(默认值:100)filter_rating(整数,可选)-按等级筛选(1-5)continuation_token(字符串,可选)-用于获取下一页的令牌
退货: 带有用户信息、评级、文本、开发人员回复(如果有的话)和下一页分页标记的评论
关键词研究
google-play-suggest
获取给定种子关键字的关键字建议。
参数:
country(string)-国家代码(例如。,us,de,jp)language(string)-语言代码(例如。,en,de,ja)keyword(string)-种子关键字或部分关键字
例子:
country: "us"
language: "en"
keyword: "calc"退货: 建议的关键字列表,如 ["calculator", "calculator app", "calculator free", ...]
元数据验证
google-play-validate-title
根据Google Play的30个字符限制验证标题。
参数:
title(string)-要验证的标题
google-play-validate-short-description
根据Google Play的80个字符限制验证简短描述。
参数:
short_description(string)-要验证的简短描述
google-play-validate-full-description
根据Google Play的4000个字符限制验证完整描述。
参数:
full_description(string)-要验证的完整描述
退货: 验证结果,包括长度、有效性状态和任何错误。
参考数据
get-google-play-languages
获取Google Play支持的所有语言代码。
get-google-play-countries
获取Google Play支持的所有国家代码。
get-google-play-countries-with-languages
获取映射到其支持语言的国家代码。
代理配置
服务器支持对Google Play的请求进行可选的代理轮换。这有助于:
- 避免利率限制
- 请求的地理分布
- IP轮换
设置
设置 ASO_MCP_PROXIES 带有逗号分隔的代理URL列表的环境变量:
export ASO_MCP_PROXIES="http://proxy1:8080,http://proxy2:8080,http://user:pass@proxy3:8080"使用克劳德代码
{
"mcpServers": {
"aso": {
"command": "uv",
"args": [
"run",
"python",
"server.py"
],
"cwd": "/path/to/aso-mcp-python",
"env": {
"ASO_MCP_PROXIES": "http://proxy1:8080,http://proxy2:8080"
}
}
}
}使用Gemini CLI
{
"mcpServers": {
"aso": {
"command": "uv",
"args": [
"run",
"python",
"server.py"
],
"cwd": "/path/to/aso-mcp-python",
"env": {
"ASO_MCP_PROXIES": "http://proxy1:8080,http://proxy2:8080"
}
}
}
}代理旋转的工作原理
- 每次请求时,都会从池中随机选择一个代理
- 如果请求失败,代理将被标记为失败,并尝试使用其他代理
- 在所有代理都失败之前,避免使用失败的代理
- 当所有代理都失败时,失败的列表将重置,并重新开始轮换
- 为了安全起见,代理URL中的凭据在日志中被屏蔽
支持的代理格式
http://host:port
http://username:password@host:port
https://host:port
https://username:password@host:portGoogle Play元数据限制
| 字段 | 字符限制 |
|---|---|
| 标题 | 30 |
| 简短描述 | 80 |
| 完整描述 | 4000 |
支持的国家
该服务器支持60多个国家,包括:
| 地区 | 国家 |
|---|---|
| 美洲 | 美国、加利福尼亚州、不列颠哥伦比亚省、墨西哥 |
| 欧洲 | GB、DE、FR、ES、IT、NL、PL等 |
| 亚太地区 | 日本、韩国、中国、印度、澳大利亚、新加坡等 |
| 中东 | 南非、伊利诺伊州、土耳其等 |
使用 get-google-play-countries-with-languages 将国家完整映射到其支持的语言。
发展
项目结构
aso-mcp-python/
├── server.py # Main MCP server
├── proxy.py # Proxy rotation manager
├── constants/
│ ├── google_play_constants.py # Countries, languages, limits, enums
│ └── mcp_constants.py # Server instructions
├── models/
│ ├── google_play.py # Data models (AppDetails, AppOverview, Review)
│ └── metadata.py # Validation models
├── tests/
│ └── test_server.py # Comprehensive test suite
├── pyproject.toml # Project configuration
├── pytest.ini # Pytest configuration
└── README.md依赖项
mcp[cli]-模型上下文协议SDKplay-store-scraper-ng-Google Play商店抓取器httpx-HTTP客户端
发展依赖性
pytest-测试框架pytest-asyncio-异步测试支持pytest-mock-模拟支持
运行测试
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=. --cov-report=html
# Run specific test file
uv run pytest tests/test_server.py
# Run specific test
uv run pytest tests/test_server.py::TestSearch::test_google_play_search_success
# Run with verbose output
uv run pytest -v测试套件包括:
- 所有工具的单元测试
- 基于模型的测试(没有实际的API调用)
- 代理轮换和故障场景
- 输入验证测试
- 评论的分页测试
许可证
麻省理工学院
