shiplocale-mcp
OfficialAllows reading and editing localized App Store metadata, including app copy, release notes, IAP display names, screenshot texts, and optionally pushing approved copy to live App Store Connect listings.
Allows reading and editing localized Google Play metadata, including app copy, release notes, IAP display names, screenshot texts, and optionally pushing approved copy to live Google Play listings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shiplocale-mcplist my apps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shiplocale-mcp
MCP server for ShipLocale — lets Claude (or any MCP client) read and edit your localized App Store / Google Play metadata: app copy, release notes, IAP display names, screenshot texts, target languages, and — optionally, behind an elevated scope — push approved copy to the live store listing.
How it works
ShipLocale keeps two layers, and this server mirrors that split:
Local drafts — metadata edited and AI-translated inside ShipLocale. Safe to let an agent modify freely; nothing reaches a real store.
Store push — explicit, irreversible writes to App Store Connect / Google Play. Push tools are only registered when your key (and
SHIPLOCALE_SCOPES) includes thepushscope, so an agent with aread translatekey physically cannot ship anything.
Related MCP server: i18n-mcp
Setup
1. Mint an API key
API keys are an Indie/Pro plan feature. In the ShipLocale dashboard: Settings → API Keys → Create. Pick a label (e.g. "MCP — Claude") and scopes:
Scope | Grants |
| Read apps, metadata, releases, screenshot texts, target languages |
| Edit local drafts, trigger AI generation/translation |
| Write to the live App Store / Google Play listing — add only if you want the agent able to ship |
You'll get a clientId (slk_...) and a clientSecret (sls_..., shown once).
Recommended: mint a read translate key. Add push only when you explicitly want agentic store pushes.
2. Configure your MCP client
Requires Node.js 20+. No install step needed — npx fetches the package from npm.
Environment variables:
Variable | Required | Default | Purpose |
| yes | — | API key client ID ( |
| yes | — | API key secret ( |
| no |
| Space-separated scopes to request — must be a subset of what the key holds |
| no |
| Override for local development |
Claude Code:
claude mcp add shiplocale \
-e SHIPLOCALE_CLIENT_ID=slk_xxx \
-e SHIPLOCALE_CLIENT_SECRET=sls_xxx \
-- npx -y @shiplocale/shiplocale-mcpClaude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"shiplocale": {
"command": "npx",
"args": ["-y", "@shiplocale/shiplocale-mcp"],
"env": {
"SHIPLOCALE_CLIENT_ID": "slk_xxx",
"SHIPLOCALE_CLIENT_SECRET": "sls_xxx"
}
}
}
}Auth is OAuth client-credentials against POST /connect/token; the server caches the 1-hour access token and re-fetches automatically on expiry or 401.
Tools
Read (read scope)
Tool | Description |
| Apps in the portfolio |
| A/B listing variants for an app |
| All draft fields × locales, with status (also IAP rows via |
| Releases and their What's New in every locale |
| Target locales at account / app / IAP level |
| Screenshot headlines/captions + translations per slot |
| Per-field hard character limits |
Local drafts (translate scope — never touches the store)
Tool | Description |
| Upsert base-language text for a field (incl. IAP display names) |
| Edit any localization row; |
| Async AI translation of a field into target locales |
| AI rewrite for review — returns text, saves nothing |
| Create a release / set base What's New |
| AI-draft What's New from commit log / bullets |
| Async translation of What's New |
| Set target locales (account / app / IAP level) |
| Edit slot base text / override one translation |
| Async translation of all screenshot texts |
Store push (push scope — irreversible, live listing)
Tool | Description |
| Find an editable store version and read live copy |
| Write metadata to App Store Connect |
| Read/write live IAP listings |
| Write a Google Play listing (title/short/full description) |
| Push What's New for one locale to a Play track |
| Push all approved screenshot renders for a variant |
Push tools require a connected store credential (credentialId from the dashboard's credential vault, except Play release notes, which resolve it server-side). Localizations generally must be Approved before a push picks them up.
Example prompts
"List my apps and show me which locales are missing a translated subtitle."
"Create release 2.4.0 from this commit log, generate the What's New, and translate it to all target languages."
"Shorten the German promotional text to fit the 170-char limit and approve it."
(with
push) "Push the approved 2.4.0 release notes to the production track."
Development
npm install
npm run build
npm run dev # tsc --watch
npm run typecheckPoint at a local backend with SHIPLOCALE_API_URL=https://localhost:7443 (or whatever the Aspire dashboard shows for the API).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ShipLocale/shiplocale-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server