AI-powered localization — translate, manage translation memory, and access style guides.
mcp-name: io.github.Nativ-Technologies/nativ
AI-powered localization for any MCP-compatible tool — Claude Code, Cursor, Windsurf, and more.
Nativ is a localization platform that uses AI to translate content while respecting your brand voice, translation memory, glossaries, and style guides. This MCP server brings Nativ's full localization engine into your AI coding workflow.
Sign up at dashboard.usenativ.com, go to Settings → API Keys, and create a key. It looks like nativ_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Add to your MCP configuration:
~/.claude/claude_desktop_config.json){
"mcpServers": {
"nativ": {
"command": "npx",
"args": ["-y", "nativ-mcp"],
"env": {
"NATIV_API_KEY": "nativ_your_api_key_here"
}
}
}
}
.cursor/mcp.json in your project or ~/.cursor/mcp.json globally){
"mcpServers": {
"nativ": {
"command": "npx",
"args": ["-y", "nativ-mcp"],
"env": {
"NATIV_API_KEY": "nativ_your_api_key_here"
}
}
}
}
{
"mcpServers": {
"nativ": {
"command": "npx",
"args": ["-y", "nativ-mcp"],
"env": {
"NATIV_API_KEY": "nativ_your_api_key_here"
}
}
}
}
Note:
npxauto-downloads the package on first run — no manual install needed. Ifuvisn't already on your machine, it will be installed automatically on first launch.Alternative: use
uvxdirectlyIf you already have
uvinstalled and prefer to skip the npm wrapper:{ "mcpServers": { "nativ": { "command": "uvx", "args": ["nativ-mcp"], "env": { "NATIV_API_KEY": "nativ_your_api_key_here" } } } }macOS tip: If you get
spawn uvx ENOENTin Cursor or Claude Desktop, GUI apps don't inherit your shell PATH. Use the full path (e.g."command": "/Users/you/.local/bin/uvx") or wrap in a login shell:"command": "/bin/sh", "args": ["-lc", "uvx nativ-mcp"].
Ask your AI assistant things like:
| Tool | Description |
|---|---|
translate | Translate text using the full localization engine (TM, style guides, brand voice, glossary) |
translate_batch | Translate multiple texts to a target language in one call |
search_translation_memory | Fuzzy-search the translation memory for existing translations |
add_translation_memory_entry | Add an approved translation to TM for future reuse |
get_languages | List all configured languages with formality and style settings |
get_translation_memory_stats | Get TM statistics — total entries, sources, and breakdown |
get_style_guides | List all style guides with their content and status |
get_brand_voice | Get the brand voice prompt that shapes all translations |
extract_image_text | Extract on-image text segments (OCR) in reading order |
localize_image | Replace on-image text with translations in place, keeping layout and graphics intact |
check_image_cultural_fit | Flag cultural-sensitivity issues in an image across target markets |
| URI | Description |
|---|---|
nativ://languages | Configured languages (JSON) |
nativ://style-guides | All style guides (JSON) |
nativ://brand-prompt | Brand voice prompt (JSON) |
nativ://tm/stats | Translation memory statistics (JSON) |
| Prompt | Description |
|---|---|
localize-content | Guided workflow to localize content into target languages |
review-translation | Review a translation against TM, style guides, and brand voice |
batch-localize-strings | Batch-localize i18n strings with structured output |
You: Translate "The future of luxury, delivered" to French and Japanese
AI: [calls translate tool for each language]
Translation (French): "L'avenir du luxe, livré chez vous"
TM Match: 0% — new translation, no prior TM entries
Rationale: "Livré chez vous" adds a personal touch absent from the literal
"livré", aligning with the brand's premium yet approachable voice.
Translation (Japanese): "ラグジュアリーの未来を、あなたの元へ"
TM Match: 45% partial — similar pattern found in TM from brand_voice source
You: Do we have translations for "Add to cart" in our TM?
AI: [calls search_translation_memory]
TM Search Results for "Add to cart" (3 matches):
- 95% [strong] "Add to cart" → "Ajouter au panier" (source: approved)
- 95% [strong] "Add to cart" → "In den Warenkorb" (source: brand_voice)
- 72% [partial] "Add items to cart" → "Ajouter des articles" (source: phrase_tm)
You: Localize these to French:
- "Sign up"
- "Log in"
- "Forgot password?"
- "Continue with Google"
AI: [calls translate_batch]
Batch translation to French (4 items):
1. "Sign up" → "S'inscrire" (TM 100%)
2. "Log in" → "Se connecter" (TM 100%)
3. "Forgot password?" → "Mot de passe oublié ?" (TM 92%)
4. "Continue with Google" → "Continuer avec Google" (TM 85%)
| Environment Variable | Required | Description |
|---|---|---|
NATIV_API_KEY | Yes | Your Nativ API key (nativ_xxx...) |
NATIV_API_URL | No | API base URL (defaults to https://api.usenativ.com) |
This MCP server acts as a bridge between your AI coding assistant and the Nativ API:
┌─────────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude / Cursor / │────▶│ Nativ MCP │────▶│ Nativ API │
│ Windsurf / etc. │◀────│ Server │◀────│ (Translation, │
│ │ │ (stdio) │ │ TM, Styles) │
└─────────────────────┘ └──────────────┘ └─────────────────┘
The MCP server runs locally via stdio. It authenticates with your API key and calls the Nativ REST API on your behalf. Your AI assistant sees Nativ's tools, resources, and prompts as native capabilities.
# Clone the repo
git clone https://github.com/nativ-ai/nativ-mcp.git
cd nativ-mcp
# Set up environment
uv venv
source .venv/bin/activate
uv pip install -e .
# Run the server (for testing)
NATIV_API_KEY=nativ_xxx nativ-mcp
# Run with MCP Inspector
NATIV_API_KEY=nativ_xxx npx @modelcontextprotocol/inspector uv run nativ-mcp
MIT — see LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx nativ-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ashish-nativ-nativ": {
"command": "uvx",
"args": [
"nativ-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencenativ-mcppypiio.github.ashish-nativ/nativ works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.