Text to Speech について
Text to Speechは、ホストの音声合成機能を使ってAIアシスタントにテキストを読ませるオープンソースのMCPサーバーです。Windows、macOS、Linuxに対応し、ローカル再生とエージェント向けのナレーションスキルを備えています。
主な機能
- 01ローカルでの音声合成と再生
- 02複数リクエストの順次再生
- 03再生完了後の応答
- 04Piper、Transformers MMS、HTTPの追加バックエンド
- 05エージェント向けナレーションスキル
活用シーン
- 01アシスタントの回答の読み上げ
- 02作業状況の音声通知
- 03アクセシビリティ用途
MCP 対応
MCP stdio経由で、クライアントからローカル再生を依頼できるspeak_textツールを提供します。組み込みバックエンドではテキストは端末内にとどまります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | 読み上げるテキスト。秘密情報や非公開の推論を含めないでください。 |
詳細
テキスト読み上げ MCP サーバー
API キーもアカウントもクラウドサービスも使わず、ローカルで AI アシスタントに声を与えます。
Text to Speech は、AI アシスタントがユーザーのコンピューター上でテキストを読み上げられるようにする、オープンソースの Model Context Protocol(MCP)サーバーです。ホスト OS にすでに備わっている音声合成エンジンを使うため、読み上げるよう指示した内容がコンピューターの外に送信されることはありません。
Windows、macOS、Linux で動作します。インストールは 1 行です。
uvx text-to-speech-mcp
サーバーは、モデルが制御する次のツールを公開します。
speak_text(text: string)
ユーザーが提供したテキスト、アシスタントの回答、アクセシビリティのワークフロー、エージェントの作業中に音声で進捗を知らせる用途に使えます。
選ばれる理由
多くのテキスト読み上げ MCP サーバーはクラウド API を利用するため、アカウントやキーが必要で、文字数ごとに料金がかかり、テキストがコンピューターの外に送信されます。このサーバーは OS に標準搭載されている音声エンジンを使うため、オフラインで動作し、費用もかからず、テキストをローカルに保てます。データの送信先が規制されている環境で作業する場合には、特に重要な点です。
また、エージェント読み上げスキルも付属しているため、アシスタントは読み上げができるだけでなく、どのように読み上げるかも把握できます。
機能
- 既定では、プラットフォーム組み込みの音声合成機能を使ってローカルで再生します。Windows では SAPI、macOS では
say、Linux ではespeak-ngを使用します。 - 既定のセットアップでは、クラウド API も API キーも不要です。
- FIFO 再生により、同時にリクエストされた内容も順番に 1 つずつ読み上げます。
- ツールの呼び出しはブロッキング方式で完了し、音声の再生終了後に戻ります。
- 入力とキューのサイズに上限を設け、リソースが際限なく消費されるのを防ぎます。
- 生成された一時 WAV ファイルは、既定で再生後に削除されます。
- 公式 Python SDK を通じた標準の MCP
stdioトランスポート。 - 上級ユーザー向けに、Piper、Transformers MMS、ローカル HTTP バックエンドをオプションで利用できます。
MCP サーバーのソースコードは MIT License の下でオープンソースとして公開されています。Windows SAPI と macOS の
sayコマンドは各 OS のプロプライエタリなコンポーネントであり、オープンソースの音声エンジンではありません。espeak-ngは別途ライセンスされたオープンソースソフトウェアです。
要件
- Python 3.10 以降。
- stdio MCP サーバーに対応した MCP クライアント。
- パッケージベースの MCP インストールには
uv/uvxを推奨します。
プラットフォームごとの、設定不要な既定構成は次のとおりです。
| プラットフォーム | 音声合成 | 再生 | 追加インストール |
|---|---|---|---|
| Windows 10/11 | PowerShell 経由の SAPI | System.Media.SoundPlayer | 不要 |
| macOS | say | afplay | 不要 |
| Linux/その他の Unix | espeak-ng または espeak | aplay、paplay、play、または ffplay | espeak-ng とプレーヤー 1 つ |
Debian または Ubuntu では、通常、次のようにします。
sudo apt install espeak-ng alsa-utils
TEXT_TO_SPEECH_BACKEND または TEXT_TO_SPEECH_PLAYER を設定すると、いずれの選択も変更できます。必要なコマンドが見つからない場合、サーバーは何も通知せずに失敗するのではなく、不足しているコマンドとそのインストール方法を報告します。
インストール
公開済みの PyPI パッケージを実行するように MCP クライアントを設定します。
uvx text-to-speech-mcp
コマンドベースのサーバー設定に対応した MCP クライアントでは、次のようにします。
command = "uvx"
args = ["text-to-speech-mcp"]
startup_timeout_sec = 30
tool_timeout_sec = 300
enabled = true
クライアントによっては TOML、JSON、またはグラフィカルな設定画面を使用します。サーバーコマンドとして uvx text-to-speech-mcp を指定し、設定を変更した後にクライアントを再起動してください。
ソースからインストール
git clone https://github.com/Engr-FaizanAli/text-to-speech-mcp.git
cd text-to-speech-mcp
python -m pip install .
その後、text-to-speech-mcp を直接実行するようにクライアントを設定します。
プロンプトの例
任意のテキストを読み上げます。
Use the Text to Speech tool to read aloud: The deployment completed successfully.
最終回答を読み上げます。
Use the Text to Speech tool to read your final response aloud before displaying it.
表示された中間進捗の更新を順番に読み上げます。
Use the text_to_speech MCP server's speak_text tool for spoken progress updates.
For every meaningful intermediate update that you display to me:
1. Call speak_text with the exact update text you are about to display.
2. Wait for the call to finish before producing or speaking the next update.
3. Then display the same update in text.
Also call speak_text with the exact final answer before displaying it. Never
narrate hidden reasoning, chain-of-thought, secrets, credentials, raw tool
output, terminal logs, or source code unless I explicitly ask you to read that
content aloud. Do not invoke speech calls in parallel. If the tool is
unavailable, continue normally in text and report the failure once.
text_to_speech 部分は、クライアント側のサーバー名の一例です。ツール名 speak_text はそのままに、クライアントによって異なる名前空間が表示されることがあります。
ツールの仕様
| 項目 | 値 |
|---|---|
| ツール名 | speak_text |
| 入力 | text、必須の文字列、1~50,000 文字 |
| 結果 | ローカルでの再生が完了した後の完了メッセージ |
| 順序 | FIFO、同時に再生するのは1件のみ |
| キューの上限 | 保留中のリクエスト32件 |
| 組み込みバックエンド使用時のネットワーク利用 | なし |
このツールは MCP においてモデルが制御します。モデルにツールを呼び出すよう依頼するタイミングはユーザーが決めます。また、MCP クライアントでは、ツール呼び出しの承認を求めたり、その内容を表示したりする場合があります。
プライバシー
組み込みバックエンドを使用する場合、テキストは MCP クライアントからローカルの Python プロセスに渡され、その後、オペレーティングシステムの音声コンポーネントに渡されます。このプロジェクト、外部 API、クラウド TTS プロバイダーには送信されません。生成された WAV ファイルは、システムの一時ディレクトリ(Windows では %TEMP%、macOS と Linux では /tmp)内の text-to-speech-mcp ディレクトリに書き込まれ、TEXT_TO_SPEECH_KEEP_AUDIO=true が設定されていない限り、再生後に削除されます。
例外は http バックエンドです。テキストがマシンの外部に送信されるかどうかは、設定したエンドポイントによって完全に異なります。
AI アシスタントに、秘密情報、認証情報、秘密鍵、非表示の推論、機密性の高いツール出力を読み上げさせないでください。
オプションのバックエンド
デフォルトでは設定は不要です。TEXT_TO_SPEECH_BACKEND が未設定の場合、サーバーはホストプラットフォームに応じて sapi、say、または espeak を選択します。
バックエンドを明示的に指定する場合や、OS に組み込まれていないバックエンドを使用する場合は、TEXT_TO_SPEECH_BACKEND に sapi、say、espeak、piper、transformers_mms、または http を設定します。最後の3つには、それぞれ独自のローカルモデル、バイナリ、Python 依存関係、またはエンドポイントが必要です。最初のバックエンドに失敗した場合に試す2つ目のバックエンドは、TEXT_TO_SPEECH_FALLBACK_BACKEND で指定します。バックエンドの設定を参照してください。
エージェントの読み上げスキル
音声ツールだけでは、アシスタントが「いつ」「どのように」読み上げるかは決まりません。エージェントに任せると、非表示の推論を読み上げたり、本当に必要な部分を飛ばしたり、画面に表示されている内容ではなく言い換えを読み上げたりすることがあります。
skills/project-tts-responder/SKILL.md は、speak_text を使ったすぐに利用できる読み上げポリシーです。プロジェクトの .claude/skills/ ディレクトリにコピーしてください。
| モード | 動作 |
|---|---|
| バッチ(デフォルト) | ターンの最後に1回再生し、表示されたすべての更新と最終回答を読み上げます |
| ストリーミング | 更新が表示されるたびに読み上げます。デモやウォークスルーに適しています |
| リクエスト時に読み上げ | 指定したファイルまたはテキストブロックをそのまま読み上げます |
また、間違えやすい次の点にも対応しています。
- 対話形式の質問は、選択画面が開く前に読み上げます。 対話形式の質問ツール自体が一時停止となり、その選択肢は表示テキストではなくツールのパラメーターに含まれます。そのため、「選択肢が表示されたら」というルールが実行されるのは、ユーザーがすでに回答した後です。これが、読み上げが気づかれないまま失敗する最も一般的な原因です。
- 言い換えはせず、画面に表示されている内容を正確に読み上げます。
- 非表示の推論、秘密情報、認証情報、生のツール出力は読み上げません。
- 再生呼び出しはターンごとに1回のみとし、並行して実行せず、呼び出しに失敗した場合の動作も定義されています。
このスキルは、音声をリクエストしたときに適用されます。プロジェクトのすべての応答を読み上げるには、そのプロジェクト独自のエージェント指示に、たとえば「オプトアウトしない限り、すべての応答をバッチモードで読み上げる」と指定してください。
MCP 互換性
- MCP トランスポート:
stdio - MCP ツールの実装:公式 Python MCP SDK
- レジストリのメタデータ:2025-12-11 スキーマを使用する
server.json - パッケージレジストリ:PyPI
- レジストリ所有権マーカー:この README の
mcp-nameコメント - レジストリの名前空間:
io.github.Engr-FaizanAli/text-to-speech
ライセンス
MIT です。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。