Skip to main content
Glama
README.md
# Voice MCP

[![M8ven Verified](https://m8ven.ai/badge/mcp/forgemeshlabs-voice-mcp-q8gh7d?variant=verified)](https://m8ven.ai/mcp/forgemeshlabs-voice-mcp-q8gh7d)

[![npm version](https://img.shields.io/npm/v/@forgemeshlabs/voice-mcp)](https://www.npmjs.com/package/@forgemeshlabs/voice-mcp)
[![npm downloads](https://img.shields.io/npm/dm/@forgemeshlabs/voice-mcp)](https://www.npmjs.com/package/@forgemeshlabs/voice-mcp)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
[![payments](https://img.shields.io/badge/payments-x402%20USDC-0052FF)](https://x402.org)
[![network](https://img.shields.io/badge/network-Base-0052FF)](https://base.org)
[![mcpservers.org](https://mcpservers.org/badge.svg)](https://mcpservers.org/servers/forgemeshlabs/voice-mcp)

Give Your Agent A Voice: x402 pay-per-call speech with 20 voices, 10 personas, 31 languages, granular speed and quality controls, OpenAI-shaped requests, and batch audio.

This MCP wraps `https://voice.forgemesh.io`, an x402 Voice API with standard voices, persona voices, OpenAI-shaped speech requests, 31 languages, speed controls, quality controls, and batch generation. Payments are made per call in USDC on Base.

## Voice Coverage

- 10 standard voices: `M1`-`M5`, `F1`-`F5`
- 10 persona voices: `Storyteller`, `Narrator`, `Announcer`, `Assistant`, `Urgent`, `Sage`, `Spark`, `Anchor`, `Velvet`, `Echo`
- 31 languages: `en`, `ko`, `ja`, `ar`, `bg`, `cs`, `da`, `de`, `el`, `es`, `et`, `fi`, `fr`, `hi`, `hr`, `hu`, `id`, `it`, `lt`, `lv`, `nl`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `sv`, `tr`, `uk`, `vi`
- Granular control: speed `0.7x`-`2.0x`, quality steps `1`-`100`, persona selection, OpenAI-shaped audio format requests, and batch generation for up to 20 texts
- Voice samples are generated on demand by the paid speech tools and returned as `audio_base64` WAV output

## Voice Samples

- [Assistant sample](https://voice.forgemesh.io/samples/_expressive/combo_assistant.wav)
- [Urgent sample](https://voice.forgemesh.io/samples/_expressive/combo_urgent.wav)
- [Narrator sample](https://voice.forgemesh.io/samples/_expressive/combo_narrator.wav)
- [Storyteller sample](https://voice.forgemesh.io/samples/_expressive/combo_storyteller.wav)

## Tools

| Tool | Price | Purpose |
|------|-------|---------|
| `list_voice_catalog` | Free | Voices, personas, languages, pricing, buckets, and controls |
| `generate_standard_voice` | $0.001 / $0.003 | Low-cost speech with 10 standard voices |
| `generate_controlled_voice` | $0.003 / $0.006 | Speech with granular speed and quality controls |
| `generate_persona_voice` | $0.005 / $0.01 | Storyteller, Velvet, Narrator, Announcer, Assistant, Urgent, and more |
| `generate_openai_compatible_voice` | $0.001 / $0.003 | OpenAI-shaped `/v1/audio/speech` request |
| `generate_batch_voices` | $0.002 / $0.005 | Up to 20 texts per call |

Short prices apply to 1-500 characters. Long prices apply to 501-2000 characters.

The MCP validates voice names, language codes, audio formats, speed/quality ranges,
batch item count, and character limits locally before making a paid x402 call.

## Install

```bash
npm install -g @forgemeshlabs/voice-mcp
```

## Docker

Build:

```bash
docker build -t voice-mcp .
```

Run over stdio:

```bash
docker run --rm -i \
  -e WALLET_PRIVATE_KEY=0x... \
  voice-mcp
```

CMD arguments:

```json
["node", "index.js"]
```

## MCP Config

```json
{
  "mcpServers": {
    "voice": {
      "command": "voice-mcp",
      "env": {
        "WALLET_PRIVATE_KEY": "0x..."
      }
    }
  }
}
```

## Requirements and safety

- Use a dedicated, low-balance wallet; the server signs payments with `WALLET_PRIVATE_KEY`.
- The server refuses to sign for any payee other than the ForgeMesh Voice wallet, any network other than Base mainnet, any asset other than USDC, or any amount over the built-in per-call cap ($0.01).
- Optional env `X402_MAX_PRICE_USD` (per call) and `X402_SESSION_BUDGET_USD` (cumulative per process, default $10) can only LOWER the built-in caps.
- The backend URL is fixed to `https://voice.forgemesh.io`; all requests are same-origin, time-limited (60s), size-capped (2 MB) and never follow redirects.

## Notes

- Paid tools require a Base wallet private key with USDC.
- The server returns `audio_base64` for audio tools so MCP clients can store, play, or forward the WAV bytes.
- No API keys or subscriptions are required for the voice service itself.

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each generate tool targets a distinct use case (batch, controlled, OpenAI-compatible, persona, standard), and list_voice_catalog is clearly separate as a discovery tool. No overlapping purposes.

Naming Consistency5/5

All tools follow a clear verb_noun pattern: generate_* for voice generation and list_voice_catalog for listing. The verbs are appropriate and the pattern is consistent.

Tool Count5/5

Six tools cover the core functionality of a TTS server well. The count is not excessive and each tool has a clear role, making the set scoped and manageable.

Completeness5/5

The set covers all major text-to-speech workflows: standard, controlled, persona, batch, API-compatible generation, plus catalog discovery. No obvious gaps for the intended domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues