Skip to main content
Glama

MCP Simple AivisSpeech

by shinshin86
README.ja.md12.8 kB
# MCP Simple AivisSpeech ![Project Logo](./images/mcp-simple-aivisspeech_logo.png) [English](README.md) | [日本語](README.ja.md) > 🙏 **特別な感謝** > このプロジェクトは [@t09tanaka](https://github.com/t09tanaka) による [mcp-simple-voicevox](https://github.com/t09tanaka/mcp-simple-voicevox) をベースにしています。 > VOICEVOX用の優れたMCPサーバーを作成された功績に深く感謝いたします。このAivisSpeech版の基礎となりました。 AivisSpeech音声合成エンジンとシームレスに統合するためのModel Context Protocol (MCP) サーバーです。このプロジェクトにより、AIアシスタントやアプリケーションが、カスタマイズ可能な音声パラメータで自然な日本語音声にテキストを変換できます。 ## ✨ 機能 - 音声合成 - AivisSpeechを使用した高品質な日本語音声合成 - 複数の音声キャラクター - 様々な話者と音声スタイルをサポート(デフォルト: Anneli ノーマル) - 設定可能なパラメータ - 速度、ピッチ、音量、イントネーションの調整 - クロスプラットフォーム音声再生 - macOS、Windows、Linuxでの自動音声再生 - タスク通知 - プロセス完了時の音声通知 - 簡単な統合 - AIアシスタント統合のためのシンプルなMCPプロトコル - エンジンステータス監視 - AivisSpeechエンジンのリアルタイムステータスチェック - スマートなエラーハンドリング - 話者の提案を含む役立つエラーメッセージ ## 📋 前提条件 - Node.js - バージョン18.0.0以上 - AivisSpeechエンジン - `http://127.0.0.1:10101` (デフォルトポート) で実行中 - オーディオシステム - 再生のためのシステムオーディオ機能 ## MCP Simple AivisSpeechの設定方法 ### Claude Codeを使用した設定 Claude Codeで使用する場合、先にMCPサーバーを起動しておきます。 > npxを使用すると、常に最新バージョンが自動的に取得されます。手動更新は不要です。 1. AivisSpeech MCP サーバーをClaude Codeを利用するターミナルとは別のターミナル上で手動で起動しておく ```bash npx @shinshin86/mcp-simple-aivisspeech@latest ``` 2. Claude Code に MCP サーバーを登録 ```bash claude mcp add aivisspeech -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latest ``` デフォルトでは、サーバーはローカルスコープ(現在のプロジェクトのみ)に追加されます。全プロジェクトで利用可能にしたい場合は、`-s user`オプションを使用してください: ```bash claude mcp add aivisspeech -s user -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latest ``` また音声による通知を毎回指定するのが面倒な場合は `CLAUDE.md` に以下のような記載を追加するとよいでしょう。 (英語での `CLAUDE.md` の記載は [英語版](README.md) に記載しています) ```md ## タスク完了時の動作 - 全てのタスクを完了したら、必ずaivisspeech mcpツールを使って「タスクが完了しました」と音声で通知してください - ユーザーの判断や確認が必要な場合も、aivisspeech mcpツールを使って「判断をお待ちしています」と音声で通知してください ### 通知のタイミング - こちらに質問を実施したタイミング - タスクが全て完了したタイミング - エラーや問題が発生した時 ``` 3. ツールが認識されたか確認 ```bash claude mcp list # またはClaude Codeを立ち上げて /mcp ``` `aivisspeech` が表示されていれば成功です。 > 💡 ポイント: Claude Codeは安全のためコマンドを自動実行しません。サーバーを起動し忘れるとツールが表示されないので、開発中はターミナルで上記 `npx` コマンドを常駐させるか、`pm2` や `systemd --user` などで常駐化することを推奨します。 ### Claude Desktopを使用した設定 Claude Desktopに手動でMCPサーバーを追加する場合は以下の設定を追加するだけで可能です: > npxを使用すると、常に最新バージョンが自動的に取得されます。手動更新は不要です。 ```json { "mcpServers": { "aivisspeech": { "command": "npx", "args": ["@shinshin86/mcp-simple-aivisspeech@latest"], "env": { "AIVISSPEECH_URL": "http://127.0.0.1:10101" } } } } ``` ## ⚙️ AivisSpeechエンジンのセットアップ このMCPサーバーを使用する前に、次の手順でAivisSpeechをローカルで実行しておきます。 1. [https://aivis-project.com/](https://aivis-project.com/) からAivisSpeechをダウンロード 2. ローカルマシンでAivisSpeechを起動 3. エンジンはデフォルトポート10101で起動します 4. `http://127.0.0.1:10101/docs` にアクセスしてエンジンが実行中であることを確認 ## 📖 その他の使用方法 ### ローカル開発の場合 ```bash # MCPサーバーを実行 npm start # ホットリロードで開発 npm run dev # すべてが動作しているか確認 npm test ``` リポジトリをクローン、依存関係のインストール、ビルドが必要な場合: ```bash # リポジトリをクローン git clone https://github.com/shinshin86/mcp-simple-aivisspeech.git cd mcp-simple-aivisspeech # 依存関係をインストール npm install # プロジェクトをビルド npm run build ``` ## 🛠️ 利用可能なツール ### 🎤 `speak` カスタマイズ可能な音声パラメータでテキストを音声に変換し、音声を再生します。 使用できるパラメータは以下のとおりです。 - `text` *(必須)*: 音声に変換するテキスト - `speaker` *(オプション)*: 話者/音声ID(デフォルト: `888753760` - Anneli ノーマル) - `speedScale` *(オプション)*: 音声速度倍率(`0.5`-`2.0`、デフォルト: `1.0`) - `pitchScale` *(オプション)*: ピッチ調整(`-0.15`-`0.15`、デフォルト: `0.0`) - `volumeScale` *(オプション)*: 音量レベル(`0.0`-`2.0`、デフォルト: `1.0`) - `playAudio` *(オプション)*: 生成された音声を再生するかどうか(デフォルト: `true`) 使用例 ```json { "text": "こんにちは、世界!", "speaker": 888753760, "speedScale": 1.2, "pitchScale": 0.05, "volumeScale": 1.5 } ``` ### 👥 `get_speakers` 利用可能なすべての音声キャラクターとそのスタイルのリストを取得します。 この関数から返される値 ID、名前、利用可能な音声スタイルを含む話者のリスト。 ### 🔔 `notify_completion` タスクが完了したときに音声通知を再生します。 使用できるパラメータは以下のとおりです。 - `message` *(オプション)*: アナウンスする完了メッセージ(デフォルト: `"処理が完了しました"`) - `speaker` *(オプション)*: 通知音声の話者ID(デフォルト: `888753760` - Anneli ノーマル) 使用例 ```json { "message": "データ処理が完了しました", "speaker": 888753760 } ``` ### 📊 `check_engine_status` AivisSpeechエンジンの現在のステータスとバージョンを確認します。 この関数から返される値 エンジンステータス、バージョン情報、接続詳細。 ## 🖥️ プラットフォームサポート ### 音声再生システム | プラットフォーム | 音声コマンド | 必要条件 | |----------|---------------|----------| | **macOS** | `afplay` | ビルトイン(追加設定不要) | | **Windows** | PowerShell Media.SoundPlayer | Windows PowerShell | | **Linux** | `aplay` | ALSA utils (`sudo apt install alsa-utils`) | ### テスト済み環境 - macOS 12+ (Intel & Apple Silicon) - Windows 10/11 - Ubuntu 20.04+ - Node.js 18.x, 20.x, 21.x ## 🧪 開発 ### 利用可能なスクリプト ```bash # 開発とビルド npm run dev # ホットリロードで実行 (tsx) npm run build # TypeScriptをdist/にコンパイル npm start # コンパイル済みサーバーを実行 # コード品質 npm run lint # ESLintを実行 npm run test # Vitestテストを実行(単一実行) npm run test:watch # ウォッチモードでテストを実行 npm run test:ui # UIでテストを実行 npm run test:coverage # カバレッジ付きでテストを実行 # ユーティリティ npm run clean # dist/ ディレクトリをクリーン ``` ### プロジェクト構成 ``` mcp-simple-aivisspeech/ ├── src/ │ ├── index.ts # MCPサーバー & ツールハンドラー │ └── aivisspeech-client.ts # AivisSpeech APIクライアント ├── tests/ │ └── aivisspeech-client.test.ts # ユニットテスト ├── dist/ # コンパイル出力 ├── docs/ # ドキュメント └── config files # TS、ESLint、Vitest設定 ``` ### APIクライアントアーキテクチャ `AivisSpeechClient`クラスは、以下のような機能を提供しています。 - HTTPクライアント - AxiosベースのAPI通信 - エラーハンドリング - 包括的なエラーキャッチとレポート - 型安全性 - すべてのAPIレスポンスに対する完全なTypeScriptインターフェース - 接続管理 - ヘルスチェックとステータス監視 ### 新機能の追加 1. **新しいツール**: `src/index.ts` の `CallToolRequestSchema` にハンドラーを追加 2. **APIメソッド**: `AivisSpeechClient` クラスを拡張 3. **型**: `aivisspeech-client.ts` のインターフェースを更新 4. **テスト**: 対応するテストケースを追加 ## 🔧 トラブルシューティング ### よくある問題 #### AivisSpeechエンジンが見つからない ``` Error: Failed to get version: connect ECONNREFUSED 127.0.0.1:10101 ``` この問題を解決するには、次の方法を試してください。 AivisSpeechエンジンが正しいポートで実行されていることを確認してください。 #### 音声再生の失敗 ``` Error: Audio player exited with code 1 ``` この問題を解決するには、次の方法を試してください。 - macOS - `afplay` が利用可能か確認 - Linux - ALSA utilsをインストール(`sudo apt install alsa-utils`) - Windows - PowerShellの実行ポリシーがスクリプトを許可していることを確認 #### 権限拒否 ``` Error: spawn afplay EACCES ``` この問題を解決するには、次の方法を試してください。 ファイルの権限とシステムオーディオ設定を確認してください。 ### デバッグモード 詳細なログを有効化するには、次のコマンドを実行します。 ```bash DEBUG=mcp-aivisspeech npm run dev ``` ## 📄 ライセンス このプロジェクトはApache License 2.0の下でライセンスされています - 詳細は[LICENSE](LICENSE)ファイルを参照してください。 ## 🤝 貢献 貢献を歓迎します。貢献をする際は、以下の手順に従ってください。 1. リポジトリを**フォーク** 2. フィーチャーブランチを**作成** (`git checkout -b feature/amazing-feature`) 3. 変更を**コミット** (`git commit -m 'Add amazing feature'`) 4. ブランチに**プッシュ** (`git push origin feature/amazing-feature`) 5. プルリクエストを**オープン** ### 開発ガイドライン - 既存のTypeScript/ESLint設定に従う - 新機能のテストを追加 - API変更のドキュメントを更新 - クロスプラットフォーム互換性を確保 ## 🙏 謝辞 - 優れたTTSエンジンを提供する[AivisSpeechプロジェクト](https://aivis-project.github.io/AivisSpeech-Engine/) - 統合フレームワークの[Model Context Protocol](https://github.com/anthropics/mcp) - インスピレーションと参考にした[VOICEVOX MCP](https://github.com/t09tanaka/mcp-simple-voicevox) ## 📞 サポート - Issues - [GitHub Issues](https://github.com/shinshin86/mcp-simple-aivisspeech/issues) - Discussions - [GitHub Discussions](https://github.com/shinshin86/mcp-simple-aivisspeech/discussions) - Documentation - [AivisSpeech API Docs](https://aivis-project.github.io/AivisSpeech-Engine/api/) --- 日本のTTSコミュニティのために ❤️ を込めて作られました

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/shinshin86/mcp-simple-aivisspeech'

If you have feedback or need assistance with the MCP directory API, please join our Discord server