shiplocale-mcp
MCP server for ShipLocale that lets Claude read and edit localized App Store and Google Play metadata, including app copy, release notes, and screenshot texts, with optional push to live listings.
README
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.
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 |
Read apps, metadata, releases, screenshot texts, target languages |
translate |
Edit local drafts, trigger AI generation/translation |
push |
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 |
|---|---|---|---|
SHIPLOCALE_CLIENT_ID |
yes | — | API key client ID (slk_...) |
SHIPLOCALE_CLIENT_SECRET |
yes | — | API key secret (sls_...) |
SHIPLOCALE_SCOPES |
no | read translate |
Space-separated scopes to request — must be a subset of what the key holds |
SHIPLOCALE_API_URL |
no | https://api.shiplocale.com |
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-mcp
Claude 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 |
|---|---|
list_apps |
Apps in the portfolio |
list_variants |
A/B listing variants for an app |
get_app_metadata |
All draft fields × locales, with status (also IAP rows via iapProductId) |
list_releases / get_release_notes |
Releases and their What's New in every locale |
get_target_languages |
Target locales at account / app / IAP level |
get_screenshot_texts |
Screenshot headlines/captions + translations per slot |
get_character_limits |
Per-field hard character limits |
Local drafts (translate scope — never touches the store)
| Tool | Description |
|---|---|
update_app_copy |
Upsert base-language text for a field (incl. IAP display names) |
update_localization |
Edit any localization row; approve: true marks it Approved |
translate_field |
Async AI translation of a field into target locales |
improve_copy |
AI rewrite for review — returns text, saves nothing |
create_release / update_release_notes |
Create a release / set base What's New |
generate_release_notes |
AI-draft What's New from commit log / bullets |
translate_release_notes |
Async translation of What's New |
update_target_languages |
Set target locales (account / app / IAP level) |
update_screenshot_text / update_screenshot_translation |
Edit slot base text / override one translation |
translate_screenshot_texts |
Async translation of all screenshot texts |
Store push (push scope — irreversible, live listing)
| Tool | Description |
|---|---|
list_store_versions / get_store_version_localizations |
Find an editable store version and read live copy |
push_version_localization |
Write metadata to App Store Connect |
list_store_iaps / get_store_iap_localizations / push_iap_localization |
Read/write live IAP listings |
push_play_listing |
Write a Google Play listing (title/short/full description) |
push_play_release_notes |
Push What's New for one locale to a Play track |
push_screenshots |
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 typecheck
Point at a local backend with SHIPLOCALE_API_URL=https://localhost:7443 (or whatever the Aspire dashboard shows for the API).
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。