利用可能なツール
ListenHub MCP の 8 つのツール、それぞれの入力制約、返されるレスポンス構造。
ListenHub MCP server は 8 つのツールを公開します。各ツールは OpenAPI エンドポイントをラップしており、成功時にはラップを外した data ペイロードを返します。基盤となるレスポンスは標準のエンベロープ { "code": 0, "message": "", "data": { ... } } に従い、code が 0 以外の場合はエラーを示します。
ポッドキャストは 1 〜 2 人の話者に対応します。debate モードは 2 人のホスト形式で、2 つの speaker ID が必要です。FlowSpeech は単一話者(1 人)です。言語は zh または en です。
話者の検索
get_speakers
ポッドキャストと FlowSpeech の生成に使える話者を返します。ボイス ID、名前、言語、性別、デモ音声リンク、ボイスプロファイルが含まれます。
入力
language: 言語コードによる絞り込み、zhまたはen(string、任意)
レスポンス
items 配列を返します。各項目は speakerId を持ちます(この値を他のツールの speakerIds / speakerId に使用します)。
{
"items": [
{
"name": "Aria",
"speakerId": "sp_aria_en",
"demoAudioUrl": "https://storage.googleapis.com/.../aria-demo.mp3",
"gender": "female",
"language": "en",
"profile": {
"pitch": ["medium", "medium-high"],
"speed": ["medium-fast"],
"traits": ["clear", "bright", "warm"],
"styles": ["friendly", "narrative"],
"scenes": ["podcast", "audiobook"],
"accent": "American English",
"description": "Warm, conversational host voice.",
"descriptionLocalized": { "zh": "温暖、口语化的主持人声音。" }
}
}
]
}ポッドキャスト生成
create_podcast
完全なポッドキャスト(テキスト + 音声)を作成します。完了まで自動でポーリングするため、数分かかることがあります。
入力
query: トピックまたは内容のプロンプト(string、任意)sources: テキスト / URL ソースの配列(array、任意)speakerIds: 1 〜 2 個の speaker ID(array、必須)。debateモードでは 2 個指定します。language: 言語コードzhまたはen(string、任意、デフォルト:en)mode: 生成モードquick、deep、debate(string、任意、デフォルト:quick)
query と sources のうち少なくとも一方を指定してください。
レスポンス
このツールは完了までポーリングするため、ポッドキャストの詳細をすべて返します(get_podcast_status と同じ構造)。完了時のペイロード例:
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"createdAt": 1716460000000,
"processStatus": "success",
"contentStatus": "audio-success",
"completedTime": 1716460320000,
"credits": 12,
"title": "How LLMs Changed Search",
"outline": "1. The shift from keywords...",
"cover": "https://storage.googleapis.com/.../cover.png",
"audioUrl": "https://storage.googleapis.com/.../episode.mp3",
"audioStreamUrl": "https://storage.googleapis.com/.../episode-stream.mp3",
"subtitlesUrl": "https://storage.googleapis.com/.../episode.srt",
"scripts": [
{ "speakerId": "sp_aria_en", "speakerName": "Aria", "content": "Welcome back to the show." },
{ "speakerId": "sp_leo_en", "speakerName": "Leo", "content": "Today we're digging into search." }
]
}get_podcast_status
ポーリングせずに、現在のポッドキャストの詳細を即座に返します。
入力
episodeId: ポッドキャストのエピソード ID(string、必須)
レスポンス
上記の完了時の create_podcast ペイロードと同じ構造です。生成中は processStatus が現在の状態を示し、コンテンツ関連のフィールド(audioUrl、scripts など)は対応するフェーズが終わるまで存在しないことがあります。contentStatus は text-success、text-fail、audio-success、audio-fail のいずれかです。
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"createdAt": 1716460000000,
"processStatus": "processing",
"contentStatus": "text-success",
"credits": 0,
"title": "How LLMs Changed Search",
"outline": "1. The shift from keywords...",
"scripts": [
{ "speakerId": "sp_aria_en", "speakerName": "Aria", "content": "Welcome back to the show." }
]
}create_podcast_text_only
テキストのみのポッドキャスト(台本、音声なし)を作成します。これは台本先行ワークフローの第 1 フェーズです。台本を生成し、確認・編集したうえで generate_podcast_audio を呼び出します。
入力
query: トピックまたは内容のプロンプト(string、任意)sources: テキスト / URL ソースの配列(array、任意)speakerIds: 1 〜 2 個の speaker ID(array、必須)。debateモードでは 2 個指定します。language: 言語コードzhまたはen(string、必須)mode: 生成モードquick、deep、debate(string、任意、デフォルト:quick)waitForCompletion: テキスト生成の完了まで待機する(boolean、任意、デフォルト:true)
query と sources のうち少なくとも一方を指定してください。
レスポンス
新しい episodeId とステータスメッセージを返します。waitForCompletion が true の場合、ツールは台本の生成が終わるまで待ってから返します。台本の取得には get_podcast_status を使用してください。
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"message": "Text content generation started. Audio generation can be triggered later."
}generate_podcast_audio
既存のテキストのみのポッドキャストに対して音声を生成します。これは台本先行ワークフローの第 2 フェーズです。
入力
episodeId: ポッドキャストのエピソード ID(string、必須)customScripts: カスタム台本の配列(array、任意)。各要素はcontent(string)とspeakerId(string)を持ちます。省略した場合は既存の台本が使われます。waitForCompletion: 音声生成の完了まで待機する(boolean、任意、デフォルト:true)
レスポンス
音声生成が開始されたことを示します。完成した audioUrl は get_podcast_status をポーリングして取得します。
{
"success": true,
"message": "Audio generation started",
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"status": "processing"
}FlowSpeech 生成
create_flowspeech
テキストまたは URL から FlowSpeech(単一話者のナレーション)を作成します。smart モードは元の内容に AI による推敲を加え、direct モードは内容を一切変更せずそのまま読み上げます。
入力
sourceType: ソースの種類textまたはurl(string、必須)sourceContent: ソースの内容 — 本文テキストまたは URL(string、必須)。textの場合、内容は 10 文字以上である必要があります。speakerId: ナレーションの speaker ID(string、必須)。FlowSpeech は話者をちょうど 1 人使用します。language: 言語コードzhまたはen(string、任意)mode: 生成モードsmartまたはdirect(string、任意、デフォルト:smart)
レスポンス
新しい episodeId を返します。生成は非同期で実行されるため、get_flowspeech_status でポーリングしてください。
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f71"
}get_flowspeech_status
ポーリングせずに、現在の FlowSpeech の詳細を即座に返します。
入力
episodeId: FlowSpeech のエピソード ID(string、必須)
レスポンス
FlowSpeech では、scripts はポッドキャストのような話者ごとの配列ではなく、単一の文字列(ナレーション台本)です。コンテンツ関連のフィールドは、各フェーズが終わるたびに現れます。
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f71",
"createdAt": 1716460000000,
"processStatus": "success",
"completedTime": 1716460120000,
"title": "Quarterly Product Update",
"outline": "1. Highlights...",
"cover": "https://storage.googleapis.com/.../cover.png",
"audioUrl": "https://storage.googleapis.com/.../flowspeech.mp3",
"audioStreamUrl": "https://storage.googleapis.com/.../flowspeech-stream.mp3",
"subtitlesUrl": "https://storage.googleapis.com/.../flowspeech.srt",
"scripts": "Welcome to the quarterly update. This quarter we shipped..."
}ユーザーのサブスクリプション照会
get_user_subscription
現在のユーザーのサブスクリプションとクレジット残高を返します。プランの詳細、月次 / 永久 / 期間限定クレジット、利用可能な合計クレジット、更新ステータス、サブスクリプションの日付が含まれます。生成前にこれを呼び出して、クレジットが足りているか確認してください。
入力
なし。
レスポンス
タイムスタンプは 13 桁のミリ秒です。totalAvailableCredits は、利用可能な月次・永久・期間限定クレジットの合計です。
{
"subscriptionStartedAt": 1714000000000,
"subscriptionExpiresAt": 1716592000000,
"usageAvailableMonthlyCredits": 480,
"usageTotalMonthlyCredits": 500,
"usageAvailablePermanentCredits": 100,
"usageTotalPermanentCredits": 100,
"usageAvailableLimitedTimeCredits": 0,
"totalAvailableCredits": 580,
"resetAt": 1716592000000,
"platform": "web",
"renewStatus": true,
"paidStatus": true,
"subscriptionPlan": {
"name": "Pro",
"duration": "monthly",
"platform": "web"
}
}クレジットの消費量はツールごとに固定ではありません。生成前にコストを見積もるには、OpenAPI リファレンス の該当する */estimate-credits エンドポイントを使用し、get_user_subscription で現在の残高を確認してください。
ListenHub MCP server をご利用いただきありがとうございます。
サポートのお問い合わせ先:support@marswave.ai