DEV Community

Prodip Sarker
Prodip Sarker

Posted on

I Built an MCP Server That Keeps Your i18n Translations in Sync (With AI)

Description: LinguaGuard is a Model Context Protocol server that detects missing keys, removes dead translations, and uses Claude AI to auto-suggest translations — all from your editor.
Ever shipped a feature and forgot to add the French translation? Or found 200 unused keys rotting in your locale files? Yeah. Same.

I built LinguaGuard — an MCP server that plugs into Claude Desktop (or any MCP-compatible editor) and gives your AI assistant superpowers over your i18n files.

What it does

7 tools, zero config (if you use env vars):

Tool What it does
find_missing_keys Which keys exist in English but not in fr, bn, ar...
find_unused_keys Scans your JS/TS/Vue/Svelte source — finds keys defined but never called
sync_key Adds a key to ALL language files at once (with [TODO] placeholders)
check_naming_convention Enforces snake_case / camelCase / kebab-case across all keys
i18n_health_report Full dashboard — completeness %, health score out of 100
suggest_translations Claude AI translates your missing keys automatically
ci_guard Pass/fail check for CI pipelines — blocks merges with missing keys

The AI translation part

suggest_translations uses the Claude API to fill in missing keys across languages. You set ANTHROPIC_API_KEY, run the tool, get back a reviewed list of suggestions. It does NOT auto-write — you review, then apply with sync_key.

// en.json
{ "auth.forgot_password": "Forgot your password?" }

// After suggest_translations:
// fr: "Mot de passe oublié ?"
// bn: "আপনার পাসওয়ার্ড ভুলে গেছেন?"
// ar: "هل نسيت كلمة المرور؟"
Enter fullscreen mode Exit fullscreen mode

Setup in 2 minutes

// claude_desktop_config.json
{
  "mcpServers": {
    "linguaguard": {
      "command": "npx",
      "args": ["-y", "linguaguard"],
      "env": {
        "LOCALES_PATH": "./src/locales",
        "LANGUAGES": "en,fr,bn,ar",
        "PRIMARY_LANG": "en",
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Then ask Claude: "Check my i18n health" or "Find all missing French translations".

Works with any framework

React, Vue, Svelte, Next.js — anything that uses flat or nested JSON locale files.

Try it

GitHub: linguaguard

Would love feedback — especially if you work with RTL languages (Arabic, Hebrew, Persian) or have nested key structures. PRs welcome.


Built with Node.js, TypeScript, MCP SDK, and Claude API.

Top comments (0)