Skip to content
LocalASO

MCP and AI agents

LocalASO keywords_check tool: rank, volume and difficulty checks with a 60-check cap

keywords_check fetches rank, volume and difficulty for keywords already on a board, waits until the checks finish and returns the results. It runs at most 60 checks per call; the remaining field says how many are left, and the agent calls the tool again for those.

Updated

Arguments

ArgumentTypeRequiredMeaning
appstringyesInternal id, App Store trackId, or part of the app name
termsstring[]noOnly check these board keywords. Matching is case-insensitive. When omitted, all board keywords are considered
countriesstring[]noOnly check these storefronts, using codes such as US, DE, JP. When omitted, all of the board's countries are considered

terms selects keywords that are already on the board. A term that is not on the board is simply not matched; use board_add_keywords to add it first.

The 60-check cap

One check is one keyword phrase in one country. The tool builds the list of checks due, runs the first 60 and reports the rest in remaining. The arithmetic is simple:

KeywordsCountriesChecksCalls needed
203601
204802 (60, then remaining: 20)
5052505

Because the tool waits for the queue to finish before it returns, a call with 60 checks takes as long as the rate limiter allows.

Rate-limit behavior

The MCP server runs its own rate limiter, 15 requests per minute by default, and shares the 6-hour response cache with the app. The limiter is separate from the one inside the running app, so a large check in the desktop app and a large check through an agent at the same time compete for the same public Apple search endpoint. Run one at a time. The only outside traffic is the public Apple search requests that rank checks make.

Output

FieldMeaning
appSummary: id, trackId, name, isOwn, mainCountry
checkedNumber of checks run in this call
remainingChecks due but not run because of the cap
queueThe check queue's status after the call
resultsOne entry per checked keyword and country: term, country, phrase, rank, volume, difficulty, verdict

rank is a number, "200+" when the app was not found, or null if the cell has no check. Volume and difficulty are 0 to 100 estimates from rating counts, not Apple search counts. The verdict is Swap, Dead, Hard, Push or Maybe.

A loop an agent should follow

This is an example instruction, not recorded output: "Call keywords_check for my app. If remaining is greater than zero, call it again with the same arguments until remaining is zero, then summarize the results by verdict." A good agent stops when remaining reaches 0 and does not retry on a checked of 0.

Failure modes

  • No valid license: the tool returns the licensing message and checks nothing.
  • Unknown country code or ambiguous app name: the tool returns an error text, with the candidates for an ambiguous name.
  • Very slow calls: the limiter, not the tool, sets the pace. Narrow terms or countries for faster feedback.

Next step

Read the checked board with board_get. To interpret the numbers, see keyword difficulty and the search volume guide. The full tool reference is in the MCP docs.

Questions

What does remaining mean?
It is the number of checks that were due but not run in this call because of the 60-check cap. Call the tool again to run them.
Can keywords_check add new keywords?
No. It matches terms against keywords already on the board. Add new ones with board_add_keywords first.

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.