Skip to main content
Glama
waxberry-dev

live-translate-mcp

by waxberry-dev
README.md
<p align="center">
  <img src="assets/logo.png?v=2" alt="Waxberry" width="80" />
</p>

# live-translate-mcp

[![live-translate-mcp MCP server](https://glama.ai/mcp/servers/waxberry-dev/live-translate-mcp/badges/score.svg)](https://glama.ai/mcp/servers/waxberry-dev/live-translate-mcp)

**Real-time English ↔ Mandarin speech translation for Claude — powered by Whisper, Claude AI, and Piper TTS.**

Give Claude the ability to listen, translate, and speak. `live-translate-mcp` is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that adds speech translation as a native tool inside Claude Desktop and Claude Code. Hand it an audio file, and it transcribes, translates, synthesises, and plays the result — entirely on your machine, with Claude handling the translation.

<p align="center">
  <img src="assets/demo.svg" alt="live-translate-mcp demo" width="860" />
</p>

---

## What it does

| Step | Technology | Where it runs |
|------|-----------|---------------|
| Speech → Text | [OpenAI Whisper](https://github.com/openai/whisper) (via `@huggingface/transformers`) | Local |
| Text → Translation | [Claude](https://anthropic.com/claude) (Opus 4.8) | Anthropic API |
| Translation → Speech | [Piper TTS](https://github.com/rhasspy/piper) (ONNX) | Local |

Audio never leaves your machine except for the translated text sent to the Claude API. ASR and TTS run fully on-device.

---

## Tools

### `translate_file`

Translate a WAV audio file. Pass an absolute path — the server transcribes it, translates the text via Claude, synthesises speech, saves `<name>_translated.wav` next to the original, and plays it automatically.

```
Translate /Users/alice/meeting_clip.wav
```

**Returns:** original text, translation, and the path to the saved output file.

### `translate_speech`

Translate raw audio passed as a base64-encoded WAV string. Returns the transcription, translation, and synthesised audio as base64 WAV — useful for programmatic workflows.

### `health_check`

Verify that all dependencies (Whisper model cache, Piper voice files, `espeak-ng`) are present and ready before making a translation request.

---

## Installation

No installation required. Run it directly with `npx`:

```bash
npx -y live-translate-mcp
```

Or install globally:

```bash
npm install -g live-translate-mcp
```

**Prerequisites:**
- Node.js 18+
- An Anthropic API key
- `espeak-ng` — for TTS phonemisation (`brew install espeak-ng` on macOS, `apt install espeak-ng` on Linux)

The Whisper model (~150 MB) and Piper voice models (~200 MB) download automatically on first use and are cached in `~/.live-translate/`.

---

## Claude Desktop setup

Add the following to your Claude Desktop configuration file:

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "live-translate": {
      "command": "npx",
      "args": ["-y", "live-translate-mcp"],
      "env": {
        "ANTHROPIC_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Restart Claude Desktop. You'll see `live-translate` appear in the tools panel.

---

## Claude Code setup

```bash
claude mcp add live-translate -- npx -y live-translate-mcp
```

Then set your API key in the environment before starting Claude Code, or pass it via the MCP env config.

---

## Usage examples

Once configured, just ask Claude naturally:

> "Translate this audio file for me: /Users/alice/recording.wav"

> "Use translate_file on /tmp/interview.wav"

> "Check if live-translate is ready"

Claude will call the appropriate tool automatically.

---

## Supported languages

| Language | ASR | Translation | TTS |
|----------|-----|-------------|-----|
| English | ✓ | ✓ | ✓ |
| Mandarin Chinese (普通话) | ✓ | ✓ | ✓ |

Language is detected automatically from the audio — no need to specify it.

---

## How it compares

| | live-translate-mcp | Cloud speech APIs |
|--|--|--|
| ASR | Local (Whisper) | Remote |
| Translation | Claude API | Remote |
| TTS | Local (Piper) | Remote |
| Audio privacy | Audio stays on device | Audio uploaded |
| Cost | Claude API only | Per-minute pricing |
| Offline | Partially (ASR + TTS) | No |

---

## Environment variables

| Variable | Default | Description |
|----------|---------|-------------|
| `ANTHROPIC_API_KEY` | — | **Required.** Your Anthropic API key. |
| `PIPER_VOICE_DIR` | `~/.live-translate/voices` | Path to Piper `.onnx` voice files. |

---

## Related

- **[live-translate](https://github.com/waxberry-dev/live-translate)** — the standalone CLI for push-to-talk translation with no API key required, using local models end-to-end.
- [Model Context Protocol](https://modelcontextprotocol.io) — the open standard this server implements.
- [Piper TTS](https://github.com/rhasspy/piper) — the local TTS engine powering speech synthesis.

---

## Licence

MIT

TDQS

A3.8/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: health_check checks dependencies, translate_file handles file-based translation with local saving, and translate_speech provides real-time speech translation with base64 output. No overlap.

Naming Consistency5/5

All tool names use consistent snake_case naming with a verb_noun pattern (health_check, translate_file, translate_speech), making it easy to infer functionality.

Tool Count4/5

With 3 tools, the server is small but well-scoped for its purpose of live translation between English and Mandarin. The count is reasonable, though slightly on the lower end, covering health check, file translation, and speech translation.

Completeness3/5

The server covers the core workflow of speech translation and file conversion but lacks text translation, language configuration, or support for additional language pairs, which are notable gaps for a translation tool.

Maintenance

ActivityInactive
ResponsivenessUnresponsive