Check locale files for broken placeholders, plurals and missing keys. Validators need no API key.
MCPpedia last refreshed this data
io.github.Shipi18n/shipi18n is an MCP server that check locale files for broken placeholders, plurals and missing keys. Validators need no API key. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 87/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-shipi18n-shipi18n": {
"args": [
"-y",
"@shipi18n/mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Check locale files for broken placeholders, plurals and missing keys. Validators need no API key.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @shipi18n/mcp against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in writing
Scrape, crawl, and map websites to Markdown or JSON via local CLI.
Documents to Markdown for agents: PDF layout, tables and OCR, Office, HTML, scans. docling in Rust.
一键同步文章到多个内容平台,支持今日头条、WordPress、知乎、简书、掘金、CSDN、typecho各大平台,一次发布,多平台同步发布。解放个人生产力
Create and edit PDFs: text, Markdown, tables, metadata and pages, with Japanese font embedding.
MCP Security Weekly
Get CVE alerts and security updates for io.github.Shipi18n/shipi18n and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Catch broken translations before you ship them. Shipi18n is an open-source check for locale files: it fails CI when a translation — from a human, a TMS or an AI agent — drops or breaks a placeholder, plural or key, and shows the exact fix.
{name}, {{count}}, %{name}, %s, %1$s, %@), plurals whose
separator was lost or that miss a form the language needs (Polish few/many, Arabic two — in ICU, i18next keys,
Rails, Android and .xcstrings), invalid ICU MessageFormat, missing and orphaned keys, a key written twice in one
JSON object, empty and untranslated strings..xcstrings, Android strings.xml, gettext .po, XLIFF.--semantic review and translate use your own LLM key.npx @shipi18n/cli check ./locales -s en
Exit 0 clean, 1 findings (each with a one-line fix), 2 usage error. Output as text, JSON, SARIF (GitHub PR
annotations) or JUnit.

A real run, not a mockup — docs/check-demo.tape reproduces it.
| I want to… | Use |
|---|---|
| check locale files locally or in any CI | npx @shipi18n/cli check ./locales -s en |
| annotate GitHub pull requests | Shipi18n/shipi18n-github-action@v3 (setup) |
| run it without Node | Docker ghcr.io/shipi18n/cli, or the pre-commit hook |
| run it without npm | the single file shipi18n.mjs from GitHub releases, with a SHA-256 and a build-provenance attestation |
| use it from a Python, Ruby, Go or Java project | the same CLI via Docker, pre-commit or the single file. There is no Python or Ruby package to import |
| have my AI coding agent check its own translations | npx @shipi18n/cli init --agents, or the MCP server @shipi18n/mcp |
| check meaning, not only structure | check --semantic with your own Anthropic or OpenAI key |
| translate (optional) | shipi18n translate with your own key |
--semantic it checks structure, not whether a translation reads well.Found in the wild. The same command on a real project — Hoppscotch's Afrikaans locale as it was when we ran it (structural rules only; the missing-key noise switched off so the placeholder findings stand out):
$ npx @shipi18n/cli check packages/hoppscotch-common/loc
... [View full README on GitHub](https://github.com/shipi18n/shipi18n#readme)