Cursor · App Store Connect

Write What's New in every language with Cursor

Cursor already knows what changed in this release. Ask it to turn that into What's New, translate it, and stage it for every language on your listing. MetaRun holds each one to Apple's limits and shows the before and after per language.

Setup checked October 2026 against Cursor MCP docs, Cursor CLI

01 · Uplink

Connect Cursor once

01 · Add to ~/.cursor/mcp.json (or .cursor/mcp.json for one project)

{
  "mcpServers": {
    "metarun": {
      "url": "https://metarun.dev/api/mcp"
    }
  }
}

02 · Or use the install link

Opens Cursor with the server filled in.

https://cursor.com/link/mcp/install?name=metarun&config=eyJ1cmwiOiJodHRwczovL21ldGFydW4uZGV2L2FwaS9tY3AifQ%3D%3D

03 · Sign in

When Cursor connects, MetaRun opens in your browser. Pick read-only or read and change, and you're back in the editor with the tools listed under MCP.

Prefer a personal access token (scripts, CI)?

Use a token instead

Mint a personal access token in MetaRun under Settings, MCP. It's shown once and can be revoked any time. Cursor reads ${env:METARUN_TOKEN} from your environment. Some Cursor versions start the browser sign-in even when a header is set; if that happens, signing in works the same.

{
  "mcpServers": {
    "metarun": {
      "url": "https://metarun.dev/api/mcp",
      "headers": { "Authorization": "Bearer ${env:METARUN_TOKEN}" }
    }
  }
}
02 · Briefing

What Cursor handles here

Release notes are the last thing anyone writes. By then the version is ready, the build is processed, and twelve languages still say last month's text. Copying translations into App Store Connect one locale at a time takes longer than writing them.

Through MetaRun, Cursor writes and translates, and MetaRun does the parts that must be exact: it reads the live version, checks What's New against Apple's 4,000-character limit, stages one change per language, and reports which languages are still missing it.

03 · Preflight

Before you start

  • An update, not a first release: What's New only exists after the app has shipped once.
  • The version still editable (being prepared, ready for review, or rejected).
  • Something to work from: a changelog, the commit log, or your own notes.
04 · Execution

How it runs

  1. 01

    Gather what changed

    Cursor works from what it can see: your changelog, merged pull requests, the commit log since the last tag, or what you tell it.

  2. 02

    Read the version in every language

    MetaRun returns the version's localizations so the agent knows which languages exist and what they say now.

  3. 03

    Stage one change per language

    Each language gets its own preview with the old and new text. Anything over 4,000 characters is refused at preview, not by Apple after submission.

  4. 04

    Confirm coverage

    Before calling the job done, Cursor reads listing coverage, which lists any language still missing What's New.

05 · Session

An example session in Cursor

Use @CHANGELOG.md to write What's New for 2.4 and stage it for all languages.

  1. apple_list_version_localizationsVersion 2.4 has 12 languages. What's New is empty in each.
  2. apple_preview_set_version_localizationPreview: English (U.S.) What's New, 412 of 4,000 characters.
  3. Cursor asks before running apple_apply_set_version_localization. You read the preview above and approve.
  4. apple_apply_set_version_localizationApplied for English (U.S.).
  5. apple_get_listing_coverage11 languages still missing What's New. Cursor continues with those.

Illustrative: your apps, versions and numbers will differ. The tool names and their order are real.

06 · Tools

The MetaRun tools Cursor calls

ToolWhat it does
apple_list_version_localizationsreadEvery language on the version with its current What's New, description and keywords.
apple_preview_set_version_localizationpreview + applyStage What's New (or description, keywords, URLs) for one language.
apple_get_listing_coveragereadWhich languages are still missing which fields, so the job isn't declared done early.
apple_get_listing_editabilityreadWhether the version's text is editable right now.
aso_lint_metadatareadChecks copy against App Store rules before it's staged.
apple_preview_set_promotional_textpreview + applyThe 170-character line above the description that changes live, without review.
aso_schedule_promo_textMetaRunSchedule promotional text to switch at a set time, for example on launch day.

Each preview has an apply twin (the same name with apply instead of preview) that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between. MetaRun tools save to your MetaRun workspace only (studio projects, tracked keywords), never to Apple.

07 · Apple rules

What Apple enforces, and how MetaRun handles it

No What's New on a first version

Apple has no What's New field until the app has shipped once. The API rejects it and App Store Connect hides it, so MetaRun only asks for it on updates.

4,000 characters per language

What's New and the description each allow 4,000 characters. Promotional text allows 170 and is the only one of the three that changes without review.

Text locks once the version is in review

What's New is editable while the version is being prepared or after a rejection. apple_get_listing_editability tells the agent which fields are locked and why, instead of a write failing.

Adding a language creates rows Apple fills in

When a new language is added, Apple creates that language's other localization rows on its own. MetaRun's confirm token is keyed on the language, not Apple's row id, so your approved change doesn't fail as drift.

08 · Comms

What to ask Cursor

  • Ask Cursor: Use @CHANGELOG.md to write What's New for 2.4 and stage it for all languages.
  • Ask Cursor: The German What's New reads stiff. Rewrite it and show me the preview.
  • Ask Cursor: Set promotional text to announce the widget, live now.
09 · Unattended

Run it from a script with Cursor

The Cursor CLI runs one request without the editor with agent -p. Allow only the read tools the request needs in ~/.cursor/cli-config.json (Mcp(metarun:tool_name) rules), and keep MetaRun's apply tools out of that list.

Read-only check, safe to schedule

agent -p "List every language on the editable version of com.example.app that is missing What's New. Read only." --output-format json

Don't run it with --force for MetaRun: that approves every tool, applies included.

10 · Safety

How Cursor asks before a change

Cursor asks before each MCP tool call by default, following your Run Mode settings. Keep MetaRun's apply tools on ask: that prompt is the confirm step for every App Store change. In the Cursor CLI, allow rules live in ~/.cursor/cli-config.json in the form Mcp(server:tool), so you can allow MetaRun's read tools and leave the applies out.

Apple key stays on MetaRun, encryptedPreview before every writeRecorded, revertible from history
11 · FAQ

Frequently asked questions

Who writes the translations, Cursor or MetaRun?

Cursor does. MetaRun reads the live listing, checks the limits, and stages one change per language for you to approve. Translations through your own agent don't use MetaRun's AI translation budget.

Can Cursor update release notes after the app is live?

Not What's New: it locks with the version. Promotional text is the exception and changes the live listing immediately, so that's what to use for a post-launch message.

How many languages can it handle at once?

Every language on your listing. Each one is its own preview, so you can approve some and skip others.

Will it overwrite my description by accident?

Only fields the agent names are touched, and each preview shows the field's old and new text before anything is applied.

How do I connect Cursor to App Store Connect?

Add https://metarun.dev/api/mcp to ~/.cursor/mcp.json (or use the install link) and sign in to MetaRun when Cursor opens your browser. After that, ask for "release notes" in plain words and Cursor picks the MetaRun tools.

Does Cursor see my App Store Connect key?

No. Your App Store Connect API key stays envelope-encrypted on MetaRun's servers and is decrypted per request. Cursor holds a MetaRun token that you can revoke in Settings at any time.

More with Cursor

In depth: Listing translation

Agent access

14-day free trial with agent access. No credit card. Your Apple key stays encrypted on MetaRun.