About voize
Voize is a local MCP server for generating speech and returning a public URL to the uploaded audio. It currently uses Xiaomi MiMo for TTS and Cloudflare R2 for storage.
Key features
- 01Speech synthesis with Xiaomi MiMo
- 02Upload audio to Cloudflare R2
- 03Return a public audio URL
- 04Support built-in and cloned voices
Use cases
- 01Generate speech audio for an application
- 02Create audio using a voice sample
- 03Make generated audio available through a public URL
MCP support
Voize runs as a local stdio MCP server and exposes the `generate_tts_url` tool. The tool synthesizes speech, uploads the audio, and returns a public URL.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ zenon-red/ skills --skill voizeAfter installing, type/voizein Claude Code to confirm it loaded.
Bundled filesMETA.md
Details
From the project READMEVoize
Overview
Voize is a local MCP server that provides one tool, generate_tts_url.
It synthesizes speech using the current backend, uploads bytes to the current storage backend, and returns a public URL.
Current concrete support is Xiaomi MiMo (TTS) + Cloudflare R2 (storage), while keeping extension seams for future backends.
Tech Stack
- Language: TypeScript
- Runtime: Bun 1.0+
- Key dependencies:
@modelcontextprotocol/sdk,@aws-sdk/client-s3,zod
Architecture
The server is stdio MCP with one tool handler.
src/
├── index.ts
├── lib/
│ ├── provider.ts
│ └── storage.ts
├── tools/
│ └── generateTtsUrl.ts
├── types.ts
└── utils/
├── env.ts
├── log.ts
├── retry.ts
└── validate.ts
Development
Setup
Fill required env vars and enforce public-domain guardrails.
bun install
cp .env.example .env
Build
bun run build
Test
No automated tests yet; validate by MCP smoke call with built-in and voice-clone inputs.
Lint
bun run lint
Typecheck
bun run typecheck
Key Files
| File | Purpose |
|---|---|
src/index.ts | MCP bootstrap, env validation, stdio transport |
src/tools/generateTtsUrl.ts | Input validation, TTS call, upload, MCP response |
src/lib/provider.ts | Current TTS backend client |
src/lib/storage.ts | Current S3-compatible storage helper |
docs/architecture.md | End-to-end flow and constraints |
Agent Guidelines
- Never write to stdout in server code (stdio JSON-RPC safety).
- Return structured JSON in MCP text content for both success and failure.
- Keep public-domain enforcement at startup.
- Do not introduce direct Nexus/STDB calls; keep boundary at URL generation.
- Hosted reference voice sample for cloning workflows:
https://audio.zenon.red/voice/samples/zoe-sample.mp3. - For clone calls, pass
voiceSampleUrldirectly, or download and passvoiceSamplePath.