Listenhub MCP Guide
Complete integration guide covering client setup, examples, transport modes, and available tools.
ListenHub provides an official MCP Server for AI podcast generation (single host or dual host), FlowSpeech, and related capabilities. This server is available to users on Pro plan or above.
Quick Start
Environment Setup
Install Node.js first.
The MCP server requires Node.js 18 or newer. If Node.js is not installed yet, follow one of the options below.
-
macOS
Option 1: Official installer
- Visit the Node.js website and download an LTS release, for example v24.11.0 (LTS)
- Open the downloaded
.pkgfile and follow the installer - Verify installation in terminal:
node --version npm --versionOption 2: Homebrew
If Homebrew is not installed, install it with:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Then install Node.js:
brew install nodeVerify installation:
node --version npm --version -
Windows
Option 1: Official installer
- Visit the Node.js website
- Download the Windows LTS version
- Run the downloaded
.msiinstaller - Follow the setup wizard
- Verify installation in PowerShell:
node --version npm --versionOption 2: winget
For Windows 10 version 1809 or newer:
winget install OpenJS.NodeJS.LTSVerify installation:
node --version npm --versionOption 3: Chocolatey
If Chocolatey is available:
choco install nodejs-ltsVerify installation:
node --version npm --version -
Linux
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 installation:
node --version npm --version
Get ListenHub API Key.
Create or view the API key from the ListenHub API Key settings page, then set it as environment variable LISTENHUB_API_KEY.
Client Configuration Methods
-
Claude Desktop
Edit Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\\Claude\\claude_desktop_config.jsonAdd:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith the real API key. -
Cursor
- Open Cursor Settings
- Navigate to Features -> Model Context Protocol
- Click Add MCP Server or edit config file directly
Config file location:
- macOS/Linux:
~/.cursor/mcp.json - Windows:
%APPDATA%\\Cursor\\mcp.json
Add:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith the real API key.Optional: HTTP transport mode
Start server manually:
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 MCP Servers
- Add a new server config
Config file location:
- macOS/Linux:
~/.windsurf/mcp_server_config.json - Windows:
%APPDATA%\\Windsurf\\mcp_server_config.json
Add:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith the real API key. -
VS Code (with Cline extension)
- Install Cline extension from VS Code Marketplace
- Open VS Code Settings
- Search for
Cline: MCP Settings - Click
Edit in settings.json
Add:
{ "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 the real API key. -
Zed
- Open Zed Settings
- Go to MCP section
- Edit config file
Config file location:
- macOS/Linux:
~/.config/zed/mcp.json - Windows:
%APPDATA%\\Zed\\mcp.json
Add:
{ "mcpServers": { "listenhub": { "command": "npx", "args": ["-y", "@marswave/listenhub-mcp-server@latest"], "env": { "LISTENHUB_API_KEY": "your_api_key_here" } } } }Replace
your_api_key_herewith the real API key. -
Claude CLI
Run in 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 the real API key. -
Codex CLI
Run in 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 the real API key. -
ChatWise
- Open ChatWise settings, choose MCP, and click
+to add a new MCP service - Fill in MCP config fields:

- Command:
npx -y @marswave/listenhub-mcp-server@latest - Enable Run tools automatically
- Add environment variable
LISTENHUB_API_KEYwith your key value
- Enable tools from the chat input area and start using them
- Open ChatWise settings, choose MCP, and click
-
Other MCP clients
For other MCP-compatible clients, use the standard MCP 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 the real API key.
Usage Examples
Generate a Chinese podcast:

Generate an English podcast:

Core Capabilities
-
Podcast generation
- Supports full generation (text + audio) or text-only generation
- Supports 1 to 2 speakers with customizable voices
- Provides multiple generation modes: quick, deep, and debate
- Supports script-first generation flow (text then audio)
- Accepts text and URL as content sources
- Supports podcast status querying
- Returns audio file, title, scripts, outline, and related metadata
- Tracks credit usage
-
FlowSpeech generation
- Converts text or URL content into conversational single-speaker audio
- Supports smart mode (AI-enhanced narration) and direct mode (verbatim reading)
- Supports FlowSpeech status querying
- Returns audio file, title, scripts, outline, and related metadata
- Tracks credit usage
-
Voice management
- Browse available voices library
- Filter by language and voice attributes
- Retrieve voice ID, name, language, gender, and demo audio
-
User account information
- Check subscription status and plan details
- View credit usage by monthly, permanent, and limited-time credits
- Monitor total available credits and renewal status
- View subscription start and expiration dates
-
Multiple transports
- Supports Stdio, HTTP SSE, and HTTP Streamable transport for flexible integration
Transport Modes
The server supports multiple transport modes for different integration scenarios.
Stdio Mode (Default)
Standard input and output communication. This is the default mode used by most MCP clients, including Claude Desktop and Cursor.
All configuration samples above use Stdio mode by default and require no extra settings.
HTTP/SSE Mode
For advanced scenarios, run the server in HTTP mode to expose both HTTP stream and Server-Sent Events (SSE) endpoints.
Start 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 stream:
http://localhost:3000/mcp - Server-Sent Events:
http://localhost:3000/sse
Configure MCP client to use HTTP endpoint:
{
"mcpServers": {
"listenhub": {
"url": "http://localhost:3000/mcp"
}
}
}Available Tools
Speaker Lookup
- get_speakers - Returns available speakers for podcast generation, including voice ID, name, language, gender, and demo audio link.
language: filter by language code (zhoren) (string, optional)
Podcast Generation
-
create_podcast - Creates a full podcast (text + audio). Supports 1 to 2 speakers. Automatically polls until completion, which can take several minutes.
query: topic or content prompt (string, optional)sources: array of text/URL sources (array, optional)speakerIds: 1 to 2 speaker IDs (array, required)language: language codezhoren(string, optional, default:en)mode: generation modequick,deep, ordebate(string, optional, default:quick)
-
get_podcast_status - Returns current podcast details immediately without polling.
episodeId: podcast episode ID (string, required)
-
create_podcast_text_only - Creates a text-only podcast as the first phase of the script-first workflow.
query: topic or content prompt (string, optional)sources: array of text/URL sources (array, optional)speakerIds: 1 to 2 speaker IDs (array, required)language: language codezhoren(string, required)mode: generation modequick,deep, ordebate(string, optional, default:quick)waitForCompletion: wait until text generation completes (boolean, optional, default:true)
-
generate_podcast_audio - Generates audio for an existing text-only podcast as the second phase of the script-first workflow.
episodeId: podcast episode ID (string, required)customScripts: custom scripts array (array, optional)waitForCompletion: wait until audio generation completes (boolean, optional, default:true)
FlowSpeech Generation
-
create_flowspeech - Creates FlowSpeech from text or URL content. Supports smart mode (AI enhancement) and direct mode (no content modification).
sourceType: source typetextorurl(string, required)sourceContent: source content (text or URL) (string, required)speakerId: narration speaker ID (string, required)language: language codezhoren(string, optional)mode: generation modesmartordirect(string, optional, default:smart)
-
get_flowspeech_status - Returns current FlowSpeech details immediately without polling.
episodeId: FlowSpeech episode ID (string, required)
User Subscription Lookup
- get_user_subscription - Returns current user subscription information, including status, credit usage, plan details, and renewal status.
Thanks for using ListenHub MCP Server.
For support, contact: support@marswave.ai