ASO MCP has solid tool coverage for App Store Optimization with 20 tools spanning keyword research, competitor analysis, and App Store Connect integration. Most tools have descriptions (19/20 present, 1 missing), and all visible tools have basic input schemas. However, descriptions average ~100 chars (well below the optimal 194-char baseline), output schemas are not documented, and several tools lack parameter descriptions. Tool naming is generally clear and verb-forward, but composition could be improved, some tools combine multiple concerns (e.g., analyze_competitors both fetches AND performs gap analysis). No tool annotations (readOnlyHint/destructiveHint) are present despite clear WRITE operations. Error handling is not visible in the source provided. STDIO transport hard-caps the protocol readiness score at 50.
Fetches and compares metadata of top-ranking apps for a keyword, and performs keyword gap analysis. Used to understand the competitive landscape.
Analyzes app reviews for sentiment, common complaints, feature requests, and keyword insights
Clear cached results to force fresh data fetching
Update app metadata across multiple locales in a single operation
Find app by bundle ID, get App Store Connect ID and version state
Retrieve app metadata for a specific locale from App Store Connect
List all available localizations for an app in App Store Connect
Output schemas not documented in visible source code. LLMs cannot plan downstream operations or extract required fields without knowing response structure. Baseline shows 100% of A+ tools have documented return types.
Tool annotations missing for WRITE operations. connect_setup, connect_update_metadata, connect_batch_update_metadata, and clear_cache are destructive or state-modifying, but lack destructiveHint or idempotentHint annotations. Baseline: 100% of production tools mark side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Configure App Store Connect credentials for metadata management
Update app metadata for a specific locale in App Store Connect
Discovers high-opportunity keywords for a given app category or niche
Generates a comprehensive ASO strategy brief with keyword recommendations and implementation guidelines
Retrieves all ASO-relevant information for a single app: title, description, rating, reviews, similar apps, and metadata analysis.
Generates a comprehensive ASO report for an app including rankings, competitor analysis, and optimization recommendations
Retrieves historical ranking data for an app across tracked keywords
Identifies keyword gaps between an app and top competitors in a specific category
Suggests localized keywords for different countries/regions based on search trends
Analyzes current app metadata and suggests optimizations based on keyword research and character limits
Search for keywords and get ASO metrics (traffic, difficulty scores) from App Store
Suggest keywords for an app using different strategies (category, similar, competition)
Tracks app ranking position for specific keywords and stores snapshots for historical analysis
Descriptions are concise but below optimal length. Average is ~70 chars (baseline 194 chars). Most descriptions lack WHEN to use the tool or its relationship to similar tools (e.g., analyze_competitors vs keyword_gap overlap is not explained).
Parameter descriptions are sparse or missing for several tools. E.g., connect_setup description for 'privateKeyPath' does not explain format, encoding, or whether relative/absolute paths work. Baseline: 100% of A+ tools have param descriptions.
Error handling and recovery guidance not visible in source. Rubric requires: 'Error responses must tell the LLM what to do next.' No evidence of structured error responses with recovery hints (e.g., if app lookup fails, suggest search_keywords instead).
Tool composition: analyze_competitors performs BOTH competitor fetching AND keyword gap analysis. Rubric: 'Each tool should do exactly one thing.' Consider splitting into analyze_competitors (fetch metadata) + competitors_keyword_gap (gap analysis).
Pagination not visible for tools that return lists (e.g., analyze_competitors returns 'apps' array with no limit parameter shown in schema). Rubric: 'Tools returning lists should accept page/offset and limit parameters.' Top 50 items capped but not enforced at schema level.
connect_setup accepts credentials (issuerId, apiKeyId, privateKeyPath) as parameters. Rubric (CRITICAL): 'Credentials must never appear as tool parameters.' Move to environment variables or server-side vault injection. Agent logs will expose secrets.
Field naming inconsistency: tools return 'appId' but accept 'appId' as parameter, naming is consistent here, but no evidence of natural identifiers (name, bundle ID) being returned alongside IDs. Rubric: 'If get_user returns user_id, downstream tools should accept it.' No chaining-ID verification visible.