Wraps the ownvoice CLI as a single generic MCP tool for voice/identity checks.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Train a LoRA voice adapter for pocket-tts and keep the result: a file on your own disk, not an API subscription.

Requires Python 3.11 or newer. See Install below for the npx / agent-sandbox path.
npx / agent-native environments: OwnVoice is a Python/PyTorch CLI, so the npm package is a thin wrapper, not a Node reimplementation. It bootstraps into the real CLI via uv or pipx, whichever is already on PATH, useful for coding-agent sandboxes and CI runners that default to a Node toolchain. The npm package was renamed to ownvoice-cli (from the old plain ownvoice, now deprecated) to match its PyPI counterpart.
Both the npm wrapper and the PyPI package (ownvoice-cli) are live, so the command above works today.
Torch and CUDA: ownvoice check needs no GPU at all and runs on CPU, matching pocket-tts's own CPU-capable design. Training a real adapter is much faster on an NVIDIA GPU. If you have one, install the CUDA build of PyTorch first by following pytorch.org/get-started/locally, then install OwnVoice on top of it, so pip does not silently pull the CPU-only wheel instead. On Apple Silicon or a CPU-only machine, the default pip install of torch is fine: ownvoice check and ownvoice infer run normally, ownvoice train just takes longer per epoch.
ownvoice check, the free Day-0 validationBefore recording anything or renting a GPU, confirm that PEFT's LoRA injection actually works against pocket-tts's real model structure. This is entirely free: CPU only, no training, no GPU.
If it fails, OwnVoice prints the model's real module tree instead of a raw stack trace, so you can see exactly what did not match and report it precisely:
ownvoice trainRecord 5 to 10 minutes of clean audio of the voice you want to train (your own voice, with your own consent, see Consent and misuse), split into a few .wav clips in one directory, then point OwnVoice at it:
Only --voice-clips is required. Every other flag has a sensible default (see the full CLI Reference below).
A run that finishes but does not clear the similarity bar still exits 0. It is a labeled result with a concrete next step, not a crash:
Only a data-loading problem (no usable clips) or a caught PEFT-injection failure exits non-zero. A finished run always writes adapter.safetensors and metadata.json (training config, similarity score, a timestamp) to the output directory: two files you keep, with no server round-trip needed to use them again.
ownvoice inferEvery subcommand also supports --json for a structured, machine-parseable output mode, useful if a script or an agent is calling ownvoice programmatically instead of a person reading the terminal:

Reference below is taken directly from each subcommand's real --help output (ownvoice-cli 0.1.2 on PyPI).
| Flag | Description |
|---|---|
--version | Print the OwnVoice version and exit. |
--help | Show the help message and exit. |
ownvoice checkFree, CPU-only compatibility check: load pocket-tts and dry-run the LoRA injection. No GPU and no training required.
| Flag | Description |
|---|---|
--json | Print machine-readable JSON instead of human-readable text. |
--help | Show the help message and exit. |
ownvoice trainTrain a LoRA voice adapter from a directory of .wav voice clips. Only --voice-clips is required.
| Flag | Type | Default | Description |
|---|---|---|---|
--voice-clips | directory, required | β | Directory of .wav voice-clip recordings to train from. |
--out | path | ownvoice-adapter | Directory to write adapter.safetensors + metadata.json to. |
--epochs | int, >=1 | 10 | Number of training epochs. |
--lora-rank | int, >=1 | 8 | LoRA rank. |
--lora-alpha | int, >=1 | 16 | LoRA alpha. |
--lora-dropout | float, 0.0β1.0 | 0.05 | LoRA dropout. |
--learning-rate | float | 0.0001 | Optimizer learning rate. |
--eval-text | string | "This is my own voice, trained with OwnVoice." | Sentence synthesized after training to score against the reference voice. |
--json | flag | off | Print machine-readable JSON instead of human-readable text. |
--help | flag | β | Show the help message and exit. |
ownvoice inferGenerate speech in the trained voice from a saved adapter, and save it to a .wav file.
| Flag | Type | Default | Description |
|---|---|---|---|
--adapter | path, required | β | Path to a trained adapter.safetensors file. |
--text | string, required | β | Text to synthesize in the trained voice. |
--out | path | ownvoice-output.wav | Output .wav file path. |
--reference-audio | path | recorded reference | Override the reference clip OwnVoice recorded in metadata.json at train time. |
--json | flag | off | Print machine-readable JSON instead of human-readable text. |
--help | flag | β | Show the help message and exit. |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ownvoice)<a href="https://allmcps.com/mcp/ownvoice"><img src="https://allmcps.com/api/badge/ownvoice?style=directory" alt="Ownvoice on AllMCPs" /></a>