mcpField
K
KAERIS i18n

KAERIS i18n

Local
kaeris.devOther0Updated 1d ago

About KAERIS i18n

KAERIS i18n is an MCP server for developers localizing application strings and checking translation completeness. It supports 46 languages, includes placeholder and format checks, and uses a lock file to make incremental translations reproducible.

Key features

  1. 01Scan repository i18n setup
  2. 02Check locale completeness and format issues
  3. 03List missing or broken keys
  4. 04Translate strings and multiple file formats
  5. 05Track incremental translations with kaeris.lock
  6. 06Flag placeholder loss and UI overflow

Use cases

  1. 01Find missing translation keys in a repository
  2. 02Translate newly added strings into target locales
  3. 03Bootstrap a new project locale
  4. 04Check localization quality before CI merges

MCP support

The server provides MCP clients with repository scanning, translation status, missing-key lookup, and translation tools. The first three local checks do not call the API; translation actions use the KAERIS API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"kaeris-io-kaeris": {
"command": "uvx",
"args": [
"kaeris-mcp"
],
"env": {
"KAERIS_API_KEY": "<KAERIS_API_KEY>",
"KAERIS_OPENROUTER_KEY": "<KAERIS_OPENROUTER_KEY>"
}
}
}
}
Run commanduvx kaeris-mcp
Environment variables to set
KAERIS_API_KEYSecretKAERIS API key (optional; the free demo works without one)
KAERIS_OPENROUTER_KEYSecretOpenRouter key for the Lifetime (BYOK) plan (optional)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypikaeris-mcp0.2.16

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README
KAERIS

KAERIS i18n — MCP Server

AI-native localization over the Model Context Protocol. Give Claude Desktop, Cursor, Claude Code (or any MCP client) the ability to translate your app's strings into 46 languages — placeholder-safe, format-aware, incremental, with built-in Translation QA.

Tools

ToolWhat it doesCalls the API?
kaeris_scan_repoDiscover a repo's i18n setup: locale files found, base language, target languages, framework guess (i18next/next-intl/vue-i18n/Flutter/Android/iOS/gettext/generic)No
kaeris_statusCompleteness/health per target locale — missing keys, extra keys, placeholder mismatches, plus the quality detectors that gate a merge in CI: number drift, lost inline tags, broken entities/escapes, ICU/CLDR plural gaps (same verdict as kaeris check --json)No
kaeris_list_missing_keysThe exact missing/broken keys (with source text) for one target locale, so an agent knows exactly what to fixNo
kaeris_list_languagesList all supported target languagesYes, free (no quota)
kaeris_translateTranslate inline strings → per-language results, with QA (placeholder-loss & UI-overflow flags; verify=True back-translates to check meaning)Yes
kaeris_translate_fileTranslate a file on disk (JSON/YAML/.strings/.xcstrings/.po/ARB/XML/CSV/XLIFF/.properties/.resx/.ftl/Markdown), optional incremental — reproducible via kaeris.lockYes
kaeris_add_languageBootstrap a brand-new target locale by translating the whole source file into itYes

The first three tools are local-only (no network call, no cost), and kaeris_list_languages is one free API call that counts toward no limit — an agent can use all four freely to audit and understand a repo's i18n before deciding what (if anything) to translate.

Reproducible by design

kaeris_translate_file with only_new=True keeps a kaeris.lock next to your source file — the same lock the CLI writes, so an agent and a human sharing a repo stay in sync. It records a hash of every source string plus the settings that produced it: tone, glossary, app context, and the model. That means:

  • Edit one string — only that string is re-translated; everything else stays byte-for-byte.
  • Change tone, glossary or context — the whole locale is re-translated, never a mix of old and new.
  • Change plan — every tier runs the same model (Gemini 2.5 Flash-Lite), so upgrading does not force a re-translation. The lock records the model regardless: the day we change it, the locale is rebuilt in full instead of quietly ending up the work of two models.

Commit kaeris.lock alongside your source file so the agent, your teammates and CI all agree on what is already done.

Install

pip install kaeris-mcp
Or run it with Docker
docker build -t kaeris-mcp .
docker run -i --rm -v "$PWD:/work" -w /work kaeris-mcp

The server speaks JSON-RPC over stdin/stdout, so there is no port to expose — -i is what keeps the conversation open. Mount your project at /work and the repo-aware tools (scan_repo, status, list_missing_keys) read it directly; pass -e KAERIS_API_KEY=… to use your KAERIS key.

Configure your client

Claude Desktop — add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "kaeris-i18n": {
      "command": "kaeris-mcp",
      "env": {
        "KAERIS_API_KEY": "kaerisp_optional"
      }
    }
  }
}

Cursor — Settings → MCP → Add, or .cursor/mcp.json:

{ "mcpServers": { "kaeris-i18n": { "command": "kaeris-mcp" } } }

Claude Code — one command:

claude mcp add kaeris-i18n kaeris-mcp

Restart the client; the KAERIS tools appear automatically.

Auth & tiers (all optional)

Env varPurpose
KAERIS_API_KEYYour KAERIS key, e.g. the free API key from kaeris.dev/docs/key (50k chars/file, no account) — without one, the free 10k-char demo is used
KAERIS_OPENROUTER_KEYOpenRouter key for Lifetime/BYOK — no monthly volume cap
KAERIS_API_URLOverride the API base URL
KAERIS_NO_UPDATE_CHECKSet to 1 to turn off the once-a-day "new version available" line (stderr only; already off in CI)

No key is required to try it — the free demo works out of the box.

Example prompts

  • "Translate the strings in locales/en.json into German, Ukrainian and Japanese."
  • "Add French and Spanish translations for these buttons: Save, Cancel, Delete."
  • "Only translate the new keys I added to en.json — don't redo the whole file."
  • "Check this repo's i18n and tell me what's missing or broken." (scans, then reports status — no API call)
  • "We don't have Ukrainian yet — add it." (bootstraps a new locale via translation)

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.