voize

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Voize

Voize

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.
Voize
是一个本地MCP服务器,提供名为
generate_tts_url
的工具。
它通过当前后端合成语音,将字节数据上传至当前存储后端,并返回一个公开URL。
目前已实现小米MiMo(TTS)+ Cloudflare R2(存储)的组合支持,同时预留了扩展接口以便未来接入其他后端。

Tech Stack

技术栈

  • Language: TypeScript
  • Runtime: Bun 1.0+
  • Key dependencies:
    @modelcontextprotocol/sdk
    ,
    @aws-sdk/client-s3
    ,
    zod
  • 语言:TypeScript
  • 运行时:Bun 1.0+
  • 核心依赖:
    @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
该服务器是带有单个工具处理器的标准输入输出(stdio)MCP服务器。
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.
bash
bun install
cp .env.example .env
填写所需环境变量并启用公共域防护机制。
bash
bun install
cp .env.example .env

Build

构建

bun run build
bun run build

Test

测试

No automated tests yet; validate by MCP smoke call with built-in and voice-clone inputs.
目前暂无自动化测试;可通过内置输入和语音克隆输入进行MCP冒烟调用验证。

Lint

代码检查

bun run lint
bun run lint

Typecheck

类型检查

bun run typecheck
bun run typecheck

Key Files

核心文件说明

FilePurpose
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
文件用途
src/index.ts
MCP启动程序、环境变量验证、标准输入输出传输
src/tools/generateTtsUrl.ts
输入验证、TTS调用、上传操作、MCP响应处理
src/lib/provider.ts
当前TTS后端客户端
src/lib/storage.ts
当前兼容S3的存储助手
docs/architecture.md
端到端流程及约束说明

Agent Guidelines

Agent开发规范

  • 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
    voiceSampleUrl
    directly, or download and pass
    voiceSamplePath
    .
  • 服务器代码中切勿向stdout写入内容(保障stdio JSON-RPC安全)。
  • 无论成功或失败,MCP文本内容均需返回结构化JSON。
  • 在启动阶段启用公共域防护机制。
  • 请勿直接引入Nexus/STDB调用;仅保留URL生成相关的边界逻辑。
  • 用于克隆流程的托管参考语音样本:
    https://audio.zenon.red/voice/samples/zoe-sample.mp3
  • 进行克隆调用时,可直接传入
    voiceSampleUrl
    ,或下载后传入
    voiceSamplePath