Skip to main content
Glama

AppTail – ASO & Keyword Research

Save Market

save_market
Destructive

Create or update a saved market in the authenticated account from a query, countries and optional per-storefront seed terms. An existing name updates that market, adding storefronts or replacing seed configuration and rebuilding requested storefronts. Persists account configuration and queues background corpus collection using public App Store data. Requires write authorisation. Returns market_id, build status, affected storefronts and caveats; collection may still be pending.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoWhat to call it. Defaults to `query`. Passing the name of a market this account already has ADDS the new storefronts to it rather than creating a second one.
queryYesThe phrase to build the market from, e.g. "AI calorie tracking". Used as the seed in every storefront unless `seeds` overrides it.
seedsNoPer-storefront seed terms, keyed by country code: {"de": ["kalorienzähler"]}. OPTIONAL, and optional per storefront. A storefront you leave out is not seeded from `query`: its terms are read off the localised listings of the leaders of the storefront that WAS phrased, and each one is searched there before it is kept — so it ends up with the local phrasing rather than an English phrase nobody types. Pass a storefront explicitly when you know the local phrase (to use the supplied local terms) or when you want to ask a different question there. Up to five terms each.
countriesYesStorefronts to ask it in, ISO 3166-1 alpha-2 (e.g. ["US","DE"]). Each keeps its own corpus; nothing is blended across them.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
slugYesIts address in the console.
statusYes`building` immediately after a save. A market is building while ANY storefront is; each one lands separately. A build that dies leaves the storefront `failed` (or `ready` with `failed_at` set when a previous corpus survives) — it never stays `building` for ever.
caveatsYesWhat the caller needs to hear — that the build is not finished, or that a storefront was seeded from an English phrase.
createdYesTrue for a new market, false when storefronts were added to one that already existed.
market_idYesPass it to get_market to read the market once it has built.
console_urlNoThe market in the console.
storefrontsYesEvery storefront this market is now asked in, including ones it already had.
added_storefrontsYesThe ones this call added or rebuilt.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that an existing name replaces seed configuration and rebuilds storefronts (matching destructiveHint=true), that write authorisation is required, that corpus collection is queued as a background job which may still be pending, and what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the create/update purpose, then layers update semantics, side effects, auth and returns in dense but purposeful sentences with no filler. Slightly long, but every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the mutation path, prerequisites (write auth), asynchronous side effects and caveats for a four-parameter tool with nested seeds. With an output schema present, its restatement of return fields is a bonus rather than a necessity, leaving nothing essential missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so name, query, seeds and countries are already fully documented in the schema; the description only restates the parameter list rather than adding format or constraint detail. Baseline 3 applies when the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (create or update) and resource (saved market) plus the inputs it is built from, so an agent can distinguish it from siblings like get_market, edit_market_corpus and list_markets without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains the create-vs-update branch: an existing name updates that market, adds storefronts, or replaces seed configuration and rebuilds. It gives strong context for the primary path but never names alternative tools (e.g. edit_market_corpus) or an explicit when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources