Locize MCP Server
The Locize MCP (Model Context Protocol) server lets AI assistants (Claude, Cursor, GitHub Copilot, and others) interact directly with your translation projects.
Server URL: https://mcp.locize.app
Setup
Claude (claude.ai, Desktop, mobile, Cowork)
Locize is in Claude's connector directory:
- Open Locize in the directory, or search for "Locize" under Customize > Connectors
- Click Connect, and your browser opens a login/consent screen
- Sign in with your Locize account and grant the requested permissions
- A Personal Access Token is created automatically in your profile
To add it by URL instead, use Add custom connector with https://mcp.locize.app.
Claude Code (CLI)
claude mcp add --transport http locize https://mcp.locize.appThen run /mcp in a Claude Code session and complete the OAuth flow.
Note: After first-time OAuth, Claude Code may show "Authentication successful, but server reconnection failed." This is a known Claude Code issue; simply restart Claude Code and the server will connect automatically using the stored token.
VS Code (GitHub Copilot)
Install Locize in VS Code: VS Code opens and asks to install the server, then asks you to sign in to Locize (OAuth) when it first starts it. Or add it by hand in .vscode/mcp.json:
{
"servers": {
"locize": { "type": "http", "url": "https://mcp.locize.app" }
}
}Other HTTP-native clients (Cursor, etc.)
Add the server URL https://mcp.locize.app in your client's MCP settings and complete the OAuth flow. The exact steps vary by client; consult your client's MCP documentation.
Stdio transport (PAT alternative)
For clients that support stdio but not HTTP, use mcp-remote as a bridge:
{
"mcpServers": {
"locize": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.locize.app"]
}
}
}Authentication
The MCP server supports two authentication methods:
OAuth 2.0 (recommended): used automatically by Claude Desktop, Cursor, and other MCP clients that support it. No manual token management needed. The OAuth flow creates a Personal Access Token in your profile automatically. Access can be revoked at any time.
Personal Access Token (PAT): for CI/CD, scripts, or clients that don't support OAuth. Create one in your profile under Personal Access Tokens. Pass it as Authorization: Bearer lz_pat_.... See the PAT documentation for details on scopes and security.
Available tools
The MCP server exposes 28 tools organized by workflow:
Discovery
| Tool | Description |
|---|---|
list_projects | List all projects accessible via your token. Call this first. |
get_project_stats | Translation coverage per version, language, and namespace; narrow by version and languages, a very large project gets totals per language |
list_branches | List branch projects of a parent project |
list_tenants | List tenant projects of a parent project |
Translation content
| Tool | Description |
|---|---|
get_translations | Fetch unpublished (editor state) translations with filtering by tags, timestamps, the needs-review queue (needsReviewOnly), and pagination; raw includes the needsReview mark as the editor shows it (the stored flag, or the project's rule for unflagged machine output) and, on scored AI translations, the confidence (qeScore) and its reason (qeScoreReason); issues adds what the editor's quality checks flag per key, so an agent can fix it |
get_published_translations | Fetch published (CDN) translations for a namespace; a large namespace comes in pages (nextPage) |
find_missing_translations | Compare a target language against the reference language; returns missing and stale keys, long lists in pages |
report_missing_keys | Add new keys (never overwrites existing). Auto-batches at 1000 keys. If Automatic Translation is enabled, new keys on the reference language are translated into all target languages automatically. |
update_translations | Update or delete translation keys. Set a value to null to delete. State quality: "AI" for texts the agent generated (the project's needs-review rule marks them) or "HT" for a person's text; without it a push confirms, as before. needsReview marks or confirms explicitly. A key may carry a context ({ value, context: { text } }, or { context: { text } } alone to change only the context). |
Review
| Tool | Description |
|---|---|
list_review_proposals | The pending review proposals of a namespace: key, current text, proposed text, who proposed (a person, an API key, the AI pipeline or AI review), confidence, reason and critique. Filter by origin to see what the AI review doubts. |
start_ai_review | Start an AI review run over a version (languages, namespaces, check everything again, budget cap). Refuses with the estimate when the AI tokens are short; returns the run and a jobId for get_job_status. Admin or manager only. |
Context
These read-only tools give an agent the same context a human translator has, so it can translate, review, and lint in your IDE.
| Tool | Description |
|---|---|
get_glossary | Fetch the project's terminology glossary (approved & forbidden terms per language). Use each term's preferred value when translating, or lint new source strings for forbidden-term drift. |
get_styleguide | Fetch the project's style guide (tone, formality, target audience, usage rules) per language |
search_translation_memory | Find previously translated segments similar to a source string (exact + fuzzy) to reuse prior translations |
get_screenshot_context | Fetch the screenshot(s) and mapped region where a key appears, for visual disambiguation |
Release workflow
| Tool | Description |
|---|---|
publish_version | Publish a version to the CDN. Returns a jobId for status tracking. |
copy_version | Copy all translations from one version to another (e.g. latest → production) |
copy_language | Copy a single language between versions |
get_job_status | Check or wait for async operations (publish, copy, merge) to complete |
Branch workflow
| Tool | Description |
|---|---|
create_branch | Create a translation branch from a version |
merge_branch | Merge a branch back into its parent project |
Project structure
| Tool | Description |
|---|---|
add_language | Add a language to the project |
remove_language | Remove a language and all its translations |
change_languages | Replace the entire language list atomically |
add_version | Add a new version |
delete_version | Delete a version and all its translations |
rename_namespace | Rename a namespace across all languages |
delete_namespace | Delete a namespace and all its translations |
Example prompts
Once connected, you can ask your AI assistant things like:
- "Find all missing German translations in the checkout namespace"
- "Publish the latest version of my project"
- "Add Japanese to all versions"
- "Create a branch for the v2 feature, translate it, then merge it back"
- "Show me which keys changed in English this week"
- "Report these new keys from my codebase to Locize"
- "What's the translation coverage for the production version?"
- "Translate these new strings using the project's glossary and style guide"
- "Lint this PR's new English strings for any forbidden glossary terms"
- "Show me the screenshot where the
checkout.titlekey appears"
Agent conventions
To make your AI agent use these tools by default — fetch the glossary and style guide before translating, reuse translation memory, and lint pull requests for forbidden terms — drop our ready-made convention files (CLAUDE.md, AGENTS.md, .cursorrules) into your repo. They live in the public locize/locize-agents repository.
PAT scopes
Tools require specific PAT scopes. If a tool returns a scope error, your token needs additional permissions.
| Scope | Tools |
|---|---|
read | list_projects, get_project_stats, list_branches, list_tenants, get_translations, get_published_translations, find_missing_translations, get_glossary, get_styleguide, search_translation_memory, get_screenshot_context, list_review_proposals |
write | report_missing_keys, update_translations, rename_namespace, delete_namespace |
manage | publish_version, copy_version, copy_language, get_job_status, create_branch, merge_branch, add_language, remove_language, change_languages, add_version, delete_version, start_ai_review |
Beyond PAT scopes
PAT scopes are only the first gate. Your project-level role and permissions still apply on top:
- Project role: your role on a given project (admin / manager / publisher / user / accountant) always wins when it is stricter than the PAT scope. For example, a PAT with
managescope called by a user whose project role isreadonlystill cannot modify that project. - Language / version / namespace scope: if your membership is restricted to specific languages, versions, or namespaces,
get_translationsandfind_missing_translationswill reject requests outside that scope. translateOnlyusers (role user or publisher): the structural tools (add_language,remove_language,change_languages,add_version,delete_version,copy_version,copy_language,create_branch,merge_branch,rename_namespace,delete_namespace) are blocked, and so is deleting keys withupdate_translations. Publishing withpublish_versionstays open to a translate-only publisher, as in the dashboard.- Structural changes:
add_language,remove_language,change_languages,add_version,delete_version,rename_namespace,delete_namespaceand copying into a new version need the admin or manager role without a version, language or namespace restriction, exactly like the dashboard.merge_branchneeds the admin or manager role;publish_version,copy_versionandcopy_languageare open to publishers as well, inside their restriction. - Blocked / revoked access: if your project membership is blocked or your PAT has been revoked, every tool call fails immediately with a 401.
- Parent project access: for tenant and branch projects, merging translations with the parent only happens if your PAT also has access to the parent project; otherwise you see the child-only view.
Troubleshooting
- The connector does not connect, or the sign-in page does not finish: sign in with the Locize account you use in the dashboard (email and password, or your company's SSO), confirm the second factor if your account has one, and grant the requested permissions. No Locize account yet? Create one first, then connect again.
- A tool answers with a scope error: the access was granted with fewer PAT scopes than the tool needs. Remove the connector's token in your profile under Personal Access Tokens and connect again, granting the scope.
- A tool refuses a project, language or version: your role or restriction on that project does not allow it (see Beyond PAT scopes). Call
list_projectsto see which projects and roles you have. - Large namespaces:
get_translations,get_published_translationsandfind_missing_translationsanswer in pages; the assistant continues with thenextPagetoken it gets back. - A write stops at a plan limit: the project reached its plan's word or namespace limit, so the rest was not saved. An organization admin changes the plan in the dashboard (the tool's answer links the page); the assistant should not retry.
- Something changed in your project: every write runs as you and shows in the project's history like a change made in the dashboard.
- Revoke access: delete the token in your profile under Personal Access Tokens; the connector stops working at once.
Still stuck? Write to support@locize.com with the tool name and the time of the failure.
Data and privacy
The MCP server reads and writes your Locize project with your own permissions, nothing more. Per tool call it logs the tool name, your user id, the project id and a masked token, for operations and support; it does not store your prompts or the conversation. What a write tool sends (for example new translation texts) is stored in your project as any change from the dashboard. See the privacy policy.
Technical details
- Transport: Streamable HTTP (Web Standard
Request/Response) - Auth: OAuth 2.0 (Authorization Code + PKCE with Dynamic Client Registration) or PAT Bearer token
- Endpoint:
POST https://mcp.locize.app - OAuth metadata:
GET https://mcp.locize.app/.well-known/oauth-protected-resource - Stateless: Each request creates a fresh MCP server instance. No session management required.
See also
- Why not just use AI to translate?: how Locize and AI tools complement each other
- Automatic Translation: combine saveMissing with AI auto-translation for a fully automated workflow
- Personal Access Tokens: create and manage tokens for MCP authentication