🔍 aso-mcp
Free App Store keyword research for your AI. No API keys. No signup. No subscription.
Plug it into Claude, Cursor, Windsurf, or any MCP client and research App Store keywords conversationally.
Install in 10 seconds
Claude Code
claude mcp add aso -- uvx aso-mcp
Claude Desktop
Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"aso": {
"command": "uvx",
"args": ["aso-mcp"]
}
}
}
Cursor / Windsurf
Add to your MCP settings:
{
"mcpServers": {
"aso": {
"command": "uvx",
"args": ["aso-mcp"]
}
}
}
That's it. No API keys. No environment variables. Just works.
What can it do?
Once installed, just talk to your AI naturally:
"Research the keyword 'habit tracker' in the US App Store"
"Compare these keywords and rank them by opportunity: cable identifier, wire color code, voltage calculator, circuit breaker finder"
"Find me keywords with popularity above 30 and difficulty below 40 from this list: ..."
"Show me who's ranking for 'meditation app' and how hard it is to compete"
"Suggest optimized metadata for my app CableID targeting cable identification keywords"
"Scan 'budget planner' across the US, UK, Germany, Japan and Brazil stores"
Tools
| Tool | What it does |
|---|---|
aso_research_keyword |
Full analysis — popularity, difficulty, opportunity score, download estimates, top competitors |
aso_batch_research |
Research up to 20 keywords at once, ranked by opportunity |
aso_competitor_analysis |
Deep dive into who's ranking — ratings, reviews, pricing, developer, app age |
aso_find_opportunities |
Scan up to 30 keywords, filter by your thresholds, return only the good ones |
aso_suggest_metadata |
Generate optimized title, subtitle, and keyword field backed by real data |
aso_country_scan |
Check a keyword across up to 15 App Store regions |
How scoring works
All data comes from Apple's free iTunes Search API. No paid APIs, no scraping, no Apple Search Ads account needed.
Popularity (1–100)
A 6-signal model estimating how often a keyword is searched:
| Signal | Points | What it measures |
|---|---|---|
| Result count | 0–25 | How many apps appear for this keyword |
| Leader strength | 0–30 | Rating volume of top-ranking apps |
| Title match density | 0–20 | How many apps use this keyword in their title |
| Market depth | 0–10 | Whether strong apps appear deep in results |
| Specificity penalty | −30 to 0 | Adjusts for generic terms that inflate counts |
| Exact phrase bonus | 0–15 | Rewards multi-word keywords with precise matches |
Difficulty (1–100)
A 7-factor weighted model estimating how hard it is to rank:
| Factor | Weight | What it measures |
|---|---|---|
| Rating volume | 30% | How many ratings competitors have |
| Dominant players | 20% | Whether apps with 100K+ ratings dominate |
| Rating quality | 10% | Average star ratings |
| Market maturity | 10% | How long competitors have been listed |
| Publisher diversity | 10% | Few publishers vs many |
| App count | 10% | Total number of results |
| Content relevance | 10% | How well results actually match the keyword |
Opportunity labels
| Label | Meaning |
|---|---|
| Sweet Spot | High popularity + low difficulty — go build this |
| Hidden Gem | Decent popularity + very low difficulty |
| Competitive Opportunity | High popularity, moderate difficulty — needs a strong USP |
| Worth Investigating | Promising but do more research |
| Low Volume | Easy to rank but few people searching |
| Avoid | Too competitive for the search volume |
Download estimates
3-stage pipeline per ranking position: popularity → estimated daily searches → tap-through rate (power-law decay) → install conversion (35–55% for free apps).
Rate limits
The iTunes Search API is free but rate-limited. The client enforces a 3-second minimum between requests. Batch operations take roughly n × 3 seconds.
FAQ
How accurate is this compared to paid tools like Astro or AppTweak?
Paid tools have access to Apple Search Ads impression data across thousands of advertisers, giving them more precise volume estimates. This tool uses publicly available iTunes Search API data with a multi-signal scoring model. It's very good for relative comparisons (keyword A vs keyword B) and identifying opportunities. It won't give you the exact daily search volume that a $100/month tool would.
Do I need an Apple developer account?
No. The iTunes Search API is completely public.
Does this work for Google Play?
Not yet. The iTunes Search API only covers the Apple App Store. Google Play support would require a different data source.
Can I use this for commercial research?
Yes. MIT licensed. Do whatever you want with it.
Contributing
PRs welcome. If you want to improve the scoring model, add new tools, or support new data sources, open an issue first so we can discuss the approach.
License
MIT — free to use, modify, and distribute.
Built by @heyb3n_ — electrician turned iOS dev, building AI tools for indie developers.
Metadata
Release files for aso-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aso_mcp-0.1.2.tar.gz | 14.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aso_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.6 kB
Release files / aso_mcp-0.1.2.tar.gz
| Download URL | aso_mcp-0.1.2.tar.gz |
|---|---|
| Size | 14.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f63e96a76dc24ee032a32868c4bfedc59182b497e7278940a2a87246a35e8f2
|
|
BLAKE2b-256 checksum How to use checksums |
7cae5b920db7a21d534a4b0ccb59c89b5bf7c2635cc81b6717bdefc3b4edd8fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / aso_mcp-0.1.2-py3-none-any.whl
| Download URL | aso_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdf9a6fdea2995e5cc1181694ac595a0b0bf216c76dd9ca0165cf9d988d093df
|
|
BLAKE2b-256 checksum How to use checksums |
7af350381f26c99418b4a9819b5a9d6f4b668cb79e5ad4161985fb9b7b00a8d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for aso-mcp 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.