ASOHawk
MCP server for App Store Optimization, enabling AI agents to read rankings, keywords, competitors, reviews, and revenue, and manage metadata with human approval.
README
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.svg"> <img src="assets/banner-light.svg" alt="ASOHawk" width="100%"> </picture>
<p align="center"><strong>App Store Optimization, built for AI agents.</strong></p>
<p align="center"> <a href="https://asohawk.cc"><img src="https://img.shields.io/badge/website-asohawk.cc-b45309" alt="Website"></a> <a href="https://registry.modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP_registry-io.github.prodocik%2Fasohawk-121212" alt="MCP Registry"></a> <a href="TOOLS.md"><img src="https://img.shields.io/badge/MCP_tools-64-121212" alt="Tool count"></a> </p>
ASOHawk is an ASO platform your AI agent uses directly. It speaks MCP, the protocol Claude Code, Claude Desktop, Cursor, Codex and most agent CLIs already understand. Point an agent at it once and it reads your App Store rankings, keywords, competitors, reviews and revenue, and manages tracking and metadata on request.
The web dashboard exists too, but the agent is a first-class citizen, not an afterthought: every capability is a versioned tool with an explicit contract, honest limitations, and a safety model where anything that touches your App Store listing waits for your approval.
How it works
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/how-it-works-dark.svg"> <img src="assets/how-it-works-light.svg" alt="Your agent connects to ASOHawk over MCP; ASOHawk reads the App Store and writes to App Store Connect after human approval." width="100%"> </picture>
The server is remote MCP over HTTPS. Nothing to install, nothing to run, no local database: one config block in your client and the agent is connected.
Quick start
1. Create a key. Sign up at asohawk.cc (free plan, no credit card), then open Settings → API keys and create a key. Read by default; add write to let the agent manage tracking.
2. Connect. For Claude Code, run once in any terminal:
claude mcp add --transport http --scope user asohawk https://asohawk.cc/api/mcp --header "Authorization: Bearer ahk_YOUR_KEY"
<details> <summary><strong>Claude Desktop</strong></summary>
Settings → Developer → Edit Config, then add:
{
"mcpServers": {
"asohawk": {
"type": "http",
"url": "https://asohawk.cc/api/mcp",
"headers": {
"Authorization": "Bearer ahk_YOUR_KEY"
}
}
}
}
</details>
<details> <summary><strong>Cursor</strong></summary>
Save as .cursor/mcp.json in your project, or ~/.cursor/mcp.json to make it available everywhere:
{
"mcpServers": {
"asohawk": {
"url": "https://asohawk.cc/api/mcp",
"headers": {
"Authorization": "Bearer ahk_YOUR_KEY"
}
}
}
}
</details>
<details> <summary><strong>Codex</strong></summary>
Add to ~/.codex/config.toml:
[mcp_servers.asohawk]
url = "https://asohawk.cc/api/mcp"
[mcp_servers.asohawk.http_headers]
Authorization = "Bearer ahk_YOUR_KEY"
To keep the key out of the file, use codex mcp add with --bearer-token-env-var ASOHAWK_API_KEY instead.
</details>
<details> <summary><strong>Qwen Code</strong></summary>
Add to ~/.qwen/settings.json:
{
"mcpServers": {
"asohawk": {
"httpUrl": "https://asohawk.cc/api/mcp",
"headers": {
"Authorization": "Bearer ahk_YOUR_KEY"
}
}
}
}
</details>
<details> <summary><strong>Kimi CLI</strong></summary>
kimi mcp add --transport http asohawk https://asohawk.cc/api/mcp --header "Authorization: Bearer ahk_YOUR_KEY"
</details>
<details> <summary><strong>Gemini CLI, VS Code and any other MCP client</strong></summary>
Gemini CLI takes the same httpUrl block as Qwen Code in ~/.gemini/settings.json. VS Code takes a servers block in .vscode/mcp.json. Any client that reads mcp.json works with the standard shape:
{
"mcpServers": {
"asohawk": {
"type": "http",
"url": "https://asohawk.cc/api/mcp",
"headers": {
"Authorization": "Bearer ahk_YOUR_KEY"
}
}
}
}
Exact snippets for every client, plus a stdio bridge for clients without remote MCP support, are in the getting started guide.
</details>
3. Ask. The agent calls ASOHawk and answers in plain language:
Give me a growth report for my apps this week.
Who are my top competitors and which keywords do they rank for that I don't?
Find new keyword opportunities for my app and track the best ones.
How many downloads and how much revenue does https://apps.apple.com/us/app/duolingo/id570060128 get?
What the agent can do
64 tools cover the full ASO loop: rankings and keyword tracking, competitor discovery and monitoring, review streams, ASO health and recommendations, acquisition and retention funnels, revenue, keyword difficulty and popularity scoring, exact Apple Search Ads popularity on demand, chart moves, hypotheses and learnings, App Store Connect metadata edits, screenshot changes, native A/B tests (Product Page Optimization), IAP and subscription repricing, build attachment and App Review submission.
Every tool returns the same envelope: the answer under data, plus data_freshness, honest limitations, recommended_next_capabilities and a cost_class. Agents do not guess what a number means or what to call next; the response says so.
- Tool reference: every tool with its contract, generated from the live registry.
- Playbooks: 15 step-by-step recipes, from onboarding an app to shipping a build through App Review.
- Concepts: authentication, permissions, the response envelope, errors, cost classes.
Built for trust
- Scoped keys. Read keys see read tools only; write tools are invisible to them, not just refused.
- Human approval on writes. Metadata changes, screenshot changes, price changes and App Review submissions are proposals first. A human approves them in the dashboard before anything reaches App Store Connect. High-risk operations (name or description rewrites, prices, review submissions) wait for a human even in workspaces that enable auto-apply.
- Per-domain read controls. Each data domain can be switched off for agents independently.
- A closed error contract. Refusals carry a reason code, whether a retry can succeed, and alternative tools; agents recover instead of hallucinating.
Details in concepts.
Links
- Website and signup: asohawk.cc
- Live agent guide with your real key filled in: asohawk.cc/docs/agent
- Pricing: asohawk.cc/#pricing
ASOHawk is a hosted service; this repository is its public documentation. Found a gap or want a tool that is missing? Open an issue.
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。