# salutespeech-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/theYahia/salutespeech-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/salutespeech-mcp

## Description
MCP server for Sber SaluteSpeech API — speech recognition and synthesis.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "salutespeech-mcp": {
    "command": "npx",
    "args": ["-y","@theyahia/salutespeech-mcp"]
  }
}
```

## Documentation & README

# SaluteSpeech MCP — распознавание и синтез русской речи для ИИ-ассистента

Если вы искали, как расшифровать созвон или голосовое сообщение в текст, озвучить текст голосом Сбера или подключить русский speech-to-text к Claude без собственного бэкенда — это оно. **5 инструментов** поверх Sber SaluteSpeech API: распознавание речи (STT) и синтез речи (TTS).

[![npm](https://img.shields.io/npm/v/@theyahia/salutespeech-mcp)](https://www.npmjs.com/package/@theyahia/salutespeech-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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)

