Skip to documentation
DocumentationAI assistants and MCP

MCP integration

Connect Codex, Claude Code, Cursor, VS Code, OpenCode, and Pi to ReRune with an API key. Learn how MCP works, explore the 58 tools, and edit or publish translations from your assistant.

On this page

How MCP works

The Model Context Protocol connects an AI assistant to ReRune through a remote HTTP endpoint. Your client discovers the available tools, then sends a structured request when the assistant needs to read or update localisation data. ReRune checks your API key and current permissions on every request and applies the same business rules as the dashboard and CLI.

Use a client that supports Streamable HTTP and custom authentication headers. The client handles protocol initialization and version compatibility. Connect directly to the hosted endpoint; no ReRune MCP package or local server process is required. Authentication currently uses API keys only.

SettingValue
Endpointhttps://rerune.io/mcp
TransportStreamable HTTP
Authentication headerX-API-Key: YOUR_RERUNE_API_KEY

Create an API key

Sign in to ReRune, open API keys, and create a named key for your MCP client. Copy the generated value and replace YOUR_RERUNE_API_KEY in the example for your client. Use a management API key rather than an OTA Publish ID.

The key acts as your ReRune account. It can access projects through your organisation memberships and perform only the operations your assigned permissions allow. Revoking a key stops subsequent MCP requests; changes to your permissions also apply to subsequent operations.

Codex

Add this to your personal ~/.codex/config.toml, replacing the API-key placeholder. The configuration is shared by the Codex CLI and IDE extension.

~/.codex/config.toml

[mcp_servers.rerune]
url = "https://rerune.io/mcp"
tool_timeout_sec = 300

[mcp_servers.rerune.http_headers]
"X-API-Key" = "YOUR_RERUNE_API_KEY"

Restart Codex, then run codex mcp list or use /mcp in the CLI to inspect the connection and available tools.

Claude Code

Replace the API-key placeholder and run this command in your terminal. User scope makes ReRune available across your projects.

Claude Code setup command

claude mcp add --transport http --scope user rerune \
  https://rerune.io/mcp \
  --header "X-API-Key: YOUR_RERUNE_API_KEY"

Run claude mcp get rerune, then use /mcp inside Claude Code to check the connection and available tools.

Cursor

Add this server to your personal ~/.cursor/mcp.json, merging it with any existing mcpServers entries and replacing the API-key placeholder.

~/.cursor/mcp.json

{
  "mcpServers": {
    "rerune": {
      "url": "https://rerune.io/mcp",
      "headers": {
        "X-API-Key": "YOUR_RERUNE_API_KEY"
      }
    }
  }
}

Save the file and restart Cursor. Open Agent chat and ask it to use ReRune to list your projects.

VS Code

Run MCP: Open User Configuration from the VS Code Command Palette. Add this server to the opened mcp.json, merging existing servers and replacing the API-key placeholder.

VS Code user mcp.json

{
  "servers": {
    "rerune": {
      "type": "http",
      "url": "https://rerune.io/mcp",
      "headers": {
        "X-API-Key": "YOUR_RERUNE_API_KEY"
      }
    }
  }
}

Run MCP: List Servers and start ReRune. In Copilot chat, select an agent, enable the ReRune tools, and ask it to list your projects.

OpenCode

Add this server to your personal ~/.config/opencode/opencode.json, merging existing mcp entries and replacing the API-key placeholder. Keep oauth set to false for API-key authentication.

~/.config/opencode/opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rerune": {
      "type": "remote",
      "url": "https://rerune.io/mcp",
      "enabled": true,
      "oauth": false,
      "headers": {
        "X-API-Key": "YOUR_RERUNE_API_KEY"
      }
    }
  }
}

Restart OpenCode and run opencode mcp list to check the connection. Ask the agent to use ReRune to list your projects.

Pi

Use a recent Pi release with built-in MCP support. Add this server to your personal ~/.pi/agent/mcp.json, merging existing mcpServers entries and replacing the API-key placeholder.

~/.pi/agent/mcp.json

{
  "mcpServers": {
    "rerune": {
      "url": "https://rerune.io/mcp",
      "timeout": 300,
      "headers": {
        "X-API-Key": "YOUR_RERUNE_API_KEY"
      }
    }
  }
}

Run pi mcp list to check the connection. In Pi, run /reload after changing the file, use /mcp to inspect ReRune, and ask it to list your projects.

Use ReRune from your assistant

Once connected, describe the task in chat. Start by listing your accessible projects so the assistant can use the returned project and key IDs. Each client controls its own tool approval prompts; ReRune still checks permissions independently.

  1. Ask: Use ReRune to list my accessible projects.
  2. Ask: Show the draft translations in my website project.
  3. Ask: Update the German draft for welcome.title to Willkommen.
  4. After reviewing the changes, ask: Publish those updated keys with the tag release-1.2.

For integrations that call tools directly, these examples show the tools/call parameters. Replace the sample IDs with IDs returned by ReRune. Your MCP client or SDK handles the surrounding protocol request.

Save a draft translation value

{
  "name": "save_translation_value",
  "arguments": {
    "key_id": "0123456789abcdef01234567",
    "translation": {
      "lang": "de",
      "value": "Willkommen"
    }
  }
}

Publish selected translation keys

{
  "name": "publish_translation_keys",
  "arguments": {
    "project_id": "0123456789abcdef01234567",
    "publication": {
      "key_ids": [
        "abcdef0123456789abcdef01"
      ],
      "tag": "release-1.2"
    }
  }
}

Tool results include structuredContent with status, data, and an optional message. The status matches the existing operation's HTTP status. A failed operation sets isError to true and can include partial publication results. Check the tool result as well as the HTTP response: a successful protocol request can carry an operation error. Use tools/list for the current input and output schemas; unknown input fields are rejected.

Available tools

ReRune exposes 58 tools. The groups below list every tool name. Client discovery provides each tool's description, required inputs, output schema, and read or write annotations.

GroupTool namesWhat you can do
Discovery and metadatalist_organisations, list_projects, list_organisation_details, get_organisation, list_organisation_projects, get_project, list_translation_formats, get_project_statistics, list_permissionsFind accessible organisations and projects, inspect their details, and read format codes, statistics, and enabled permission IDs.
Translation draftslist_draft_translation_keys, get_draft_translation_key, create_translation_key, save_translation_value, save_translation_placeholder, save_placeholder_description, delete_translation_key, set_translation_key_enabled, delete_translation_placeholder, save_translation_key_metadata, discard_draft_changes, restore_translation_key_draftRead drafts, create keys, edit language values and variations, manage placeholders and metadata, toggle keys, discard draft changes, or restore a deleted draft from history.
Published content and historyget_published_translations, publish_translation_keys, publish_all_translation_keys, list_publication_tags, list_project_publications, unpublish_translation_key, get_published_translation_key, list_translation_key_publications, rollback_translation_keyRead published translations, publish selected or all eligible keys, inspect tags and publication history, roll back, or unpublish.
Files and conversionparse_translation_file, generate_translation_file, import_translation_file, export_translation_fileParse a file into detached keys, generate a file from supplied keys, import project drafts, or export draft or published content.
Dictionarylist_dictionary_entries, get_dictionary_entry, create_dictionary_entry, update_dictionary_entry, delete_dictionary_entryRead and manage project terminology. Changing an entry's value also replaces matching content in drafts.
Project managementcreate_project, add_project_language, create_ota_published_id, update_project, delete_project, list_variation_options, create_variation_option, update_variation_option, delete_variation_option, revoke_ota_published_idCreate and configure projects, add languages, manage the project variation-option catalog, and create or revoke OTA delivery identifiers.
Organisation managementcreate_organisation, update_organisation, delete_organisation, invite_organisation_member, accept_organisation_invitation, resend_organisation_invitation, revoke_organisation_invitation, remove_organisation_member, replace_organisation_member_permissionsCreate, update, or delete eligible organisations; manage invitations, members, and their permission assignments. Inviting and resending send invitation emails.

Access and permissions

Organisation membership is the project access boundary. Owners do not bypass membership or assigned permissions. Read access and write access remain separate. The main permission requirements are listed below; existing billing capacity and conflict rules still apply.

PermissionRequired for
edit_keysDraft translation edits, imports, dictionaries, discarding changes, and restoring drafts.
publishingPublishing, rollback, and unpublish.
project_settingsProject configuration, language changes, OTA identifiers, and reading or changing the variation-option catalog.
organisation_settingsOrganisation management, invitations, and other members' permission assignments. Existing exceptions allow invitation acceptance and leaving your own organisation.

Project-language configuration applies immediately and forces full SDK synchronization. Creating translation keys does not accept variations; add them to individual language values afterward. Owner removal and owner permission changes remain prohibited.

File inputs and outputs

File tools accept exactly one of content for text or base64 for binary data, with an optional filename. They do not read paths on the server or fetch a URL. The assistant must supply the actual file content.

Generated and exported files return filename, contentType, size, and base64. The client can decode base64 and save the file locally. Import saves drafts; parse and generate do not save anything.

Export reads drafts by default. Set published to true for current published snapshots. The optional variation selects that frozen variation value with same-language Main content fallback.

Troubleshooting and limits

  • HTTP 401: check that X-API-Key contains a valid, unrevoked ReRune API key. Bearer tokens and keys in query parameters do not authenticate MCP requests.
  • Tool status 403: the account lacks organisation membership or the operation's required permission. HTTP 403 from a browser client can instead indicate an untrusted origin.
  • HTTP 405: opening /mcp as a web page sends GET. Use an MCP client with Streamable HTTP; standalone GET streams and session deletion are unavailable.
  • HTTP or tool status 429: the request or tool-execution rate limit was reached. Wait before retrying. Each tool in a legacy batch counts separately.
  • Input validation error: use tools/list to inspect the tool schema. Check required fields, 24-character MongoDB IDs, publication tags, and whether file content or base64 was provided exclusively.
  • Client timeout during publish-all: allow up to 300 seconds for the tool in your client. The server uses its configured publish-all deadline and can return partial results. Ordinary calls use the server's normal request deadline.

The MCP request envelope allows 16 MiB; converted operation bodies, including multipart overhead, allow 10 MiB. HTTP requests and tool executions each have a separate limit of 120 per IP per minute.

For a browser-based inspector, the server must trust that browser's exact origin. Desktop clients do not require a browser-origin setting. A client that supports only OAuth without a custom X-API-Key header cannot connect to this API-key-only release.