@mcpx-digital/i18n-keys
README.md
# @mcpx-digital/i18n-keys
**MCP server for locale key comparison.**
Compare JSON/YAML locale files for missing or extra keys across languages, find empty translations, and list flattened keys. Supports nested objects via dot-path keys.
> **Local files only.** No translation APIs; no network calls.
## Install
```bash
npx -y @mcpx-digital/i18n-keys
```
## Cursor `mcp.json` example
```json
{
"mcpServers": {
"i18n-keys": {
"command": "npx",
"args": ["-y", "@mcpx-digital/i18n-keys"]
}
}
}
```
Local clone:
```json
{
"mcpServers": {
"i18n-keys": {
"command": "node",
"args": ["/absolute/path/to/i18n-keys-mcp/index.js"]
}
}
}
```
## Tools
| Tool | What it does |
|------|----------------|
| `compare_locales` | Missing/extra keys vs a base locale |
| `find_empty_translations` | Empty / null / whitespace values |
| `list_keys` | Flattened key list for one file |
## Example prompts
- “Compare `en.json`, `es.json`, and `fr.yaml` — what’s missing in Spanish?”
- “Find empty translations in `locales/*.json`”
- “List all keys in `en.json`”
## Development
```bash
git clone https://github.com/TheoryofShadows/i18n-keys-mcp.git
cd i18n-keys-mcp
npm install
npm test
```
## License
MIT
TDQS
A3.9/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a clearly distinct operation: enumerating keys, diffing locales against a base, and detecting empty values. There is minimal risk of confusing one for another.
Naming Consistency5/5
All three tools follow a strict verb_noun snake_case pattern (list_keys, compare_locales, find_empty_translations), which is predictable and readable.
Tool Count4/5
Three tools is a bit thin, but the server has a narrow read-only scope over local locale files, so each tool earns its place without redundancy.
Completeness4/5
Core inspection workflows (list, compare, find empties) are covered, but there is no way to look up a single key's value or search/sort keys, leaving minor gaps an agent must work around.
Maintenance
ActivityMaintained
ResponsivenessNo issues