protogrid

Search / ae.easyvoice/tts

EasyVoice text to speech

R1· needs a key

Hosted text-to-speech MCP server: 66 voices in 9 languages, long-form narration, podcasts.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds TTS_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality88good
Trust83of 100
Uptime, 30 days100%
Latency p50445 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "tts": {
      "type": "http",
      "url": "https://easyvoice.ae/api/mcp",
      "headers": {
        "Authorization": "Bearer ${TTS_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http tts https://easyvoice.ae/api/mcp --header "Authorization: Bearer ${TTS_TOKEN}"
[mcp_servers.tts]
url = "https://easyvoice.ae/api/mcp"
bearer_token_env_var = "TTS_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tts": {
      "type": "remote",
      "url": "https://easyvoice.ae/api/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:TTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "tts": {
      "type": "http",
      "url": "https://easyvoice.ae/api/mcp",
      "headers": {
        "Authorization": "Bearer ${TTS_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=tts&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZWFzeXZvaWNlLmFlL2FwaS9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtUVFNfVE9LRU59In19"
}
{
  "servers": {
    "tts": {
      "type": "http",
      "url": "https://easyvoice.ae/api/mcp",
      "headers": {
        "Authorization": "Bearer ${TTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "tts": {
      "httpUrl": "https://easyvoice.ae/api/mcp",
      "headers": {
        "Authorization": "Bearer ${TTS_TOKEN}"
      }
    }
  }
}
extensions:
  "tts":
    enabled: true
    name: "tts"
    type: streamable_http
    uri: "https://easyvoice.ae/api/mcp"
    headers:
      "Authorization": "Bearer ${TTS_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${TTS_TOKEN}. The registry never accepts secret values.

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints4 of 7 tools declare all four hints; missing: list_voices (destructiveHint, idempotentHint, openWorldHint); get_job_status (destructiveHint, idempotentHint, openWorldHint); get_usage (destructiveHint, idempotentHint, openWorldHint)
  • pass
    tools.token_costabout 1,475 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 1,475 tokens to load them all · tool set e18d11fd322d · tools last changed 2026-10-14 · checked 2026-10-20 11:40 UTC

Tool changes

  • clone_voicechangeddescription
    before

    Enroll a custom cloned voice from an audio sample (async). Requires a Pro or active 7-day pass key. Provide exactly one of audio_base64 or audio_url (https). Sample limits: 10 MB max upload; wav, mp3 or m4a; a 10–30 second clean single-speaker recording (enrollment rejects clips shorter than 10 or longer than 30 seconds; trim longer recordings first). Account limits: maximum 3 cloned voices, 5 enrollments per day. Returns a voice_id with status "enrolling" — check list_voices until its status is "ready", then use it in create_podcast.

    after · 87% of words in common

    Enroll a custom cloned voice from an audio sample (async). Requires a Pro or active 7-day pass key. Provide exactly one of audio_base64 or audio_url (https). Sample limits: 10 MB max upload; wav, mp3 or m4a; a 10–30 second clean single-speaker recording (enrollment rejects clips shorter than 10 or longer than 30 seconds; trim longer recordings first). Account limits: maximum 3 cloned voices, 5 enrollments per day. Returns a voice_id with status "enrolling" — check list_voices until its status is "ready" (there is no job to poll), then use it in create_podcast (Pro key) or in POST /api/v1/audio/speech (REST, same key).

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-9d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://easyvoice.ae/api/mcp streamable-httpapi_key ${TTS_TOKEN}yes100%445 ms2025-11-252026-10-20

Tools (7)

clone_voiceEnroll a custom cloned voice from an audio sample (async). Requires a Pro or active 7-day pass key. Provide exactly one of audio_base64 or audio_url (https). Sample limits: 10 MB max upload; wav, mp3 or m4a; a 10–30 second clean single-speaker recording (enrollment rejects clips shorter than 10 or longer than 30 seconds; trim longer recordings first). Account limits: maximum 3 cloned voices, 5 enrollments per day. Returns a voice_id with status "enrolling" — check list_voices until its status is "ready" (there is no job to poll), then use it in create_podcast (Pro key) or in POST /api/v1/audio/speech (REST, same key).
create_podcastCreate a two-host (A/B) podcast episode as an async job. Requires a Pro subscription key. Up to 60 segments; combined text up to 30,000 characters. voice_a and voice_b set the two speaker voices — your READY cloned voice_* ids are allowed. Returns a job id — poll get_job_status.
generate_long_formGenerate long-form narration (up to 500,000 characters ≈ 9 hours of audio) as an async job. Requires a Pro subscription key. Kokoro narration voices only — Arabic (ar_*) and cloned (voice_*) voices are rejected by the Long-Form engine. Returns a job id — poll get_job_status; parts render progressively and audio_url appears when completed.
get_job_statusread-onlyCheck the status of a long-form, podcast or tts job owned by this key. Returns status plus audio URL(s) when completed. Audio links are not guaranteed to persist — download promptly.
get_usageread-onlyCheck this API key's plan and usage. Free keys see today's used/remaining characters (shared 5,000/day pool, resets at midnight UTC), the 20 requests/minute rate limit and 2-concurrent cap. Pro keys are unlimited (fair use: 10M characters per rolling 30 days, then slowed to 30 requests and 10,000 characters a minute, 10 and 3,000 past 20M, on every surface -- never blocked or billed) at 60 requests/minute.
list_voicesread-onlyList all 66 EasyVoice catalog voices (id, name, language, accent, gender, free/pro tier) plus this key's cloned voices. Call this before text_to_speech or create_podcast to pick voice ids.
text_to_speechConvert text to a downloadable MP3 or WAV audio file with one of EasyVoice's 66 neural voices. Returns a hosted audio URL (no inline audio). Per-call limit: 8,000 characters (4,000 for Arabic ar_* voices) — text over the limit is automatically queued as a background job instead of erroring; poll get_job_status with the returned job_id for the result. Free keys can use the 12 free voices; Pro ($9.99/mo) unlocks the full catalog. A Pro account past the fair-use line is paced in characters a minute: a call may wait up to 20 seconds, and one that would wait longer returns a tool error saying when to retry.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ae.easyvoice/tts",
  "title": "EasyVoice text to speech",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://easyvoice.ae/api/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer <your EasyVoice API key> (free key at https://easyvoice.ae/account/keys)"
        }
      ]
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://easyvoice.ae/tts-mcp-server",
  "description": "Hosted text-to-speech MCP server: 66 voices in 9 languages, long-form narration, podcasts."
}