Labsco
MCP SERVER

CopyTuner Client

by SonicGarden

Search, create and update Rails translation keys held in CopyTuner, without leaving the codebase you are editing.

Document Conversion, PDF & Translation
Summary
The distinction between "missing" and "registered but empty" is the one that saves you.

search_key returns registered-but-untranslated keys as empty strings on purpose, because the natural mistake is to see no translation and create the key again — which the create tool then refuses. Publishing stays on CopyTuner's side: these tools write drafts, and a translation already published cannot be overwritten through them.

What it is

A Ruby gem that runs as an MCP server over CopyTuner, a translation-management service for Rails internationalisation. It exposes key search, translation search, key creation and updates, and the locales a project uses.

What you get
  • search_key — find translation keys, tuned for the keys used in Rails translation calls; it also returns keys that are registered but still untranslated, so you know to update rather than create
  • search_translations — find keys by their translated text, across keys that already have translations
  • create_i18n_key — register a new key with translations for several locales at once, refusing keys that already exist and returning validation errors immediately
  • update_i18n_key — update the draft translations of an existing key across locales, for translations that are not yet published
  • get_locales — the locales the project actually uses
  • get_edit_url — a link to the editing screen for a registered key
  • A resource template for reading an individual translation directly
Requirements

A Rails application with the CopyTuner client already configured — the project identifier, API key and locale list come from that existing setup. Ruby, with the gem added to your development group; your editor starts the server through the project's bundle.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary