com.brainiall/tts
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
Open source Repository Open in the app JSON README (API)
About
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- com.brainiall
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.0.0
- Open pull requests
- 1
- Last push
- 2026-08-11T04:48:55Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:01:01
- Updated
- 2026-08-29 03:01:01
- Origin id
com.brainiall/tts
README
# Brainiall TTS MCP Server
Hosted text-to-speech for AI agents via the [Model Context Protocol](https://modelcontextprotocol.io).
**54 neural voices, 9 languages** — including native **Brazilian Portuguese** (`pf_dora`, `pm_alex`, `pm_santa`) — served from a hosted, pay-per-use API. No GPU, no model downloads, no ElevenLabs subscription: bring one API key and pay **$0.008 per 1,000 characters** ($10 free credits on signup).
## Why this server
Every other TTS MCP server either runs models locally (heavy, slow to set up) or wraps a third-party key you already pay a subscription for. This one is a hosted, metered API:
- **Zero setup** — remote server, nothing to install
- **Pay per use** — $0.008/1K characters, billed against your Brainiall balance
- **$10 free credits** — sign up at [app.brainiall.com](https://app.brainiall.com)
- **WAV out** — 16-bit PCM, 24 kHz mono, returned as playable MCP audio content or base64 JSON
## Quick start
Get an API key at [app.brainiall.com](https://app.brainiall.com?utm_source=github&utm_medium=oss&utm_campaign=tts_mcp) ($10 welcome credits, no card required).
### VS Code / GitHub Copilot
[](https://insiders.vscode.dev/redirect/mcp/install?name=brainiall-tts&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.brainiall.com%2Fmcp%2Ftts%2Fmcp%22%7D)
The button installs the remote server in discovery mode, so VS Code can list its tools without a secret. Synthesis still fails closed until you add your Brainiall API key. For a secure workspace configuration that prompts once and stores the key in VS Code's secret storage, copy [`.vscode/mcp.json`](.vscode/mcp.json) into your project or clone this repository, then start `brainiallTts` from **MCP: List Servers**.
```json
{
"inputs": [
{
"type": "promptString",
"id": "brainiall-api-key",
"description": "Brainiall API key",
"password": true
}
],
"servers": {
"brainiallTts": {
"type": "http",
"url": "https://api.brainiall.com/mcp/tts/mcp",
"headers": {
"Authorization": "Bearer ${input:brainiall-api-key}"
}
}
}
}
```
After the server starts, try:
> Use Brainiall TTS to list the Brazilian Portuguese voices, then read “Olá do VS Code” with `pf_dora`.
The install URL format and secret-input configuration follow the [official VS Code MCP guide](https://code.visualstudio.com/api/extension-guides/ai/mcp) and [configuration reference](https://code.visualstudio.com/docs/agents/reference/mcp-configuration).
### GitHub Copilot cloud agent
Use the [restricted remote-server configuration](examples/github-copilot-cloud/README.md) for Copilot cloud agent or Copilot code review. It allowlists the three Brainiall tools and resolves the Bearer token from the repository's `COPILOT_MCP_BRAINIALL_API_KEY` Agents secret; no API key is committed.
### Continue (VS Code / JetBrains)
Copy the ready-to-use [Continue MCP block](examples/continue/brainiall-tts.yaml)
to `.continue/mcpServers/brainiall-tts.yaml`, then put
`BRAINIALL_API_KEY=your-key` in `.continue/.env`. Keep that `.env` file out
of version control.
The block uses Continue's supported `streamable-http` transport and resolves
the key through `${{ secrets.BRAINIALL_API_KEY }}`; no credential is committed.
See the [Continue setup and smoke test](examples/continue/README.md).
### Dify builders
For a Dify speech workflow, use the open-source [BRAINIALL Speech provider](https://github.com/fasuizu-br/brainiall-dify-provider) and keep the API key in Dify's credential store. The [bounded Dify intent route](https://www.brainiall.com/transcreve/integracoes/dify-transcreve-ptbr-pipeline) explains the caller-owned boundary; it is not a Dify partnership or a guarantee of production behavior.
### Remote server (recommended — nothing to install)
**Codex CLI / IDE / ChatGPT desktop app**
Use the [project-scoped Codex configuration](examples/codex/README.md). It reads
`BRAINIALL_API_KEY` from the environment, allowlists the three Brainiall tools,
and prompts before every call.
**Claude Code**
Use the [environment-backed Claude Code configuration](examples/claude-code/README.md). It keeps the key out of `.mcp.json`, scopes the server to the current project, and documents the external-data and metered-usage boundary.
**Claude Desktop / any client with `.mcp.json`-style config**
```json
{
"mcpServers": {
"brainiall-tts": {
"type": "http",
"url": "https://api.brainiall.com/mcp/tts/mcp",
"headers": {
"Authorization": "Bearer YOUR_BRAINIALL_API_KEY"
}
}
}
}
```
**Cursor** (`~/.cursor/mcp.json`)
```json
{
"mcpServers": {
"brainiall-tts": {
"url": "https://api.brainiall.com/mcp/tts/mcp",
"headers": {
"Authorization": "Bearer YOUR_BRAINIALL_API_KEY"
}
}
}
}
```
**LM Studio**
Use the official one-click deeplink and the explicit local-model privacy boundary in the [LM Studio setup guide](examples/lm-studio/README.md).
**OpenCode v2**
Use the remote-server schema and environment-backed Bearer header in the [OpenCode v2 setup guide](examples/opencode/README.md).
**Msty Studio**
Use the [manual Msty Studio field guide](examples/msty/README.md) for a
Streamable HTTP connection. The reference file is not presented as an
official integration or import preset.
**Hugging Face Chat UI (self-hosted)**
Use the [administrator `MCP_SERVERS` example](examples/hugging-face-chat-ui/README.md)
and a tool-capable model. The guide documents the shared-key boundary for base
servers.
### Clients that require `/v1/audio/speech`
Use the zero-dependency [partial OpenAI-shaped TTS adapter](examples/openai-compatible-tts-adapter/README.md)
when a client can configure an OpenAI-style speech route but cannot call
Brainiall's native endpoint. The adapter returns WAV only, declares the sample
rate observed in the WAV header, never retries a metered request, and documents
the exact compatibility limits. It is a local reference adapter, not a claim
that the hosted Brainiall API is natively OpenAI-compatible.
### Run locally (stdio-free, still calls the hosted API)
The server itself is a thin wrapper — you can self-host it and it will proxy to `api.brainiall.com` with your key:
```bash
docker build -t brainiall-tts-mcp .
docker run -p 8080:8080 -e APIM_KEY=YOUR_BRAINIALL_API_KEY brainiall-tts-mcp
# MCP endpoint: http://localhost:8080/mcp
```
## Tools
| Tool | Description | Cost |
|------|-------------|------|
| `synthesize_speech` | Convert text (≤5000 chars) to WAV speech. Params: `text`, `language` (default `pt`), `voice`, `speed` (0.5–2.0), `output_format` (`audio` \| `base64_json`) | $0.008/1K chars |
| `list_voices` | Full voice catalog with language, gender, accent, quality grade. Optional `language` filter | free |
| `check_tts_service` | Backend health status | free |
### Voices
| Language | Voices |
|----------|--------|
| Portuguese (BR) | `pf_dora`, `pm_alex`, `pm_santa` |
| English (US) | `af_heart`, `af_bella`, `af_nova`, `am_adam`, `am_michael` + 14 more |
| English (GB) | `bf_alice`, `bf_emma`, `bm_daniel`, `bm_george` + 4 more |
| Spanish | `ef_dora`, `em_alex`, `em_santa` |
| French | `ff_siwis`, `fm_gilles` |
| Italian | `if_sara`, `im_nicola` |
| Hindi | `hf_alpha`, `hf_beta`, `hm_omega`, `hm_psi` |
| Japanese | `jf_alpha`, `jf_gongitsune`, `jm_kumo` + 2 more |
| Mandarin | `zf_xiaoxiao`, `zm_yunxi` + 6 more |
### Example
Ask your agent:
> "Read this paragraph out loud in Brazilian Portuguese with a female voice"
The agent calls `synthesize_speech(text=..., language="pt", voice="pf_dora")` and receives playable WAV audio.
For copy-ready prompts and smoke tests for narration, accessibility, language practice, and agent alerts, see [Agent workflow recipes](examples/agent-workflows.md).
For REST client testing and automation, import the [Postman collection](postman/Brainiall-TTS-API.postman_collection.json). It contains health, voice-list and two-character synthesis smoke tests and keeps the API key in a collection variable rather than the request URL.
For no-code automation, import the [n8n text-to-WAV workflow](examples/n8n-brainiall-tts-to-wav.json). It uses n8n's Header Auth credential instead of embedding a key in the workflow, sends editable text, voice and speed fields to the hosted API, and returns the WAV in the binary property `speech`. The template is statically validated; select your credential and run it in your own n8n instance to validate the live integration.
For code generation, API clients, and directory discovery, use the machine-readable [OpenAPI 3.1 specification](openapi/brainiall-tts.openapi.yaml). The specification documents the authenticated voice catalog and WAV synthesis endpoints without embedding an API key.
## Authentication & billing
Pass your Brainiall API key as a Bearer token (see configs above). Usage is metered per character against your account balance — the same key works across all Brainiall APIs (STT, OCR, NLP, image and more at [brainiall.com](https://brainiall.com)).
## Endpoints
- MCP (Streamable HTTP): `https://api.brainiall.com/mcp/tts/mcp`
- Health: `https://api.brainiall.com/mcp/tts/health`
- Underlying REST API: `POST https://api.brainiall.com/v1/tts/synthesize`
## License
MIT