io.github.theYahia/salutespeech-mcp
MCP server for Sber SaluteSpeech API — speech recognition and synthesis.
Open source Open in the app JSON README (API)
About
MCP server for Sber SaluteSpeech API — speech recognition and synthesis.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- theyahia
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.0
- Stars
- 1
- Open pull requests
- 1
- Last push
- 2026-09-03T04:46:27Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 04:01:31
- Updated
- 2026-08-29 04:01:31
- Origin id
io.github.theYahia/salutespeech-mcp
README
# SaluteSpeech MCP — распознавание и синтез русской речи для ИИ-ассистента
Если вы искали, как расшифровать созвон или голосовое сообщение в текст, озвучить текст голосом Сбера или подключить русский speech-to-text к Claude без собственного бэкенда — это оно. **5 инструментов** поверх Sber SaluteSpeech API: распознавание речи (STT) и синтез речи (TTS).
[](https://www.npmjs.com/package/@theyahia/salutespeech-mcp)
[](https://opensource.org/licenses/MIT)
Часть серии [WWmcp](https://github.com/theYahia/WWmcp) (46 серверов) от [@theYahia](https://github.com/theYahia).
## Установка
### Claude Desktop
```json
{
"mcpServers": {
"salutespeech": {
"command": "npx",
"args": ["-y", "@theyahia/salutespeech-mcp"],
"env": { "SALUTESPEECH_API_KEY": "your-base64-key" }
}
}
}
```
### Claude Code
```bash
claude mcp add salutespeech -e SALUTESPEECH_API_KEY=your-key -- npx -y @theyahia/salutespeech-mcp
```
### Режим Streamable HTTP
```bash
SALUTESPEECH_API_KEY=your-key npx @theyahia/salutespeech-mcp --http --port=3000
# POST http://localhost:3000/mcp
# GET http://localhost:3000/health
```
## Авторизация
Три варианта (проверяются по порядку):
| Переменная | Формат |
|---------|--------|
| `SALUTESPEECH_API_KEY` | Base64 от строки `client_id:client_secret` |
| `SALUTE_AUTH_KEY` | То же самое (устаревший алиас) |
| `SALUTE_SPEECH_CLIENT_ID` + `SALUTE_SPEECH_CLIENT_SECRET` | Сырые учётные данные (кодируются автоматически) |
OAuth-токены запрашиваются и обновляются автоматически. Scope по умолчанию —
`SALUTE_SPEECH_PERS` (физлица); для корпоративных аккаунтов задайте `SALUTE_SPEECH_SCOPE`
(`SALUTE_SPEECH_CORP` — постоплата, `SALUTE_SPEECH_B2B` — предоплата).
Учётные данные выдаются на [developers.sber.ru](https://developers.sber.ru).
## Инструменты (5)
| Инструмент | Описание |
|------|-------------|
| `recognize_speech` | Распознавание речи из аудио в Base64 |
| `synthesize_speech` | Синтез речи, возвращает аудио в Base64 |
| `list_models` | Список моделей распознавания и голосов синтеза |
| `get_task_status` | Статус асинхронной задачи распознавания |
| `recognize_file` | Распознавание речи из локального файла по пути |
## Навыки (Skills)
- `skill-transcribe` — пошаговый сценарий расшифровки аудио
- `skill-synthesize` — пошаговый сценарий синтеза речи
## Примеры
```
Расшифруй аудиофайл /tmp/meeting.wav
Озвучь «Привет, мир» голосом Bys_24000 в формате wav16
Покажи доступные голоса
```
## Ограничения
`recognize_speech` и `recognize_file` работают через **синхронный** эндпоинт с лимитом
**2 МБ / 1 минута** аудио (файл больше — HTTP 413). Для многоканального аудио распознаётся
только первый канал. Длинные записи требуют асинхронного сценария
(`data:upload` → `speech:async_recognize` → `task:get` → `data:download`) — он пока не вынесен
в инструменты; шаг опроса статуса покрывает `get_task_status`.
Текст для синтеза ограничен **4000 символами** (включая пробелы и SSML-разметку).
## Решение проблем
### `self-signed certificate in certificate chain` / `UNABLE_TO_VERIFY_LEAF_SIGNATURE`
Эндпоинты Сбера используют **Russian Trusted Root CA (НУЦ Минцифры)**, которого **нет** в
дефолтном хранилище доверенных корневых сертификатов Node.js — поэтому самый первый
OAuth-запрос падает, пока вы его не добавите.
Решение: скачайте корневой сертификат (`russian_trusted_root_ca_pem.crt`) с
[gosuslugi.ru/crt](https://www.gosuslugi.ru/crt) и укажите его Node.js:
```bash
export NODE_EXTRA_CA_CERTS=/path/to/russian_trusted_root_ca_pem.crt
```
В MCP-клиенте добавьте эту переменную в блок `env` сервера. **Не** ставьте
`NODE_TLS_REJECT_UNAUTHORIZED=0` в продакшене — это полностью отключает проверку TLS.
Официальная инструкция: [сертификаты SaluteSpeech](https://developers.sber.ru/docs/ru/salutespeech/certificates).
## Лицензия
MIT
---
Часть [WWmcp](https://github.com/theYahia/WWmcp) · Telegram: [@vhodvai](https://t.me/vhodvai)