Rosetta Mcp

io.github.ewalidPublished by GitHub account ewalidv0.1.1Updated Oct 24, 2026

AI-powered Excel translation preserving formatting, formulas, and data integrity.

Overview

AI-generated overview

Local MCP server that translates the text in Excel files with Claude AI while keeping formulas, formatting, charts and layouts intact.

What you can do
Translate Excel workbooks into a target language, optionally naming the source language, output file and specific sheets to process, and supplying domain context for accuracy. Preserve formulas, formatting, merged cells, charts, images, dropdowns and rich text while writing translations back. Leave the original file untouched and save the result to a new file. Estimate cell counts and translation cost, and preview which cells will be translated.
When to use it
Useful when you need to localize spreadsheets such as price lists, forms or surveys into another language without breaking their structure, and you are willing to pay Anthropic for the translation calls.
Requirements
Runs as a local process on the user's machine (desktop only), started via uv or Python 3.11+; the manifest lists an npm package. Requires an Anthropic API key supplied through the ANTHROPIC_API_KEY environment variable, and network access to Anthropic's API.
Before you install
The ANTHROPIC_API_KEY secret is required and must be kept private. Translation calls are billed by Anthropic, typically a few cents per file. Cell text is sent to Anthropic's Claude API for translation, so avoid confidential spreadsheets unless that is acceptable. The original file is not modified; output goes to a new file.

Installation

In SourceWeft

  1. Open Rosetta Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Rosetta

[PyPI version] [Python 3.11+] [License: MIT]

AI-powered Excel translation CLI. Translates Excel files while preserving formatting, formulas, and data integrity.

What it does

Rosetta translates all text in your Excel files using Claude AI, without breaking:

  • Formulas and calculations
  • Formatting (fonts, colors, borders)
  • Merged cells and layouts
  • Charts and images
  • Dropdown menus
  • Rich text (bold, italic within cells)

Prerequisites

You need a Claude API key from Anthropic.

  1. Go to console.anthropic.com
  2. Create an account (or sign in)
  3. Go to API Keys and create a new key
  4. Copy the key (starts with sk-ant-...)

Note: API usage is billed by Anthropic. See anthropic.com/pricing for current rates. Translating a typical Excel file costs a few cents.

Installation

Install from PyPI:

bash
pip install rosetta-xl

Then set your API key:

bash
# Linux/macOSexport ANTHROPIC_API_KEY=sk-ant-your-key-here
# Windows (Command Prompt)set ANTHROPIC_API_KEY=sk-ant-your-key-here
# Windows (PowerShell)$env:ANTHROPIC_API_KEY="sk-ant-your-key-here"

Or create a .env file in your working directory:

ANTHROPIC_API_KEY=sk-ant-your-key-here

Usage

bash
# Translate to Frenchrosetta input.xlsx -t french
# Translate to Spanish with custom output namerosetta input.xlsx -t spanish -o translated.xlsx
# Specify source language (auto-detected by default)rosetta input.xlsx -s english -t german
# Translate only specific sheetsrosetta input.xlsx -t french --sheets "Sheet1" --sheets "Data"
# Add context for better translations (e.g., domain-specific terms)rosetta input.xlsx -t french -c "Medical terminology document"

Options

OptionShortDescription
--target-lang-tTarget language (required)
--source-lang-sSource language (auto-detect if omitted)
--output-oOutput file path (default: input_translated.xlsx)
--sheetsSheets to translate (can repeat, default: all)
--context-cDomain context for better accuracy
--batch-size-bCells per API call (default: 50)

Examples

Translate a price list to multiple languages:

bash
rosetta prices.xlsx -t french -o prices_fr.xlsxrosetta prices.xlsx -t german -o prices_de.xlsxrosetta prices.xlsx -t spanish -o prices_es.xlsx

Translate a medical form with context:

bash
rosetta patient_form.xlsx -t french -c "Medical intake form with clinical terminology"

Translate only the "Questions" sheet:

bash
rosetta survey.xlsx -t japanese --sheets "Questions"

Troubleshooting

"ANTHROPIC_API_KEY not set"

  • Make sure you've exported the key: export ANTHROPIC_API_KEY=sk-ant-...
  • Or create a .env file with the key

"Invalid API key"

"Rate limit exceeded"

  • You've hit Anthropic's rate limits. Wait a minute and try again
  • Or reduce batch size: rosetta input.xlsx -t french -b 20

How it works

  1. Extracts all text cells from your Excel file
  2. Sends text to Claude AI for translation (in batches)
  3. Writes translations back, preserving all formatting
  4. Saves the translated file

Your original file is never modified.

Web App & API

Rosetta also includes a web application and REST API for browser-based translations.

Running the API server

bash
# Install with uv (recommended)uv sync
# Start the serveruv run uvicorn rosetta.api:app --reload
# Or with pippip install -e .uvicorn rosetta.api:app --reload

The API runs at http://localhost:8000 by default.

Running the frontend

bash
cd frontendnpm installnpm run dev

The frontend runs at http://localhost:5173 and connects to the API.

API Endpoints

EndpointMethodDescription
/translatePOSTTranslate an Excel file (returns file)
/translate-streamPOSTTranslate with real-time progress via SSE
/estimatePOSTGet cell count and cost estimate
/sheetsPOSTList sheet names in a file
/countPOSTCount translatable cells
/previewPOSTPreview cells that will be translated
/healthGETHealth check

Real-time Progress

The /translate-stream endpoint uses Server-Sent Events (SSE) to stream translation progress in real-time. The frontend automatically falls back to the standard /translate endpoint on networks that don't support SSE (e.g., corporate proxies).

MCP Integration

Rosetta includes MCP (Model Context Protocol) servers for both Claude Desktop and Claude Web.

For Claude Desktop (Local)

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "rosetta": {      "command": "uv",      "args": ["run", "--directory", "/path/to/rosetta", "python", "-m", "rosetta.api.mcp"],      "env": {        "ANTHROPIC_API_KEY": "your-key-here"      }    }  }}

Usage: Use local file paths for best results.

Translate ~/Downloads/report.xlsx to French

For Claude Web (Browser)

Note: Claude.ai does not yet support custom MCP servers in the browser (as of January 2026).

Current recommendation: Use the web app for browser-based translations.

See MCP_USAGE.md for detailed instructions.

Requirements

  • Python 3.11+
  • Anthropic API key

License

MIT

Source: README.md at commit 909eacc

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts