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
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
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
claude mcp add l10n-dev-ai-l10n-mcp -- npx -y ai-l10n-mcp
{
"mcpServers": {
"l10n-dev-ai-l10n-mcp": {
"command": "npx",
"args": [
"-y",
"ai-l10n-mcp"
]
}
}
} {
"servers": {
"l10n-dev-ai-l10n-mcp": {
"command": "npx",
"args": [
"-y",
"ai-l10n-mcp"
]
}
}
} codex mcp add l10n-dev-ai-l10n-mcp -- npx -y ai-l10n-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"l10n-dev-ai-l10n-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"ai-l10n-mcp"
],
"enabled": true
}
}
} openclaw mcp add l10n-dev-ai-l10n-mcp --command npx --arg -y --arg ai-l10n-mcp
mcp_servers:
l10n-dev-ai-l10n-mcp:
command: "npx"
args: ["-y", "ai-l10n-mcp"] {
"McpServers": {
"l10n-dev-ai-l10n-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"ai-l10n-mcp"
]
}
}
} assistant mcp add l10n-dev-ai-l10n-mcp -t stdio -c npx -a -y ai-l10n-mcp
{
"mcpServers": {
"l10n-dev-ai-l10n-mcp": {
"command": "npx",
"args": [
"-y",
"ai-l10n-mcp"
]
}
}
} 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
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 →
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 →
l10n_add_glossary_entry 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).
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Disambiguation note e.g. 'financial institution' to clarify the intended meaning |
| glossaryId | integer | yes | Numeric ID of the glossary to add to |
| sourceTerm | string | yes | Term in the source language |
| targetTerm | string | yes | Preferred translation of the term |
No output schema declared.
No examples provided.
l10n_create_glossary 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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Display name for this glossary e.g. 'My App German Glossary' |
| sourceLanguageCode | string | yes | Source language BCP-47 code e.g. 'en' |
| targetLanguageCode | string | yes | Target language BCP-47 code e.g. 'de' |
No output schema declared.
No examples provided.
l10n_create_instruction Create Linguistic 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"
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Optional display name for this instruction |
| sourceLanguageCode | string | yes | Source language BCP-47 code e.g. 'en' |
| targetLanguageCode | string | yes | Target language BCP-47 code e.g. 'de' |
| text | string | yes | The 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 Delete Glossary ~44
Permanently delete a glossary and all its term entries. This cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| glossaryId | integer | yes | Numeric ID of the glossary to delete |
No output schema declared.
No examples provided.
l10n_delete_glossary_entry Delete Glossary Entry ~51
Remove a single term mapping from a glossary.
| Name | Type | Req | Description |
|---|---|---|---|
| entryId | integer | yes | Numeric ID of the entry to remove |
| glossaryId | integer | yes | Numeric ID of the glossary |
No output schema declared.
No examples provided.
l10n_delete_instruction Delete Linguistic Instruction ~52
Permanently delete a linguistic instruction. This cannot be undone. If the deleted instruction was active, no other instruction is automatically activated.
| Name | Type | Req | Description |
|---|---|---|---|
| instructionId | integer | yes | Numeric ID of the instruction to delete |
No output schema declared.
No examples provided.
l10n_detect_project_structure Detect i18n 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.
| Name | Type | Req | Description |
|---|---|---|---|
| languageCodeRegex | string | – | Regex 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… |
| sourceFile | string | yes | Absolute 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 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 Get Account 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| glossaryId | integer | yes | Numeric ID of the glossary to retrieve |
No output schema declared.
No examples provided.
l10n_list_glossaries 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 List Linguistic 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | The l10n.dev API key to store. Get yours at https://l10n.dev/ws/keys |
No output schema declared.
No examples provided.
l10n_translate_file Translate i18n File, configs, md documents, and other text-based formats ~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…
| Name | Type | Req | Description |
|---|---|---|---|
| generateGlossary | boolean | – | Generate and save a glossary from this translation for consistent future translations. Costs extra characters (full source content debited upfront). Default false. |
| generatePluralForms | boolean | – | Generate plural form strings with suffixes (e.g. for i18next). Do not enable for strict source-to-target mapping. Default false. |
| instruction | string | – | Linguistic instruction for this translation e.g. 'Use formal tone, never translate Dashboard'. Overrides the active saved instruction for this request. Max 1000 characters. |
| languageCodeRegex | string | – | Regex 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… |
| replace | boolean | – | Replace existing target files in-place. When false (default), uniquely-named copies are created. |
| sourceFile | string | yes | Absolute or relative path to the source i18n file (JSON, JSONC, ARB, YAML, PO, XLIFF, MD, etc.) |
| targetLanguages | array | – | BCP-47 language codes e.g. ['es','fr','de']. Auto-detected from project structure if omitted. |
| translateMetadata | boolean | – | Translate metadata entries along with UI strings (e.g. Flutter ARB @key descriptions). When false (default), metadata entries are preserved unchanged in target files. |
| translateOnlyNewStrings | boolean | – | Only 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… |
| useShortening | boolean | – | Allow shorter translations where appropriate. Default false. |
| verbose | boolean | – | Enable verbose SDK logging in the output. Default false. |
No output schema declared.
No examples provided.
l10n_update_glossary 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.
| Name | Type | Req | Description |
|---|---|---|---|
| glossaryId | integer | yes | Numeric ID of the glossary to update |
| isActive | boolean | – | Enable or disable this glossary. Setting true deactivates all other glossaries for the same language pair. |
| name | string | – | New display name |
No output schema declared.
No examples provided.
l10n_update_instruction Update Linguistic 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instructionId | integer | yes | Numeric ID of the instruction to update |
| isActive | boolean | – | Enable or disable this instruction. Setting true deactivates all other instructions for the same language pair. |
| name | string | – | New display name |
| text | string | – | New instruction text. Max 1000 characters. |
No output schema declared.
No examples provided.
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.