MCP server

Localhero.ai runs a remote MCP server at https://localhero.ai/mcp. Connect it to an AI assistant such as Claude to find a string by the copy you see in the product, change it in every language and open a GitHub pull request with the result. You do not need to check out the repo or edit locale files; a developer only needs to review any changes in the PR.

It is built for the person who owns the words rather than the code: a product manager, a designer, a founder fixing a label between meetings. Developers can use it too, but the agent skill is the better fit inside a coding session.

Connect Claude

The server uses OAuth, so you sign in with your normal Localhero.ai account. You only enter the connector URL and public Client ID; no client secret is needed.

  1. In Claude, open Settings → Connectors → Add custom connector.
  2. Enter the URL https://localhero.ai/mcp.
  3. Under advanced settings, choose to provide your own client details. Enter the public Client ID AykIenOlQcJmiKArrpwtQzGhnjIsjuiCAZnAM5qlVEI and leave the client secret empty.
  4. Save, then click Connect. Localhero.ai shows a consent screen listing what Claude can do. If you are not signed in, complete the usual magic-link login; you will return to the consent screen afterward.
  5. Click Authorize. Claude now has the tools below.

Access is scoped to the organizations your account belongs to and every edit is attributed to you in the version history, the same as an edit made in the dashboard. Access tokens expire after two hours and are refreshed while the connector stays installed; remove the connector in Claude to stop it.

Supported clients. Today, the custom connector works with claude.ai and Claude Desktop. Other MCP clients are not supported yet. If you want to use Localhero.ai from another client, tell us which one at hi@localhero.ai.

What a session looks like

Ask in plain language and Claude works through the tools. A safe edit follows this explicit sequence:

Change "Get started" to "Start free trial" in the onboarding flow, in all languages and open a PR.

  1. list_projects to find the project.
  2. search_keys for "Get started". Search matches key names and translated text, so the copy you see on screen is enough. You do not need to know the key.
  3. get_project_settings, get_glossary and get_translations to review the style, terminology and current values.
  4. preview_translation (or preview_alignment for several proposed changes) to preview translations before saving. Review the returned suggestions and changed flags.
  5. update_translation once per language after review. Use the canonical source locale to change the original copy; use a target locale to change that language's working translation. These are saved in Localhero with version history, but not in GitHub yet.
  6. create_pr with the keys that changed. Localhero.ai opens a pull request on the connected repository with the current translations for those keys—the same mechanism as Sync to GitHub in the dashboard.
  7. sync_status returns the pull request URL when it is ready.

The pull request goes through your normal review. Share the PR URL with your developer or reviewers so they can check and merge the changes. Reviewers can still adjust the text on the review page before it merges.

Tip: See a string in your product that needs changing? Take a screenshot and tell Claude what to update. Claude can search for the matching key and make the change.

Tools

Tool What it does
list_projects The projects you have access to, with source and target languages.
list_keys A project's keys, alphabetical and paginated (50 per page, up to 200). Pass a prefix like notifications. to drill into one area, or missing_locale to return keys without a translation in that locale.
search_keys Find keys by name or by the translated text, case-insensitive substring match. Minimum three characters, up to 50 results.
get_translations A key's current text in every language, with the last-updated time.
get_project_settings Brand name, tone of voice, content type, length preference, gender handling, style guide and languages.
get_glossary Glossary terms with context, translation strategy, casing and example translations.
preview_translation Preview translations for one proposed value. Pass proposed_locale (the working language containing that value), optional proposed_value (otherwise the current value), and target_locales. It returns the canonical source locale/value plus each target's current and suggested value and changed flag. It never saves.
translate_text Preview translations for free text. Pass input_locale, text and target_locales; it returns translations with each locale's suggested_value, confidence_score and reasoning. It never saves.
preview_alignment Preview several Save & Align-style changes at once. Pass changes containing key, proposed_locale and proposed_value, plus target_locales. It returns one preview_translation-shaped result per change and never saves.
suggest_translation Preview an AI translation for one key and target language using the project's style guide and glossary. It never saves the suggestion, but uses translation credits.
update_translation Set a key's text in one language. Saved to Localhero.ai with version history; reaches the codebase when create_pr runs.
add_glossary_term Add a glossary term. Organization admins only.
update_glossary_term Change an existing term's context, strategy, casing or examples. Organization admins only.
create_pr Send the current translations for the selected keys back to the connected repository in a GitHub pull request. The project must be connected to a repository.
sync_status Whether a pull request from create_pr is ready and its URL.

Every tool advertises a structured JSON outputSchema; responses also include the same JSON as a text content block for older clients. The schemas are the contract: for example, preview_translation requires project_id, key, canonical_source_locale, proposed_locale, proposed_value, canonical_source_value and changes; translate_text returns project_id, input_locale, text and translations; list_keys returns keys and pagination metadata (page, page_size, total_count, total_pages, has_more).

The read tools are marked read-only in their MCP annotations, so Claude can call them without asking for confirmation. Translation previews (preview_translation, preview_alignment, translate_text and suggest_translation) do not save edits, but they spend translation credits and are intentionally not marked read-only; a client may ask for confirmation. They require an active subscription or trial and enough credits. update_translation, glossary writes and create_pr also are not read-only and should be confirmed. create_pr queues the pull request; use its returned sync_id with sync_status to follow progress.

Locale semantics

Projects have one canonical source locale and one or more target locales. preview_translation calls the locale containing the proposed copy proposed_locale; this is a working input and can be the source or a target locale. proposed_value is the copy to translate. target_locales says which project languages to preview (the proposed locale itself is skipped). The response always identifies the canonical source separately, so a proposed target-language rewrite does not silently become the source copy.

translate_text uses the same idea with input_locale and target_locales, and is for text that is not attached to an existing key. update_translation is the operation that saves a decision: locale equal to the project's source locale changes canonical source copy; any other locale changes only that locale's working translation.

What it does not do

  • Currently, it does not create keys. New strings still come from code: a developer adds the key in a pull request and the GitHub Action translates it. The MCP server edits keys that already exist in Localhero.ai. If you want to use MCP to prepare content for new keys, tell us how you work at hi@localhero.ai.
  • Currently, it does not run Localhero.ai's translation pipeline. The text saved by update_translation is what Claude wrote, guided by your glossary and style guide through the read tools. It goes through the same review page as any other edit, where a native speaker can catch what the model missed.
  • It does not touch source files directly. Everything reaches the repository through the pull request that create_pr opens, so nothing lands on a branch without a diff someone can read.

FAQ

Do I need a GitHub account to use it?

No. You need a Localhero.ai account with access to the project. The pull request is opened by the Localhero.ai GitHub App on the repository the project is connected to.

Which server should I point another MCP client at?

https://localhero.ai/mcp over streamable HTTP. OAuth discovery is at https://localhero.ai/.well-known/oauth-authorization-server, scope mcp:access, PKCE required. Clients that need a pre-registered Client ID use the one above.

Further reading

Last updated

Klar til å prøve?

Kom i gang på noen minutter. Du trenger ikke kredittkort.