ListenHub MCP

Usage Examples

Prompt-to-tool-call walkthroughs for podcasts, FlowSpeech, the script-first flow, speaker discovery, and account checks.

These walkthroughs show what to say to an MCP client and which tool the client calls in response. The client picks tools and fills inputs from your prompt — you do not write the JSON yourself. The JSON below is what a reasonable call looks like, so you can see how a prompt maps to inputs. Tool names, full input lists, and response shapes are in Available Tools.

Screenshots

Generate a Chinese podcast:

Generate Chinese podcast

Generate an English podcast:

Generate English podcast

Podcast from a topic

"Make a short English podcast about how LLMs changed search. Use two hosts."

The client first discovers speakers, then calls create_podcast with two speakerIds. create_podcast polls to completion and returns the finished episode, so you get the audio URL in one step.

{
  "tool": "create_podcast",
  "input": {
    "query": "How LLMs changed search",
    "speakerIds": ["sp_aria_en", "sp_leo_en"],
    "language": "en",
    "mode": "quick"
  }
}

For a head-to-head, two-host argument, ask for a debate. debate mode requires exactly 2 speaker IDs:

{
  "tool": "create_podcast",
  "input": {
    "query": "Is remote work better than office work?",
    "speakerIds": ["sp_aria_en", "sp_leo_en"],
    "language": "en",
    "mode": "debate"
  }
}

Podcast from a URL

"Turn this article into a podcast: https://example.com/post"

URLs and text passages go in sources. You can combine sources with a query to steer the framing.

{
  "tool": "create_podcast",
  "input": {
    "sources": ["https://example.com/post"],
    "query": "Focus on the practical takeaways",
    "speakerIds": ["sp_aria_en"],
    "language": "en",
    "mode": "deep"
  }
}

A single speaker ID produces a solo episode. Provide at least one of query or sources.

FlowSpeech narration

"Read this announcement out loud, word for word."

FlowSpeech is single-speaker narration. Use direct mode to read the source verbatim, or smart mode to let the model polish it first. create_flowspeech returns an episodeId and runs asynchronously — the client then polls get_flowspeech_status for the audio.

{
  "tool": "create_flowspeech",
  "input": {
    "sourceType": "text",
    "sourceContent": "This quarter we shipped three major features...",
    "speakerId": "sp_aria_en",
    "language": "en",
    "mode": "direct"
  }
}

To narrate a web page instead, set sourceType to url and put the link in sourceContent.

Script-first: review before audio

"Write the script for a podcast on prompt engineering, let me read it, then make the audio."

This is a two-step flow. First generate the script only:

{
  "tool": "create_podcast_text_only",
  "input": {
    "query": "An introduction to prompt engineering",
    "speakerIds": ["sp_aria_en", "sp_leo_en"],
    "language": "en",
    "mode": "quick"
  }
}

The client gets back an episodeId. Read the script with get_podcast_status, edit any lines, then generate audio. Pass your edits as customScripts so the audio matches your version:

{
  "tool": "generate_podcast_audio",
  "input": {
    "episodeId": "664e0c2b9f1a2b3c4d5e6f70",
    "customScripts": [
      { "speakerId": "sp_aria_en", "content": "Welcome back. Today: prompt engineering." },
      { "speakerId": "sp_leo_en", "content": "Let's start with what a prompt actually is." }
    ]
  }
}

Omit customScripts to generate audio from the script as-is.

Discover speakers

"What English voices are available?"

get_speakers returns the voice library. Filter by language to narrow it down. Each item carries a speakerId to feed into the generation tools.

{
  "tool": "get_speakers",
  "input": {
    "language": "en"
  }
}

Check your subscription

"Do I have enough credits to make a deep-dive podcast?"

get_user_subscription takes no inputs and returns your plan and credit balances. Call it before a long generation to confirm totalAvailableCredits covers it.

{
  "tool": "get_user_subscription",
  "input": {}
}

Credit cost is not fixed per tool. For a precise estimate before generating, use the relevant */estimate-credits endpoints in the OpenAPI reference, then check live balances with get_user_subscription.

Next

On this page