Movabase MCP
Connect AI tools to Movabase over MCP to inspect, translate, and update project translations with project-scoped API keys.
Movabase MCP
Movabase exposes a remote MCP server for translation workflows at https://app.movabase.com/api/mcp.
It is built for AI clients that need to inspect a project, translate content, find missing values, and write translations back into Movabase without going through the REST API one endpoint at a time.
What it gives you
- Project-scoped access to translations through an API key
- Read tools for languages, files, keys, current values, and missing values
- Write tools for single updates, bulk imports, key deletion, and language creation
- AI translation helpers for single strings and batches of missing keys
- A standard MCP HTTP transport that works with remote MCP clients
How it works
The MCP server lives in the web app and is exposed through /api/mcp.
Each request:
- Sends
Authorization: Bearer <MOVABASE_API_KEY> - Verifies the key with Unkey
- Extracts the
projectIdstored in the key metadata - Scopes every MCP tool call to that project
- Executes the requested read or write operation against Movabase translation data
Movabase currently supports GET, POST, and DELETE requests on the MCP endpoint and uses the standard streamable HTTP server transport from the MCP SDK.
The same project API keys used by the public REST API are also used by the MCP server.
Authentication
Create a project API key first from the project settings UI or with the project key endpoints.
Use it as a bearer token:
Authorization: Bearer loko_YOUR_API_KEYImportant details:
- Keys are project-scoped
- Keys are shown only once when created
- If a key has no
projectIdmetadata, MCP access is rejected
Limits
The MCP route currently applies these server-side limits per API key:
60requests per minute1000requests per day- Standard request body validation from Movabase
Relevant input limits in translation workflows:
- Translation key:
256characters - Translation value:
8192characters - File name:
256characters - API key name:
128characters - Request body:
4 MiB
Endpoint and client configuration
Most MCP clients that support remote HTTP servers can point directly at Movabase:
{
"mcpServers": {
"movabase": {
"type": "http",
"url": "https://app.movabase.com/api/mcp",
"headers": {
"Authorization": "Bearer loko_YOUR_API_KEY"
}
}
}
}Client config shapes vary a little by host, but the important pieces are always the same:
- server URL:
https://app.movabase.com/api/mcp - transport: remote HTTP MCP
- auth header:
Authorization: Bearer <key>
Install in AI tools
The Movabase MCP is a remote HTTP MCP server. Any AI tool that supports remote MCP servers can connect to it with the same three values:
- name:
movabase - url:
https://app.movabase.com/api/mcp - header:
Authorization: Bearer loko_YOUR_API_KEY
The Trae-style SKILL.md in this repository is not directly installable in Cursor or Claude Code. External users need two separate things: the Movabase MCP connection, and a native instruction file for their AI tool.
Cursor
In Cursor, users should do two things:
- connect the Movabase MCP
- add the Movabase translation rule file to their own project
For the MCP connection, open the MCP servers/settings screen and add a new server using the remote HTTP option.
Use this config:
{
"mcpServers": {
"movabase": {
"type": "http",
"url": "https://app.movabase.com/api/mcp",
"headers": {
"Authorization": "Bearer loko_YOUR_API_KEY"
}
}
}
}After saving the server:
- reload Cursor if it does not connect automatically
- confirm the
movabaseserver appears in the MCP tools list - ask Cursor to call
list_languagesorlist_filesas a smoke test
For the instruction file, download:
Then place it in the user's own repository at:
.cursor/rules/movabase-mcp-translations.mdcCursor rules use .mdc files under .cursor/rules/, so this is the correct native format for external users using Cursor. Cursor Rules docs
Claude Code
In Claude Code, users should also do two things:
- connect the Movabase MCP
- add the Movabase translation instructions to their own Claude project memory
Claude Code supports remote HTTP MCP servers directly, so users can install the server from the terminal:
claude mcp add --transport http movabase https://app.movabase.com/api/mcp \
--header "Authorization: Bearer loko_YOUR_API_KEY"Or they can configure the same server with JSON.
Use the same server entry:
{
"mcpServers": {
"movabase": {
"type": "http",
"url": "https://app.movabase.com/api/mcp",
"headers": {
"Authorization": "Bearer loko_YOUR_API_KEY"
}
}
}
}Then restart Claude Code or reload MCP servers and verify it can see the movabase tools. Claude Code documents both remote HTTP MCP setup and project memory via CLAUDE.md. Claude Code MCP docs Claude Code memory docs
Good first checks:
list_languageslist_filessearch_translations
For the instruction file, download:
Then use one of these install options in the user's own project:
Option A: append the file contents into CLAUDE.md at the repo root
Option B: save it as .claude/rules/movabase-mcp-translations.mdOther AI tools
For any other MCP-compatible tool:
- create a new remote MCP server
- set the URL to
https://app.movabase.com/api/mcp - send
Authorization: Bearer loko_YOUR_API_KEY - save and reconnect the tool
If the tool only supports local stdio MCP servers and does not support remote HTTP MCP yet, it will need a small bridge or proxy in front of Movabase.
Recommended first prompt after install
Once the MCP is connected, a good verification prompt is:
Use the movabase MCP to list the languages and files in my project, then explain the translation structure before making any changes.Tool catalog
| Tool | What it does | Best use |
|---|---|---|
translate_text | Translates one string with Movabase AI | Fast single-string translation |
list_languages | Lists configured languages | Build context before writing |
list_files | Lists translation files and their languages | Understand project structure |
list_keys | Lists keys for one file and language | Reuse existing keys |
get_translations | Returns current values by language, with optional file/key filters | Inspect current copy |
get_missing_translations | Finds keys missing in a target language | Translation gap analysis |
upsert_translation | Creates or updates one key in one language | Targeted edits |
bulk_upsert_translations | Creates or updates many key/value pairs in one file and language | Imports and batch updates |
delete_translation_key | Soft-deletes a key, optionally for one language | Safe key removal |
add_language | Adds a language to the project | Language rollout |
search_translations | Searches keys and values, including empty ones | Find reuse candidates and empty values |
translate_missing | AI-translates missing keys into a target language | Fill a locale quickly |
Recommended implementation flow
If you are building an AI workflow on top of the Movabase MCP, this order works well:
list_languageslist_filessearch_translationsorlist_keysbefore creating anything newget_translationswhen you need existing copy for terminology or placeholder checksupsert_translationfor one-off changes orbulk_upsert_translationsfor batchestranslate_missingwhen the goal is to fill empty values in a target language
That sequence keeps the AI grounded in the real project state before it writes.
When to use MCP instead of the REST API
Use the Movabase MCP when the caller is an AI agent that needs to reason about the project while it works.
MCP is the better fit when the agent needs to:
- Inspect available languages and files before acting
- Search existing keys before inventing new ones
- Find missing translations and fill them in one workflow
- Translate and save content inside the same tool session
The REST API is still a good fit for deterministic scripts, exports, and CI jobs that already know the exact endpoints they need.
Translation workflow guidance
For translation-writing agents, the safest pattern is:
- Inspect the project first
- Reuse existing keys and terminology where possible
- Preserve placeholders, interpolation tokens, HTML tags, markdown, and product names
- Prefer writing through the Movabase MCP instead of generating free-form translations outside project context
Why the MCP should be preferred for new translations:
- It knows the real project languages and files
- It can look up existing wording before translating
- It can detect missing values instead of guessing
- It writes directly into Movabase, which avoids copy-paste drift
Important behavior notes
delete_translation_keyis a soft delete, not a hard deletetranslate_missingprocesses up to20keys by default unlesslimitis providedsearch_translationscan be used with an empty query andonlyEmpty: trueto find empty entries- The remote MCP is translation-focused; it does not expose the richer project-context helper used by the in-app assistant, so external agents should call
list_languagesandlist_filesearly
Language-based projects
Some Movabase projects effectively behave as one file per language. External MCP clients should avoid inventing new file names in those projects.
A good rule is:
- call
list_filesfirst - reuse existing file names for the target language
- if the structure looks like one locale file per language, keep following that pattern
External AI instruction pack
This repository contains three related assets:
.agents/skills/movabase-mcp-translations/SKILL.md
apps/docs/public/downloads/cursor/movabase-mcp-translations.mdc
apps/docs/public/downloads/claude/movabase-mcp-translations.mdUse them like this:
SKILL.mdis the Trae-style source version used in this repository- the Cursor
.mdcfile is what external Cursor users should install - the Claude markdown file is what external Claude Code users should add to
CLAUDE.mdor.claude/rules/
The MCP and the instruction files are separate:
- the MCP gives the AI real Movabase tools
- the instruction file tells the AI when and how to use those tools well
Example use cases
Fill all missing German translations
list_languageslist_filestranslate_missingwithtargetLanguage: "de"andtargetLanguageName: "German"
Add a new locale and import translations
add_languagebulk_upsert_translations
Translate one new key safely
search_translationsfor similar wordingtranslate_textupsert_translation
Developer takeaway
The Movabase MCP is the translation-aware interface for AI clients. If the caller needs project context, existing terminology, missing-value discovery, or direct write-back into Movabase, use the MCP first and treat the REST API as the lower-level alternative.