I18n MCP Server
Translation file management and codebase analysis for internationalization workflows.
Data last scanned today · Reviewed today
Overview
I18n MCP Server provides a comprehensive interface for LLMs to handle internationalization tasks. It enables agents to search for translation keys, get autocomplete suggestions, and maintain hierarchical structure across multiple language files. Beyond basic management, the server includes codebase analysis tools. It can scan for hardcoded strings, extract them into translation files, and identify missing or unused keys to keep localization efforts consistent and clean.
Our verdict
With a security score of 16/100, this server is currently rated as high risk. The primary concern is that it lacks a read-only mode, meaning the server provides full write access to your filesystem by design. Furthermore, it lacks a formal license and has not been updated in nearly a year, making it unsuitable for sensitive production environments where legal compliance and active maintenance are required.
- Comprehensive tools for codebase analysis and string extraction
- Supports real-time translation file watching
- Small dependency footprint with only 4 direct dependencies
- No license detected creates legal ambiguity for use
- No read-only mode allows full write access to files
- Inactivity for over 300 days suggests limited maintenance
Setup
{
"mcpServers": {
"i18n-mcp": {
"args": [
"-y",
"i18n-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| search_translation | Search for translations by content or key patterns. | low |
| get_translation_suggestions | Get autocomplete suggestions for translation keys. | low |
| get_translation_context | Get hierarchical context for a specific translation key. | low |
| explore_translation_structure | Explore the hierarchical structure of translation files to understand key organization. | low |
| add_translations | Add new translations with key generation and conflict handling. | medium |
| add_contextual_translation | Add a translation with a context-aware key. | medium |
| update_translation | Update existing translations or perform batch updates. | medium |
| delete_translation | Safely delete single or multiple translation keys with dependency checking. | high |
| analyze_codebase | Analyze the codebase for hardcoded strings. | low |
| search_missing_translations | Find translation keys that are used in the code but not defined in translation files (and vice-versa). | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What are the core requirements to run the i18n MCP server?
You need to have Node.js installed, as the server is designed to run via npx. You must also specify the project root and the directory containing your translation files.
›Can I use the server to automatically generate TypeScript types for my keys?
Yes, you can use the --generate-types argument to specify a file path where the server will output generated TypeScript types for your translation keys.
›How can I configure the server to automatically sync changes back to my files?
You can enable auto-syncing by setting the --auto-sync argument to true or by using the I18N_MCP_AUTO_SYNC environment variable.
›Does the server support analyzing specific frontend frameworks?
Yes, you can specify frameworks like react, vue, svelte, or angular using the --frameworks argument to enable framework-specific codebase analysis.
›How do I exclude specific directories from being processed?
You can use the --exclude argument to provide a comma-separated list of patterns to ignore, such as node_modules or dist.
Badge
Maintain this server? Add the live badge to your README.