BeMyWords as an MCP server (Claude Code, Cursor, Lovable)
Connect any MCP client to your BeMyWords workspace and an AI assistant can manage translations by conversation: check what's missing, register new source strings the moment it writes them, respect your glossary, fetch translation files into a project, and propose edits — which always land as needs review, never self-approved.
Shape of the integration:
- Create a Personal Access Token — for one project, or one for the whole workspace.
- Add BeMyWords to your MCP client by URL, with the token as a Bearer token.
- Ask the assistant to work: "What's missing in Norwegian?" — "Register these strings and fetch the nb file into src/locales."
Everything an assistant writes is attributed to you (the token's owner) with the assistant named as the instrument, labeled Assistant edit in the editor, and lands as needs-review for a human to approve.
Prerequisites
- A BeMyWords account and at least one project.
- A Personal Access Token, created under your avatar → Personal access tokens. Choose a single project, or "Whole workspace — every project" for a workspace token (starts with
pat_ws_) that lets one connection manage all your projects.
1. The server URL
Two scopes:
# One project
https://app.bemywords.org/api/<project-id>/mcp
# The whole workspace (requires a workspace token)
https://app.bemywords.org/api/mcp
The project id is in the project's URL in the dashboard, or ask the assistant to call list_projects on a workspace connection.
2. Connect your client
Claude Code
claude mcp add bemywords https://app.bemywords.org/api/mcp \
--transport http \
--header "Authorization: Bearer pat_ws_…"
Cursor — Settings → MCP → Add server: URL as above, auth header Authorization: Bearer <token>.
Lovable — Connectors → add a custom connector: name BeMyWords, the URL above, authentication Bearer token. Section 5 has the two steps. Lovable documents custom connectors as development-time only: the assistant uses BeMyWords while it builds, and what it leaves behind is the Embed script tag in the app's HTML or translation files inside the project. Its connector screen is its own and changes; if the flow differs from this, tell us and we'll correct the page.
3. What the assistant can do
Read — list_projects, get_project_status (per-language missing/drifted counts), get_embed_snippet (the project's script tag — the simplest way to ship), search_translations, get_translation (one key across languages, with comments), get_translations (a whole language as a json/yml/po/strings file, for translations inside a build), list_terminology (glossary, do-not-translate, substitution rules), get_checkup_report.
Write — enable_language (turn a target language on), register_source_strings (new keys only — an existing value is never changed), add_key, update_translation (lands as needs-review), set_translation_status, add_comment, flag_translation, add_glossary_term, and a bounded ai_translate_keys (approved translations are never overwritten).
Every tool's arguments, and the REST endpoints beside them, are on the API and MCP reference, generated from the server.
Order matters for a new language: enable_language first, then register the strings. Anything registered after a language is on is translated into it automatically; strings that were already there need ai_translate_keys or the Translate action in the app.
4. Read-only connections
Send the header X-BeMyWords-Read-Only: 1 and the connection exposes only the read tools — useful for a dashboard assistant that should never touch copy.
5. Lovable: two steps
Tested against a real Lovable project on 2026-10-03: the app registered its strings, BeMyWords translated them, and the app rendered in German. The Lovable guide walks through it with what ends up in the app.
- In Lovable, open Connectors and add a custom MCP connector. Name
BeMyWords, URLhttps://app.bemywords.org/api/<project-id>/mcp, authentication Bearer token, and a personal access token for that project as the token. The project's Connect page shows the same fields with your URL filled in. Lovable's assistant cannot add a connector from the chat; this step is yours. - In Lovable's chat, type: Make this app multilingual with BeMyWords. It asks which languages you want, turns them on, registers every string it has written, and wires the translations in.
That sentence is all the chat needs. The server hands the assistant the rest at connection time (MCP instructions): turn languages on first, register strings under the namespace app, respect list_terminology, and ship. The assistant chooses how: the Embed script in the app's HTML (pages translate in the visitor's browser and pick up new strings without another step), or translation files fetched into the project with a language picker. In the tested run it chose files. To steer it, say so: "…and use the Embed script" or "…as translation files in src/locales".
Other builders take the same connector. Until one has been run end to end, this page says nothing about it.
Notes
- Rate and word accounting are the same as the editor: AI translation through MCP accrues to the same usage meters.
- A workspace token never reaches outside its workspace; a project token never reaches outside its project.
- Revoke a token under Personal access tokens and the connection stops immediately.
What does BeMyWords cost?
Free to start: 5,000 words stored, 1 site, no card. Paid tiers start at 199 kr a month, or 1 990 kr for a year. They count the words you store, the original plus each translation of it, and never people, pageviews or a cap on how many languages you run. Bring your own AI key and it is 199 kr a month flat with no word limit.
Which tier that is depends on how many words your site holds. Paste your address and we read it and tell you.
Every tier, and what it holds Size your siteInstall it on the project you just read about.
The free tier is enough to translate a landing page and judge the output yourself. No card.
Start free