Skip to content
LocalASO

MCP and AI agents

Connect LocalASO to Cursor for MCP-based ASO work

To connect LocalASO to Cursor, add a localaso entry to ~/.cursor/mcp.json that runs the app binary with the bundled mcp.js. Cursor's agent can then read your keyword board and add or check keywords while you work in the same window as your app's code.

Updated

The config

Cursor reads MCP servers from .cursor/mcp.json in a project or ~/.cursor/mcp.json in your home directory for tools available everywhere. For LocalASO, a global file is usually right, because the keyword database is global to your Mac anyway:

{
  "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" }
    }
  }
}

Cursor's documentation lists command, args and env as the fields for a local command-line (stdio) server. Its field table also lists a type of "stdio"; if your Cursor version does not pick the server up, add "type": "stdio" to the entry. The values themselves are the ones from the MCP server docs.

Use a project-level .cursor/mcp.json instead only if you want the server tied to one repository. Even then it reads the same local database.

Approve the tools

Cursor asks for approval before using an MCP tool by default. Expand the arrow next to the tool name to see the arguments before you accept. For board_add_keywords that means you can read the exact terms and country codes the agent is about to write. For keywords_check you can see which terms it is about to check.

Why Cursor suits this

If your app's metadata lives in the repository, for example in fastlane files or a localization folder, the agent can read those files and the LocalASO board in one conversation. A prompt like "compare the subtitle in fastlane/metadata/en-US/subtitle.txt with my LocalASO board and tell me which top keywords are missing" combines a file read with board_get. The agent can suggest the edit in the file; nothing is uploaded anywhere, because the MCP server cannot upload to App Store Connect.

Typical session

  1. Ask the agent to call board_get and summarize which keywords have a Push verdict.
  2. Ask it to propose 20 new terms and add them with board_add_keywords as ideas.
  3. Ask it to call keywords_check for those terms. The tool runs at most 60 checks per call, so 20 terms across 3 countries fits in one call. See the keywords_check page for the arithmetic.
  4. Review the results, then edit the metadata files yourself.

If tools do not appear

Restart Cursor after editing the file, check the JSON, and make sure LocalASO is licensed on this Mac, because every tool refuses to run without a valid license. For the other clients see Codex CLI, Gemini CLI and the generic client page.

Next step

Use the character counter to check any subtitle the agent proposes against the 30-character limit before you paste it anywhere.

Questions

Global or project config?
Use ~/.cursor/mcp.json when you want LocalASO in every project. Use .cursor/mcp.json inside one repository when only that app needs it.
Will Cursor ask before running a tool?
By default yes. Cursor asks for approval before using MCP tools and shows the arguments if you expand the tool name.

Sources

Do this for every country, in minutes

LocalASO checks your rank, volume and difficulty for every keyword in 50+ App Store countries, in each local language. It runs on your Mac. $29 once, no subscription.