使用说明
MobileAction MCP Server
App Store intelligence as callable tools for AI assistants.
An open-source Model Context Protocol server that exposes MobileAction data to MCP-compatible clients through a local stdio process.
Problem
App Store research often requires repeatedly moving between dashboards to inspect keyword rankings, reviews, competitors, downloads, revenue, active users, and featuring history. That workflow is difficult to combine with an AI assistant and hard to automate consistently.
Approach
This server wraps MobileAction endpoints as typed MCP tools. An MCP client can select a tool from the user's request, pass structured arguments, and receive readable JSON or a concise text result.
The implementation:
- Uses
FastMCPto register tools and run over stdio. - Sends asynchronous HTTP requests with a shared MobileAction API helper.
- Supports direct structured arguments and limited natural-language argument extraction for selected estimation/history tools.
- Resolves an App Store track ID from an app name through Apple's public search endpoint.
- Keeps the API key in the local environment rather than in client prompts.
Tech Stack
| Area | Technology |
|---|---|
| Language | Python 3.13+ |
| Protocol | Model Context Protocol, FastMCP |
| HTTP | httpx (async) |
| Environment | python-dotenv |
| Dependency management | uv |
| Transport | stdio |
Tool Coverage
The server implements 27 MobileAction/App Store data tools across:
- Keyword ranking, history, metadata, organic keywords, and visibility
- App details, versions, developers, discovery, and top charts
- Category and global rankings
- Reviews and review-language analysis
- Download, revenue, DAU, and MAU estimates
- Featuring history and category analysis
Four additional MCP helpers extract arguments from natural-language queries for selected tools.
Setup
Requirements:
- Python 3.13 or newer
uv- A MobileAction API key
- An MCP-compatible client
git clone https://github.com/asyau/mobile-action-mcp.git
cd mobile-action-mcp
uv sync
Create a .env file in the repository root:
MOBILEACTION_API_KEY=your_api_key_here
Start the stdio server:
uv run --with python-dotenv appinfo.py
Client configuration
Use an absolute repository path in the client configuration:
{
"mcpServers": {
"mobileaction": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mobile-action-mcp",
"run",
"--with",
"python-dotenv",
"appinfo.py"
]
}
}
}
Restart the MCP client after changing its configuration.
Demo
Once the client is connected, try prompts such as:
- “Find Instagram's App Store track ID in the US.”
- “Show the app's top organic keywords in the US.”
- “Compare its category ranking over the last 30 days.”
- “Summarize recurring themes in recent one-star reviews.”
- “Estimate downloads and revenue for the app last month.”
The request flow is:
User prompt → MCP client → selected FastMCP tool → MobileAction API → formatted result
API access and returned coverage depend on the permissions of the supplied MobileAction key.
Results
appinfo.pyregisters 31 MCP-callable functions: 27 data tools and four argument-extraction helpers.- The server covers keyword intelligence, app metadata, reviews, rankings, estimates, and featuring from one client connection.
- Requests use asynchronous I/O with a 30-second timeout and return inspectable text or formatted JSON.
- The repository does not yet include automated tests, a recorded client session, or latency/reliability benchmarks; no unsupported performance claim is made here.
Project Structure
appinfo.py FastMCP server, request helper, argument extraction, and tools
pyproject.toml Package metadata and direct dependencies
uv.lock Reproducible dependency lock
LICENSE MIT license
Next Steps
- Add mocked API tests for every tool and error path.
- Validate dates, country codes, device values, limits, and mutually dependent arguments before making requests.
- Return consistent structured MCP responses instead of mixing prose and serialized JSON.
- Add pagination helpers for endpoints that return multiple pages.
- Record a short client demo and add a screenshot or GIF to this README.
- Split the single server module into API, schemas, extraction, and tool-registration modules.
License
MIT
