Use
MCP server
Let Claude Code, Cursor, Codex or any MCP client read and fill your board.
What it is
LocalASO ships a local MCP (Model Context Protocol) server over stdio. External agents can read your keyword boards and extend them. It opens the same local database as the app. Nothing leaves your Mac except the public Apple search requests that rank checks make, and it needs an activated license. It cannot upload anything to App Store Connect.
The command
The installed app runs the server itself, so you do not need Node:
/Applications/LocalASO.app/Contents/MacOS/LocalASO
/Applications/LocalASO.app/Contents/Resources/app.asar/out/main/mcp.js
(environment: ELECTRON_RUN_AS_NODE=1)Claude Code
claude mcp add localaso -e ELECTRON_RUN_AS_NODE=1 -- \
/Applications/LocalASO.app/Contents/MacOS/LocalASO \
/Applications/LocalASO.app/Contents/Resources/app.asar/out/main/mcp.jsCursor
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"localaso": {
"command": "/Applications/LocalASO.app/Contents/MacOS/LocalASO",
"args": ["/Applications/LocalASO.app/Contents/Resources/app.asar/out/main/mcp.js"],
"env": { "ELECTRON_RUN_AS_NODE": "1" }
}
}
}Codex
Add this to ~/.codex/config.toml:
[mcp_servers.localaso]
command = "/Applications/LocalASO.app/Contents/MacOS/LocalASO"
args = ["/Applications/LocalASO.app/Contents/Resources/app.asar/out/main/mcp.js"]
env = { ELECTRON_RUN_AS_NODE = "1" }Any stdio client
Use the same three values: command /Applications/LocalASO.app/Contents/MacOS/LocalASO, argument /Applications/LocalASO.app/Contents/Resources/app.asar/out/main/mcp.js, environment variable ELECTRON_RUN_AS_NODE=1. The server writes only protocol messages to stdout and logs to stderr. Set LOCALASO_DATA_DIR to point at another data folder.
Tool reference
Every tool takes app: the internal id, the App Store ID, or part of the app name.
| Tool | Arguments | Result |
|---|---|---|
board_get | app? | Keywords by market with rank, volume, difficulty, verdict, demand and top-10 count. Without app, lists all apps. |
board_add_keywords | app, terms[], mode (english or localize), countries?, section? (page or idea) | The added keywords with their per-country phrases. |
keywords_check | app, terms?, countries? | Runs rank, volume and difficulty checks and waits. At most 60 checks per call; remaining says how many are left. |
competitors_get | app | Apps ranking ahead of yours, with ahead count and review count. |
listing_get | app | The saved listing of the main language: name, subtitle, keywords, promo text, description. |
localize mode needs an AI provider that works without a stored key, such as Claude Code, because keys saved by the app are encrypted for the app only. The server has its own rate limiter, so avoid big checks in the app and the server at once.Example prompts
- “Use localaso to list my apps, then show the board for the first one.”
- “Add these 12 keywords to my app as ideas, localized to Germany, France and Japan, then check them.”
- “Which keywords have a Push verdict in the US? Who is ahead of me for them?”
- “Read my current listing and suggest 10 long-tail keywords I do not target yet.”