Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

L10n.dev - AI Localization Agent

NPM · AI-L10N-MCP · SCANNED SEP 20

MCP Server that turns your AI agent into a localization expert with token-efficient i18n translation

Available components

0 this week 93 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 98 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to l10n-dev/ai-l10n). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 37 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3126 tokens (~195/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the L10n.dev - AI Localization Agent MCP server?

L10n.dev - AI Localization Agent runs locally as an npm package, launched with npx -y ai-l10n-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · ai-l10n-mcp

# add to Claude Code
claude mcp add l10n-dev-ai-l10n-mcp -- npx -y ai-l10n-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "l10n-dev-ai-l10n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ai-l10n-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "l10n-dev-ai-l10n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ai-l10n-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add l10n-dev-ai-l10n-mcp -- npx -y ai-l10n-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "l10n-dev-ai-l10n-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ai-l10n-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add l10n-dev-ai-l10n-mcp --command npx --arg -y --arg ai-l10n-mcp
# ~/.hermes/config.yaml
mcp_servers:
  l10n-dev-ai-l10n-mcp:
    command: "npx"
    args: ["-y", "ai-l10n-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "l10n-dev-ai-l10n-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "ai-l10n-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add l10n-dev-ai-l10n-mcp -t stdio -c npx -a -y ai-l10n-mcp
// mcp.json
{
  "mcpServers": {
    "l10n-dev-ai-l10n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ai-l10n-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 19 Sept 26 +1
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 12 Sept 26 +1
    • Stability: 0.97 → pass security
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 −2
    • Stability: pass → 0.90 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/ai-l10n-mcp@1.2.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo l10n-dev/ai-l10n
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/l10n-dev/ai-l10n/.github/workflows/publish.yml@refs/heads/main
Rekor log index 2452369720
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:431234e7febeddd3fed0d7ec17d4878d5c2cc1db0ebb3408a1965904cc8a06486663cebc9913748e9c4ecd4859ff8953d506d48a7a1859dd8c1086983

Background: How many MCP packages publish verified provenance →

Dependencies 98 packages
Packages resolved 98
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 16 exposed · ~3,126 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
l10n_add_glossary_entry ~126

Add a term mapping to an existing glossary. Maps a source term to a preferred translation, with an optional context note for disambiguating polysemous terms (e.g. 'bank' = financial institution vs. river bank).

NameTypeReqDescription
contextstringDisambiguation note e.g. 'financial institution' to clarify the intended meaning
glossaryIdintegeryesNumeric ID of the glossary to add to
sourceTermstringyesTerm in the source language
targetTermstringyesPreferred translation of the term

No output schema declared.

No examples provided.

l10n_create_glossary ~133

Create a new empty glossary for a source→target language pair. After creating, use l10n_add_glossary_entry to add term mappings. Note: to auto-generate a glossary from a translation, use generateGlossary: true in l10n_translate_file instead.

NameTypeReqDescription
namestringyesDisplay name for this glossary e.g. 'My App German Glossary'
sourceLanguageCodestringyesSource language BCP-47 code e.g. 'en'
targetLanguageCodestringyesTarget language BCP-47 code e.g. 'de'

No output schema declared.

No examples provided.

l10n_create_instruction ~220

Create and save a new linguistic instruction for a source→target language pair. The instruction is stored in l10n.dev and applied automatically to future translations for that language pair (unless overridden per-request). Use this when the user wants to set a tone, style, or brand rule — for example after they answer the suggestion made during translation. Examples: - "Use formal tone (Sie, not du)" - "Keep product names Dashboard, Workspace, and Settings untranslated" - "Use simple, friendly language suitable for children"

NameTypeReqDescription
namestringOptional display name for this instruction
sourceLanguageCodestringyesSource language BCP-47 code e.g. 'en'
targetLanguageCodestringyesTarget language BCP-47 code e.g. 'de'
textstringyesThe instruction text e.g. 'Use formal tone (Sie, not du)'. Max 1000 characters. Use instructions for style/tone guidance. For specific term mappings, use glossaries instead.

No output schema declared.

No examples provided.

l10n_delete_glossary ~44

Permanently delete a glossary and all its term entries. This cannot be undone.

NameTypeReqDescription
glossaryIdintegeryesNumeric ID of the glossary to delete

No output schema declared.

No examples provided.

l10n_delete_glossary_entry ~51

Remove a single term mapping from a glossary.

NameTypeReqDescription
entryIdintegeryesNumeric ID of the entry to remove
glossaryIdintegeryesNumeric ID of the glossary

No output schema declared.

No examples provided.

l10n_delete_instruction ~52

Permanently delete a linguistic instruction. This cannot be undone. If the deleted instruction was active, no other instruction is automatically activated.

NameTypeReqDescription
instructionIdintegeryesNumeric ID of the instruction to delete

No output schema declared.

No examples provided.

l10n_detect_project_structure ~367

Scan an i18n source file to understand the project's localization structure. Returns: structure type (folder-based, file-based or unknown), source language code, all detected target languages, and the resolved target file path for each language (showing whether files already exist). Structure types: - folder-based: a language-code directory per language (locales/en/common.json) - file-based: the language code is in the file name, either as the whole name (locales/en.json) or next to other parts (app_en.arb, locales/common.en.json, locales/en-US.common.json, locales/messages_en_US.properties). In the latter case the detected naming pattern is reported as well. Use this before translating or setting up automation to understand what source files and target languages are in place. Call with the path to the source language file (e.g. locales/en.json, app_en.arb, locales/en/common.json). If the structure comes back as unknown even though localization files exist, pass languageCodeRegex to describe the naming pattern.

NameTypeReqDescription
languageCodeRegexstringRegex locating the language code in file names, overriding the built-in detection. Must contain a (?<language>...) named capture group, e.g. '^common\\.(?<language>[\\w-]+)\\.json$'. Only needed when…
sourceFilestringyesAbsolute or relative path to the i18n source file (e.g. './locales/en.json', './lib/l10n/app_en.arb', './locales/en/common.json', './locales/common.en.json'). This is the file in the source language…

No output schema declared.

No examples provided.

l10n_get_api_key_status ~48

Check whether an l10n.dev API key is configured (via environment variable or stored config). Use this to diagnose authorization errors or to confirm the key is set up correctly.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

l10n_get_balance ~77

Check the remaining character balance for this l10n.dev account. Each translation consumes characters from the balance. Use this when the user asks how many characters they have left, or proactively if a translation result shows a low remaining balance. If balance is insufficient, suggest purchasing more characters at https://l10n.dev/#pricing

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

l10n_get_glossary ~58

Get the full details and all term entries of a specific glossary by ID. Use when the user wants to review or audit the terms in a glossary.

NameTypeReqDescription
glossaryIdintegeryesNumeric ID of the glossary to retrieve

No output schema declared.

No examples provided.

l10n_list_glossaries ~77

List all saved glossaries for this l10n.dev account. Each glossary maps source terms to preferred translations for a language pair. Active glossaries are applied automatically during translation. Call this when the user asks about their glossaries, or to check whether a glossary exists for a language pair before suggesting generateGlossary.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

l10n_list_instructions ~75

List all saved linguistic instructions for this l10n.dev account. Linguistic instructions guide AI translation style, tone, and brand voice (e.g. "Use formal tone", "Never translate the word Dashboard"). Call this before translating if the user hasn't specified tone preferences, to check whether instructions are already configured.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

l10n_set_api_key ~172

Store an l10n.dev API key locally in the user's home directory (~/.ai-l10n/config.json). Once stored, the key is used automatically by all l10n tools without needing to set L10N_API_KEY. Get a free API key at https://l10n.dev/ws/keys Use this when: - The user provides an API key and wants to save it - A translation fails with an authorization error and the user wants to persist their key Note: if L10N_API_KEY environment variable is set in the MCP config, that takes precedence over the stored key and this tool is not needed.

NameTypeReqDescription
apiKeystringyesThe l10n.dev API key to store. Get yours at https://l10n.dev/ws/keys

No output schema declared.

No examples provided.

l10n_translate_file ~1,406

Translate an i18n source file to one or more target languages using l10n.dev AI. Supports JSON, JSONC, Flutter ARB, YAML, PO (gettext), XLIFF, MD, and all other text-based localization formats. Format is auto-detected from the file extension. If sourceFile is omitted, scan the project for i18n source files. Common patterns to look for: - `locales/en.json`, `locales/en-US.json` (flat file-based) - `locales/en/common.json`, `locales/en/messages.json` (folder-based) - `locales/common.en.json`, `locales/en-US.common.json` (language code inside the file name) - `app_en.arb` (Flutter ARB) - `*.po`, `*.xliff`, `*.yaml` files with language-code naming - `ai-l10n.config.json` if it already exists (read it to find the declared source files) For each candidate source file found, call `l10n_detect_project_structure` and collect: - Structure type, source language code, and detected target languages - Which target files already exist on disk If no source files can be found, ask me which file to use before continuing. If targetLanguages is omitted, and if target languages are not detected, ask me for them. Show a brief summary of what was found before continuing. PRE-TRANSLATION CHECKS — perform all of these BEFORE calling translate: 1. LINGUISTIC INSTRUCTIONS: If the user has not mentioned tone, style, or brand voice in this conversation, call l10n_list_instructions first. Check whether a saved instruction exists for each requested target language pair (source → target). If instructions exist for OTHER language pairs but NOT the requested targets, mention this gap explicitly. Ask the user in one sentence: "No instruction found for [language(s)] — would you like to set a tone/style rule before translating? (e.g. formal, casual, keep brand terms untranslated)" If yes, call l10n_create_instruction and pass the instruction text back via the 'instruction' parameter. If no or they want to skip, proceed without it. 2. GLOSSARY: If generateGlossary was not e…

NameTypeReqDescription
generateGlossarybooleanGenerate and save a glossary from this translation for consistent future translations. Costs extra characters (full source content debited upfront). Default false.
generatePluralFormsbooleanGenerate plural form strings with suffixes (e.g. for i18next). Do not enable for strict source-to-target mapping. Default false.
instructionstringLinguistic instruction for this translation e.g. 'Use formal tone, never translate Dashboard'. Overrides the active saved instruction for this request. Max 1000 characters.
languageCodeRegexstringRegex locating the language code in file names, overriding the built-in detection. Must contain a (?<language>...) named capture group, e.g. '^common\\.(?<language>[\\w-]+)\\.json$'. The text around…
replacebooleanReplace existing target files in-place. When false (default), uniquely-named copies are created.
sourceFilestringyesAbsolute or relative path to the source i18n file (JSON, JSONC, ARB, YAML, PO, XLIFF, MD, etc.)
targetLanguagesarrayBCP-47 language codes e.g. ['es','fr','de']. Auto-detected from project structure if omitted.
translateMetadatabooleanTranslate metadata entries along with UI strings (e.g. Flutter ARB @key descriptions). When false (default), metadata entries are preserved unchanged in target files.
translateOnlyNewStringsbooleanOnly translate new/changed strings, skipping strings that already exist in the target file. Saves character quota. Default false. Note: on first run, only added strings are translated because the has…
useShorteningbooleanAllow shorter translations where appropriate. Default false.
verbosebooleanEnable verbose SDK logging in the output. Default false.

No output schema declared.

No examples provided.

l10n_update_glossary ~95

Update the name or active status of an existing glossary. Setting isActive to true deactivates all other glossaries for the same language pair.

NameTypeReqDescription
glossaryIdintegeryesNumeric ID of the glossary to update
isActivebooleanEnable or disable this glossary. Setting true deactivates all other glossaries for the same language pair.
namestringNew display name

No output schema declared.

No examples provided.

l10n_update_instruction ~125

Update the text, name, or active status of an existing linguistic instruction. Use to edit a previously saved instruction without deleting and recreating it. Setting isActive to true deactivates all other instructions for the same language pair.

NameTypeReqDescription
instructionIdintegeryesNumeric ID of the instruction to update
isActivebooleanEnable or disable this instruction. Setting true deactivates all other instructions for the same language pair.
namestringNew display name
textstringNew instruction text. Max 1000 characters.

No output schema declared.

No examples provided.

Common questions

What is the L10n.dev - AI Localization Agent MCP server?

L10n.dev - AI Localization Agent is an MCP server listed in the public MCP registry as io.github.l10n-dev/ai-l10n-mcp. MCP Server that turns your AI agent into a localization expert with token-efficient i18n translation. This page covers its npm package (ai-l10n-mcp).

Is the L10n.dev - AI Localization Agent MCP server safe to use?

L10n.dev - AI Localization Agent scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the L10n.dev - AI Localization Agent MCP server expose?

L10n.dev - AI Localization Agent exposes 16 tools: l10n_translate_file, l10n_list_instructions, l10n_create_instruction, l10n_update_instruction, l10n_delete_instruction, and 11 more. Their descriptions and schemas cost roughly 3,126 tokens of context every time the server is loaded.

Is the L10n.dev - AI Localization Agent MCP server still maintained?

L10n.dev - AI Localization Agent is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the L10n.dev - AI Localization Agent MCP server under?

L10n.dev - AI Localization Agent declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.