Search / com.kurdishtts/kurdish-tts-stt
kurdish-tts-stt
R0· no sign-inSorani & Kurmanji TTS+STT: Kurdish speech most APIs lack. 885 voices, free tier, no key to browse.
v1.2.0 · active · website · descriptor JSON · versions
Search / com.kurdishtts/kurdish-tts-stt
R0· no sign-inSorani & Kurmanji TTS+STT: Kurdish speech most APIs lack. 885 voices, free tier, no key to browse.
v1.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"kurdish-tts-stt": {
"type": "http",
"url": "https://www.kurdishtts.com/api/mcp",
"headers": {
"Authorization": "Bearer ${KURDISH_TTS_STT_TOKEN}"
}
}
}
}claude mcp add --transport http kurdish-tts-stt https://www.kurdishtts.com/api/mcp --header "Authorization: Bearer ${KURDISH_TTS_STT_TOKEN}"[mcp_servers.kurdish-tts-stt]
url = "https://www.kurdishtts.com/api/mcp"
bearer_token_env_var = "KURDISH_TTS_STT_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"kurdish-tts-stt": {
"type": "remote",
"url": "https://www.kurdishtts.com/api/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:KURDISH_TTS_STT_TOKEN}"
}
}
}
}{
"mcpServers": {
"kurdish-tts-stt": {
"type": "http",
"url": "https://www.kurdishtts.com/api/mcp",
"headers": {
"Authorization": "Bearer ${KURDISH_TTS_STT_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=kurdish-tts-stt&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3Lmt1cmRpc2h0dHMuY29tL2FwaS9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtLVVJESVNIX1RUU19TVFRfVE9LRU59In19"
}{
"servers": {
"kurdish-tts-stt": {
"type": "http",
"url": "https://www.kurdishtts.com/api/mcp",
"headers": {
"Authorization": "Bearer ${KURDISH_TTS_STT_TOKEN}"
}
}
}
}{
"mcpServers": {
"kurdish-tts-stt": {
"httpUrl": "https://www.kurdishtts.com/api/mcp",
"headers": {
"Authorization": "Bearer ${KURDISH_TTS_STT_TOKEN}"
}
}
}
}extensions:
"kurdish-tts-stt":
enabled: true
name: "kurdish-tts-stt"
type: streamable_http
uri: "https://www.kurdishtts.com/api/mcp"
headers:
"Authorization": "Bearer ${KURDISH_TTS_STT_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${KURDISH_TTS_STT_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hints3 of 6 tools declare all four hints; missing: list_voices (destructiveHint); list_dialects (destructiveHint); get_plan (destructiveHint)tools.token_costabout 1,817 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
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.
+dns-namespace +website +reachable +uptime-100% ~updated-37d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://www.kurdishtts.com/api/mcp streamable-http | none | yes | 100% | 517 ms | 2025-11-25 | 2026-10-20 |
get_planread-only | Show what this connection may use. With an API key: your current plan, remaining allowance, which model_versions and speaker ids you may render. Without a key: the purchasable plan ladder and how to get a key. Free, no credits consumed. Call this FIRST when any tool returns a 401 or 403 — it is the fastest way to learn what went wrong. |
list_dialectsread-only | List the supported Kurdish dialects and their scripts. Static capability descriptor — costs nothing and needs no API key. |
list_voicesread-only | List available Kurdish text-to-speech voices. Returns speaker ids to use with synthesize_speech. Free metadata call — no credits consumed, no API key needed. Defaults to model_version "v3", the SAME default synthesize_speech uses — pass the same model_version to both, because a speaker id from one catalog does not exist in another. Results are paginated; the response reports total_count and which ids a free plan may render. |
start_streaming_transcriptiondestructive | Open a live speech-to-text session for LISTENING — a microphone or audio stream you transcribe in real time. This does NOT make anything speak; to speak Kurdish use synthesize_speech, or POST https://www.kurdishtts.com/api/tts-stream for progressive audio. WARNING: calling this immediately consumes one streaming session from your STT plan quota — only call it when you are ready to connect. Returns a websocket_url: open it, stream PCM16 mono 16kHz audio chunks, send {"type": "finalize"} to flush and {"type": "done"} to close. Session duration is limited by plan. |
synthesize_speech | Convert Kurdish text (Sorani or Kurmanji) to speech audio. Requires a TTS API key; characters are billed against your plan. Get speaker_id from list_voices called with the SAME model_version you pass here (default "v3") — ids are not shared between catalogs. Returns one complete clip: MCP cannot stream, so for a live voice agent call POST https://www.kurdishtts.com/api/tts-stream directly instead (SSE, first audio in ~1s). Max 4000 characters per call in the default mp3 container, 600 with format "wav"; free plans are capped at 500 server-side. Note: speed is caller-facing (higher = faster). |
transcribe_audio | Transcribe Kurdish audio (Sorani or Kurmanji) to text. Requires an STT API key; usage is metered per audio minute against your plan. IMPORTANT: dialect selects the decoder and nothing detects it for you — transcribing Sorani audio as Kurmanji returns fluent, confident, WRONG text with no error. Pass dialect "auto" when you are not certain, and pick the coherent transcript from the two it returns. Max 3MB of decoded audio over MCP (~90s of 16kHz WAV, but ~25 minutes of 64kbps MP3 — send compressed audio to fit more); for larger files call POST https://www.kurdishtts.com/api/stt-proxy directly (multipart). |
Schemas: list_tools.
{
"name": "com.kurdishtts/kurdish-tts-stt",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://www.kurdishtts.com/api/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Bearer <ttsKey> or Bearer <ttsKey>:<sttKey>. Optional — discovery tools (list_dialects, list_voices, get_plan) work with no key. Billed tools require one: https://www.kurdishtts.com/settings/api"
}
]
}
],
"version": "1.2.0",
"websiteUrl": "https://www.kurdishtts.com/docs/guides/claude-kurdish-voice",
"description": "Sorani & Kurmanji TTS+STT: Kurdish speech most APIs lack. 885 voices, free tier, no key to browse."
}