MCP Tools
get_missing_translations
Find translation keys that exist in the reference locale but are missing in other locales. Scans a specific layer or all layers. summary.totalMissingKeys counts every missing key in the project; limit caps only how many of them are listed under missing, over the nested map flattened to one entry per locale, layer and key.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
layer | string | no | Layer name to scope this to (e.g., "root", "app-admin"). If omitted, every layer is included. Call discover to list the layers. |
referenceLocale | string | no | Locale code used as the source of truth (e.g., "en", "en-US"). Defaults to the project default locale. |
targetLocales | string[] | no | Locale codes to check for missing keys (e.g., "de", "fr", "es"). Defaults to all locales except the reference. |
limit | integer | no | Maximum number of missing keys to return. Default: 100 for a tool call, unlimited at a terminal. When the cap applies the result carries truncated: true and nextOffset — call again with offset set to that value for the next page, or narrow the request instead. |
offset | integer | no | Number of missing keys to skip before returning any. Default: 0. Pass the nextOffset of a truncated result to continue where it stopped. |
outputFile | string | no | Absolute path to write the full JSON output to. Only a compact summary is returned to the caller, which is what you want for a result too large to read in one piece. Example: ".i18n-reports/missing-translations.json" |
projectDir | string | no | Absolute path to the project root. Defaults to I18N_PROJECT_DIR, then server cwd. Example: "/home/user/my-app". |
Result
| Field | Type | Description |
|---|---|---|
truncated | boolean | True when limit cut the result short. The totals still count everything. |
nextOffset | integer | The offset to pass to continue where this result stopped. Present only when truncated. |
message | string | The step to take next — how to continue a capped read. Present when there is one. |
missing | Record<string, Record<string, string[]>> | Locale → layer → keys the reference locale defines and this locale does not. A locale with nothing missing is absent. |
summary | object | What was compared, and how much of it is missing. This is what comes back when the full result is diverted to a file. |
reportFile | string | Absolute path the full JSON result was written to. Read the file for the findings; the summary below is all that came back. |
Behavior Hints
A host reads these to decide whether a call needs your confirmation first.
| Hint | Value |
|---|---|
readOnlyHint | true |
openWorldHint | false |
Paired CLI Command
The same operation runs from a terminal as the-i18n-cli missing, whose page documents its flags.