@theyahia/yandex-speechkit-mcp
This MCP server provides speech recognition (STT) and synthesis (TTS) via Yandex SpeechKit, plus utilities for managing voices.
Recognize speech: Convert Base64 audio (oggopus/lpcm) to text using
recognize(supports ru-RU, en-US, tr-TR, kk-KK).Synthesize speech: Convert text (up to 5000 chars) to Base64 audio (oggopus/lpcm/mp3) with configurable voice, speed, and emotion using
synthesize.List available voices: Fetch TTS voices, optionally filtered by language prefix (e.g., ru, en) using
list_voices.High-level transcription: Get clean text from audio with the
skill_transcribetool (can return raw API response if needed).High-level synthesis: Generate speech with smart defaults and automatic language detection from voice using
skill_synthesize(defaults to mp3 format).
Provides speech recognition (STT), speech synthesis (TTS), and voice listing using Yandex SpeechKit API, enabling audio transcription, text-to-speech conversion, and voice management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@theyahia/yandex-speechkit-mcpTranscribe this audio file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π Repository archived
Development has moved to theYahia/YaAll β a build where the entire Yandex layer lives in one place: its own MCP servers, Claude Code skills, and materials from Yandex's official sets.
The current version of what was here:
mcp/yandex-speechkit-mcp/The npm package is the same β
@theyahia/yandex-speechkit-mcp, installs and works as before. Nothing is updated here anymore. Issues and pull requests go to YaAll.Archived β development moved to theYahia/YaAll, a single repository bundling the whole Yandex stack. The current version of this package now lives at
mcp/yandex-speechkit-mcp/. The npm package@theyahia/yandex-speechkit-mcpis unchanged. Please open issues and pull requests there.
This server is part of the theYahia/YaAll build β the entire Yandex layer in one repository: ten MCP servers, Claude Code skills for SEO and demand validation, plus materials from Yandex's official servers. Here it lives separately, there β alongside the rest:
mcp/yandex-speechkit-mcp/Part of theYahia/YaAll β the whole Yandex stack in one repo.
@theyahia/yandex-speechkit-mcp
MCP server for Yandex SpeechKit API β speech recognition, synthesis, and voice listing. 5 tools.
Part of the Russian API MCP series by @theYahia.
Related MCP server: salutespeech-mcp
Installation
Claude Desktop
{
"mcpServers": {
"yandex-speechkit": {
"command": "npx",
"args": ["-y", "@theyahia/yandex-speechkit-mcp"],
"env": {
"YANDEX_SPEECHKIT_API_KEY": "your-api-key",
"FOLDER_ID": "your-folder-id"
}
}
}
}Claude Code
claude mcp add yandex-speechkit \
-e YANDEX_SPEECHKIT_API_KEY=your-api-key \
-e FOLDER_ID=your-folder-id \
-- npx -y @theyahia/yandex-speechkit-mcpStreamable HTTP (remote / Docker)
YANDEX_SPEECHKIT_API_KEY=... FOLDER_ID=... npx @theyahia/yandex-speechkit-mcp --http
# Listens on :8080/mcp (override with PORT env var)Smithery
Deploy via smithery.ai β config in smithery.yaml.
Authentication
Variable | Description |
| Yandex Cloud API key (preferred) |
| Legacy alias (still works) |
| Short-lived IAM token (alternative to API key) |
| Yandex Cloud folder ID (required) |
| Legacy alias for FOLDER_ID |
Get credentials at Yandex Cloud Console.
Tools (5)
Tool | Type | Description |
| Core | Speech recognition (STT) β Base64 audio to text |
| Core | Speech synthesis (TTS) β text to Base64 audio |
| Core | List available TTS voices, filter by language |
| Skill | High-level transcription β returns clean text |
| Skill | High-level synthesis β smart defaults, auto-detects language from voice |
Examples
Transcribe this audio file
Synthesize "Hello, how are you?" with voice filipp
What voices are available in Russian?
Speak this text using the alena voiceDevelopment
npm install
npm run build
npm test
npm run dev # stdio modeLicense
MIT
Available Tools
5 toolslist_voicesB
List available TTS voices. Optionally filter by language.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Filter by language prefix (e.g. ru, en, kk) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the listing is read-only, requires authentication, or has rate limits. It only says 'List available TTS voices' without further context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence, 8 words) and front-loaded with the main purpose. However, given the lack of annotations, a bit more structure or detail could be beneficial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list tool with one optional parameter, but it does not describe the return format or any behavioral details. With no output schema, additional context about what the list contains would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'lang' is fully described in the input schema with an example. The description repeats 'optionally filter by language' but adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available TTS voices' with a specific verb and resource, and it distinguishes from sibling tools like recognize, synthesize, skill_synthesize, and skill_transcribe, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or compare with sibling tools like recognize or synthesize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recognizeC
Speech recognition (STT) via Yandex SpeechKit. Takes Base64 audio, returns text.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_base64 | Yes | Audio data encoded as Base64 | |
| lang | No | Recognition language (ru-RU, en-US, tr-TR, kk-KK) | ru-RU |
| format | No | Audio format (oggopus, lpcm) | oggopus |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'takes Base64 audio, returns text'. It does not disclose behavioral traits such as required permissions, latency, or error handling, which are critical for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) with no wasted words. It is front-loaded with the purpose, though it could benefit from more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple but non-trivial tool, the description is incomplete. It does not specify the return format (e.g., plain text vs JSON), error conditions, or any constraints like audio size limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides, only reiterating 'Base64 audio' and 'returns text'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Speech recognition (STT)' and specifies input/output format, making the tool's purpose obvious. However, it does not differentiate from the sibling tool 'skill_transcribe', which may have a similar function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'skill_transcribe' or 'synthesize'. The description simply states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skill_synthesizeB
High-level speech synthesis skill. Smart voice defaults, auto-detects language.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to speak (max 5000 chars) | |
| voice | No | Voice name | filipp |
| lang | No | Language β auto-detected from voice if omitted | |
| format | No | Output format (mp3, oggopus, lpcm) | mp3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses 'smart voice defaults' and 'auto-detects language' but omits details like the default voice name, error handling, or response format. The schema covers constraints like max text length, which the description misses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) and front-loads key features. It is efficient but could be structured with separate aspects for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description lacks details on return values, error handling, and how this 'skill' differs from the sibling 'synthesize'. It is incomplete for an agent to fully understand tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds context by explaining smart defaults for 'voice' and auto-detection for 'lang', augmenting the schema information meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a 'high-level speech synthesis skill' with smart defaults and auto-detection, distinguishing it from a lower-level 'synthesize' sibling. However, 'skill' is vague without further explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings like 'synthesize' or 'list_voices'. The description implies use when defaults are desired, but does not state alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skill_transcribeC
High-level transcription skill. Returns clean text from audio.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_base64 | Yes | Audio data encoded as Base64 | |
| lang | No | Language (ru-RU, en-US, kk-KK) | ru-RU |
| format | No | Audio format (oggopus, lpcm) | oggopus |
| return_raw | No | Return raw API response instead of plain text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it returns clean text. It does not disclose behavioral traits such as authorization requirements, data handling, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise but under-specified. It uses vague language like 'high-level' and does not provide enough detail for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and sibling tools available, the description lacks information about output format, error handling, or constraints, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it transcribes audio to text with a specific verb and resource. However, it does not differentiate from the sibling 'recognize' tool, which may perform a similar function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'recognize' or 'skill_synthesize'. The description lacks context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synthesizeC
Speech synthesis (TTS) via Yandex SpeechKit. Takes text, returns Base64 audio.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to synthesize (max 5000 chars) | |
| lang | No | Synthesis language (ru-RU, en-US, tr-TR, kk-KK) | ru-RU |
| voice | No | Voice name (filipp, alena, jane, dasha, john, etc.) | filipp |
| format | No | Audio format (oggopus, lpcm, mp3) | oggopus |
| emotion | No | Emotion (neutral, good, evil) β only for voices that support it | |
| speed | No | Speech speed multiplier (0.1β3.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic operation (synthesize text to audio) but omits important behavioral traits such as character limit, voice/emotion restrictions, and output handling. The schema covers some constraints, but the description adds no additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently concise (one sentence) and front-loaded with the core purpose. However, it could be slightly more informative without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and no annotations, the description is underspecified. It does not explain the return format details (Base64 audio but not the audio format), limitations, or when to use different parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters with defaults and constraints. The description does not add further meaning beyond 'text' input, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's speech synthesis (TTS) and that it takes text and returns Base64 audio. It distinguishes from 'recognize' (speech-to-text) and 'list_voices' but does not differentiate from the sibling 'skill_synthesize', which may have a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'skill_synthesize', 'recognize', or 'list_voices'. There is no mention of prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.1.0- First observed
list_voices - First observed
recognize - First observed
skill_synthesize - First observed
skill_transcribe - First observed
synthesize
TDQS
Tools are mostly distinct: list_voices (voice listing), recognize (low-level STT), synthesize (low-level TTS), skill_synthesize (high-level TTS), skill_transcribe (high-level STT). The high-level vs low-level distinction is clear in descriptions, but an agent might hesitate between skill_synthesize and synthesize.
Naming is inconsistent: list_voices follows verb_noun pattern, recognize and synthesize are single verbs, skill_synthesize and skill_transcribe have a 'skill_' prefix. Mix of patterns could confuse agents.
5 tools is appropriate for a speech kit server. It covers both STT and TTS with low-level and high-level options, without being overwhelming.
Core STT and TTS functionality is covered. Minor gaps like explicit language detection or streaming aren't present but are not critical given the high-level tools handle auto-detection.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Speech, transcription, voice agents, Trace, Recap, dubbing and narration with browser OAuth.
1Manage ElevenLabs voice agents and generate speech, music, sound effects, images, and video.
1Pronunciation assessment, phoneme scoring, speaker voice ID, audio transcription, speech synthesis.
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides speech recognition and synthesis tools via SaluteSpeech API, enabling AI assistants to handle voice input and output.4MIT
- AlicenseAqualityBmaintenanceProvides speech recognition (STT) and synthesis (TTS) tools via the Sber SaluteSpeech API, enabling audio transcription and voice generation through natural language.5281MIT
- AlicenseAqualityBmaintenanceEnables AI agents to generate speech using Gemini TTS models, with tools for text-to-speech, task polling, and pricing checks.466Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides tools for generating speech from text using the ElevenLabs API, including voice listing, text-to-speech conversion, and quota checking.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/yandex-speechkit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server