ListenHub MCP Server
The ListenHub MCP Server enables AI-powered podcast and speech generation through integration with various MCP clients, allowing users to create audio content from text or URLs with customizable voices and generation modes.
Core Capabilities:
Podcast Generation: Create full podcasts (text + audio) or text-only content with 1-2 speakers and 3-15 minute durations. Supports three modes (Quick: 3-5 min, Deep: 8-15 min, Debate: 5-10 min) with two-stage workflows that allow script customization before audio production. Query generation status and retrieve complete podcast data including audio files, scripts, outlines, titles, and metadata.
FlowSpeech Creation: Convert text or URL content into single-speaker conversational audio with Smart (AI-enhanced with grammar fixes) or Direct (verbatim) modes. Query status and access generated audio.
Speaker Management: Browse the voice library with filtering by language (Chinese, English) and gender. Access speaker details including ID, name, language, gender, and demo audio samples.
User Account Management: Query subscription status, plan details, credit usage (monthly, permanent, limited-time), total available credits, renewal information, and subscription dates.
Integration Features: Supports multiple transport modes (Stdio default, HTTP Streaming, SSE) and integrates with popular MCP clients including Claude Desktop, Cursor, Windsurf, VS Code (Cline), Zed Editor, Claude CLI, Codex CLI, and ChatWise. Includes automatic polling for long-running tasks and language support for Chinese and English.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ListenHub MCP Server create a podcast about AI ethics with two speakers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Official MCP Server for ListenHub, supporting AI podcast generation (single or dual-speaker), FlowSpeech creation, and more. Available for ListenHub Pro plan and above.
Quick Start
Environment Configuration
Installing Node.js
This server requires Node.js version 18 or higher. If you haven't installed Node.js yet, please follow the instructions below:
macOS Method 1: Using Official Installer
Visit the Node.js official website and download the Node.js Long Term Support version, such as v24.11.0(LTS)
Open the downloaded
.pkgfile and follow the installation wizardOpen Terminal and run the following commands to verify installation:
node --version npm --versionMethod 2: Using Homebrew If you don't have Homebrew installed, use the following script to install it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# After successful installation, use brew to download Node.js brew install nodeThen verify the installation:
node --version npm --versionWindows Method 1: Using Official Installer
Visit the Node.js official website
Download the LTS (Long Term Support) version for Windows
Run the downloaded
.msiinstallerFollow the installation wizard
Open PowerShell and run the following commands to verify installation:
node --version npm --versionMethod 2: Using winget (Windows Package Manager) If you're using Windows 10 version 1809 or higher:
winget install OpenJS.NodeJS.LTSThen verify the installation:
node --version npm --versionMethod 3: Using Chocolatey If you have Chocolatey installed:
choco install nodejs-ltsThen verify the installation:
node --version npm --versionLinux Ubuntu/Debian
# Install Node.js 20.x (LTS) curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejsFedora/RHEL/CentOS
# Install Node.js 20.x (LTS) curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - sudo yum install -y nodejsVerify the installation:
node --version npm --version
Get ListenHub API Key
Get your API key from the ListenHub API Keys Settings page and use it as the value for the LISTENHUB_API_KEY environment variable.
Configuration Methods for Each Client
Claude Desktop Edit your Claude Desktop configuration file: macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.jsonAdd the following configuration:{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub.Cursor
Open Cursor Settings
Navigate to Features → Model Context Protocol
Click Add MCP Server or directly edit the configuration file Configuration file location:
macOS/Linux:
~/.cursor/mcp.jsonWindows:
%APPDATA%\Cursor\mcp.jsonAdd the following configuration:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub. Optional: HTTP Mode To use HTTP transport, manually start the server:export LISTENHUB_API_KEY="your_api_key_here" npx @marswave/listenhub-mcp-server --transport http --port 3000Then configure Cursor:
{ "mcpServers": { "listenhub": { "url": "http://localhost:3000/mcp" } } }Windsurf
Open Windsurf Settings
Navigate to the MCP Servers section
Add new server configuration Configuration file location:
macOS/Linux:
~/.windsurf/mcp_server_config.jsonWindows:
%APPDATA%\Windsurf\mcp_server_config.jsonAdd the following configuration:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub.VS Code (via Cline Extension)
Install the Cline Extension from VS Code Marketplace
Open VS Code Settings
Search for "Cline: MCP Settings"
Click "Edit in settings.json" Add the following configuration:
{ "cline.mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub.Zed Editor
Open Zed Settings
Navigate to the MCP section
Edit the configuration file Configuration file location:
macOS/Linux:
~/.config/zed/mcp.jsonWindows:
%APPDATA%\Zed\mcp.jsonAdd the following configuration:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub.Claude CLI Run the following command in your terminal:
claude mcp add listenhub --env LISTENHUB_API_KEY=<insert-your-api-key-here> -- npx -y @marswave/listenhub-mcp-serverReplace
<insert-your-api-key-here>with your actual API key obtained from ListenHub.Codex CLI Run the following command in your terminal:
codex mcp add listenhub --env LISTENHUB_API_KEY=<insert-your-api-key-here> -- npx -y @marswave/listenhub-mcp-serverReplace
<insert-your-api-key-here>with your actual API key obtained from ListenHub.ChatWise
Open ChatWise Settings, select MCP, click "+" to add a new MCP service
Fill in the following information in the MCP configuration module:
Command:
npx -y @marswave/listenhub-mcp-server@latestEnvironment Variables: Add
LISTENHUB_API_KEYwith your API key as the value
Enable the tool below the chat input box to start using it
Other MCP Clients For other MCP-compatible clients, use the standard MCP configuration format:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith your actual API key obtained from ListenHub.
Related MCP server: MCP Server Whisper
Usage Examples
Generate English Podcast

Core Features
Podcast Generation:
Support for full generation (text + audio) or text-only generation
Support for 1-2 speakers with customizable voices
Multiple generation modes: Quick Listen, Deep Exploration, Debate
Support for two-stage generation
Support for text and URL content sources
Query podcast generation status
Access audio files, titles, scripts, and outlines
Track credit consumption
FlowSpeech Voice Generation:
Convert written content from text or URLs into single-speaker conversational audio
Support for Smart mode (AI-enhanced reading) or Direct mode (verbatim reading)
Query FlowSpeech generation status
Access audio files, titles, scripts, and outlines
Track credit consumption
Speaker Management:
Browse available speakers/voice library
Filter by language and speaker attributes
Get speaker ID, name, language, gender, and demo audio
User Account Management:
Query subscription status and plan information
View credit usage: monthly credits, permanent credits, and limited-time credits
Monitor total available credits and renewal status
View subscription start/expiration dates
Multiple Transport Modes: Support for Stdio, HTTP SSE, and HTTP Streamable transport methods for flexible integration
Transport Modes
The server supports multiple transport modes to suit different use cases.
Stdio Mode (Default)
Standard input/output communication. This is the default mode used by most MCP clients (such as Claude Desktop, Cursor, etc.).
All configuration examples above use stdio mode by default, requiring no additional setup.
HTTP/SSE Mode
For advanced use cases, you can run the server in HTTP mode, providing both HTTP streaming and Server-Sent Events (SSE) endpoints.
Start the server in HTTP mode:
# macOS/Linux
export LISTENHUB_API_KEY="your_api_key_here"
npx @marswave/listenhub-mcp-server --transport http --port 3000
# Windows
set LISTENHUB_API_KEY=your_api_key_here
npx @marswave/listenhub-mcp-server --transport http --port 3000Available endpoints:
HTTP Streaming:
http://localhost:3000/mcpServer-Sent Events:
http://localhost:3000/sse
Configure your MCP client to use HTTP endpoint:
{
"mcpServers": {
"listenhub": {
"url": "http://localhost:3000/mcp"
}
}
}Available Tools
Speaker Query
get_speakers - Get a list of available speakers for podcast generation. Returns speaker ID, name, language, gender, and demo audio link.
language: Filter by language code (zh/en) (string, optional)
Podcast Generation
create_podcast - Create a podcast with full generation (text + audio). Supports 1-2 speakers. Automatically polls until completion (may take several minutes).
query: Content or topic (string, optional)sources: Array of text/URL sources (array, optional)speakerIds: Array of 1-2 speaker IDs (array, required)language: Language code - zh or en (string, optional, default: en)mode: Generation mode - quick, deep, or debate (string, optional, default: quick)
get_podcast_status - Query detailed information about a podcast. Returns current status immediately without polling.
episodeId: Podcast ID (string, required)
create_podcast_text_only - Create a podcast with text content only (no audio). First stage of two-stage generation.
query: Content or topic (string, optional)sources: Array of text/URL sources (array, optional)speakerIds: Array of 1-2 speaker IDs (array, required)language: Language code - zh or en (string, required)mode: Generation mode - quick, deep, or debate (string, optional, default: quick)waitForCompletion: Wait for generation to complete (boolean, optional, default: true)
generate_podcast_audio - Generate audio for a podcast with existing text content. Second stage of two-stage generation.
episodeId: Podcast ID (string, required)customScripts: Array of custom scripts (array, optional)waitForCompletion: Wait for generation to complete (boolean, optional, default: true)
FlowSpeech Generation
create_flowspeech - Convert text or URL content to speech, creating FlowSpeech. Supports Smart mode (AI-enhanced) and Direct mode (no modifications).
sourceType: Source type - text or url (string, required)sourceContent: Source content (text or URL) (string, required)speakerId: Speaker ID for narration (string, required)language: Language code - zh or en (string, optional)mode: Generation mode - smart or direct (string, optional, default: smart)
get_flowspeech_status - Query detailed information about FlowSpeech. Returns current status immediately without polling.
episodeId: FlowSpeech ID (string, required)
User Account Query
get_user_subscription - Get current user's subscription information, including subscription status, credit usage, plan details, and renewal status.
Thank you for using ListenHub MCP Server!
If you have any questions, please feel free to contact us: support@marswave.ai
Available Tools
8 toolscreate_flowspeechA
Create a FlowSpeech episode by converting text or URL content to speech. Supports smart mode (AI-enhanced, fixes grammar) and direct mode (no modifications). This tool will automatically poll until generation is complete.
Inputs: sourceType (required), sourceContent (required), speakerId (required), language, +1 more.
create_podcastA
Create a podcast episode with full generation (text + audio). Supports single-speaker (solo) or dual-speaker (dialogue) formats with 1-2 speakers (can use speaker names or IDs). Choose from 3 generation modes: quick (3-5 min podcast), deep (8-15 min podcast), or debate (5-10 min podcast). Accepts text or URL sources. This tool will automatically poll until generation is complete (may take several minutes).
Inputs: speakers (required), query, sources, language, +1 more.
create_podcast_text_onlyA
Create podcast episode with text content only (no audio generation). Supports single-speaker (solo) or dual-speaker (dialogue) formats with 1-2 speakers (can use speaker names or IDs). Choose from 3 generation modes: quick (3-5 min podcast), deep (8-15 min podcast), or debate (5-10 min podcast). This is the first stage of two-stage generation. After text generation completes, you can review the scripts. To use modified scripts, call generate_podcast_audio with customScripts parameter to override the generated scripts when generating audio.
Inputs: speakerIds (required), language (required), query, sources, +2 more.
generate_podcast_audioA
Generate audio for a podcast episode that already has text content. This is the second stage of two-stage generation. The episode must have contentStatus=text-success. You can optionally provide customScripts parameter to override the generated scripts when generating audio. NOTE: This is the ONLY way to use modified scripts - there is no separate tool to edit scripts after generation.
Inputs: episodeId (required), customScripts, waitForCompletion.
get_flowspeech_statusARead-only
Query detailed information of a FlowSpeech episode, including generation status, audio URLs, scripts, outline, and metadata. Does not poll - returns current status immediately.
Inputs: episodeId (required).
get_podcast_statusARead-only
Query detailed information of a podcast episode, including generation status, audio URLs, scripts, outline, and metadata. Does not poll - returns current status immediately.
Inputs: episodeId (required).
get_speakersARead-only
Get list of available published speakers for podcast generation. Supports filtering by language code (e.g. "zh", "en"). Returns speaker ID, name, language, gender and demo audio URL. Defaults to Chinese speakers if no language specified.
Inputs: language.
get_user_subscriptionARead-only
Get current user subscription information, including subscription status, credit usage, plan details, and renewal status.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Most tools have distinct purposes, but there is some overlap between create_podcast and create_podcast_text_only + generate_podcast_audio, as they both handle podcast creation with different workflows. The descriptions clarify the differences, but an agent might initially be confused about which to use for text-only vs. full generation.
All tool names follow a consistent verb_noun pattern with snake_case, such as create_flowspeech, get_podcast_status, and get_speakers. This predictability makes it easy for agents to understand and navigate the tool set without confusion.
With 8 tools, the server is well-scoped for its podcast and speech generation domain. The tools cover creation, status checking, resource management, and user information, providing a balanced set without being overwhelming or insufficient for the intended workflows.
The tool set offers strong coverage for podcast and FlowSpeech generation, including creation, status retrieval, and speaker management. However, there is a notable gap in editing capabilities, as noted that there is no separate tool to edit scripts after generation, which could limit agent flexibility in iterative workflows.
Maintenance
Related MCP Connectors
Manage Listenbox podcasts, episodes, collaborators, and RSS imports through your AI assistant.
Send web articles or AI-written text to your personal podcast feed; listen in any podcast app.
Turn articles, research reports and books into multi-voice podcast episodes in a private feed.
Create, import, and publish Jellypod podcast episodes from your AI assistant.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides high-quality text-to-speech synthesis with 10 natural voices, emotion control, and dynamic pacing for professional applications requiring expressive speech output.52MIT
- AlicenseBqualityDmaintenanceEnables advanced audio transcription, text-to-speech generation, and audio processing using OpenAI's Whisper and GPT-4o models with support for multiple audio formats, file management, and parallel processing.857 PyPI60MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage audio-story series: create, edit, narrate, publish, and generate marketing content like UGC videos and reels through a secure MCP endpoint.-
- AlicenseNot gradedqualityCmaintenanceEnables AI song generation, covers and remixes, stem separation, voice conversion, and audio editing directly within your music account.1MIT