Podcast MCP
Click on "Install 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., "@Podcast MCPTurn this interview script into an MP3 podcast using host and guest voices."
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.
Podcast MCP
A lightweight MCP server that turns a podcast script into a finished MP3,
designed to run on Render Free. Two CPU-only TTS engines, switched with TTS_ENGINE:
kitten(default) — KittenTTS Nano (15M params, ~56 MB). Small and fast — the safe choice for the free 512MB instance.kokoro(opt-in) — Kokoro-82M via ONNX (int8 ~114 MB). Much more natural voices, but heavier on RAM — use it if you upgrade the instance (or test whether int8 squeezes into free).
The reasoning stays in your main app; this service only does audio:
Report App (its own LLM)
↓ report → HOST/GUEST dialogue script
Podcast MCP on Render
↓ 1. parse script into speaker turns
↓ 2. split turns into TTS-safe chunks
↓ 3. KittenTTS generates host + guest audio
↓ 4. merge with natural pauses → MP3
↓ 5. serve file at /audio/<name>.mp3
returns audio_url
↓
Report App shows audio playerEndpoints
Path | What |
| MCP streamable-HTTP endpoint (stateless, JSON responses) |
| Health check (used by Render) |
| Serves generated MP3/WAV files |
Related MCP server: mcp-podcast-generator
MCP tools
generate_podcast_from_script
generate_podcast_from_script(
script: str, # "HOST: ...\nGUEST: ..." (any speaker labels work)
title: str = "",
host_voice: str = "", # empty = engine default (kokoro: am_michael, kitten: Jasper)
guest_voice: str = "", # empty = engine default (kokoro: af_heart, kitten: Bella)
speed: float = 1.0,
)Returns:
{
"success": true,
"type": "podcast",
"title": "Q2 Business Review",
"audio_url": "https://podcast-mcp.onrender.com/audio/q2-business-review-a1b2c3d4.mp3",
"duration_seconds": 312.4,
"turns": 14,
"voices": {"HOST": "Jasper", "GUEST": "Bella"}
}Script format (markdown decoration and [cues] are tolerated; unlabeled lines
continue the previous speaker):
HOST: Welcome back to the show. Today we're looking at the Q2 results.
GUEST: Thanks for having me. The headline: revenue grew 18 percent.
HOST: Let's break that down...text_to_speech
text_to_speech(text: str, voice: str = "", speed: float = 1.0, format: str = "mp3")list_voices
Returns the active engine, its voices, and the current defaults.
kokoro: 27 English voices —
af_*/am_*American female/male,bf_*/bm_*British (e.g.af_heart,af_bella,am_michael,am_adam,bf_emma,bm_george).kitten:
Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo.
Calling it from your report app
With the official Python MCP client:
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def make_podcast(script: str, title: str) -> str:
async with streamablehttp_client("https://podcast-mcp.onrender.com/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"generate_podcast_from_script",
{"script": script, "title": title},
)
return result.structuredContent["audio_url"]Or add it to any MCP-capable agent as a remote server with URL
https://<your-service>.onrender.com/mcp.
Deploy on Render (free)
Push this repo to GitHub.
In Render: New → Blueprint, pick the repo — render.yaml provisions a free Docker web service with
/healthchecks.Done.
RENDER_EXTERNAL_URLis used automatically to buildaudio_urls (override withPUBLIC_BASE_URLif you put a domain in front).
Notes for the free tier:
First boot downloads the model into
/tmp(~56 MB for kitten, ~142 MB for kokoro int8) in a background preload, so the service is healthy immediately; the first tool call may wait on it.The instance sleeps after idle; the first request after a sleep takes ~1 min plus the model re-download (the disk is wiped on sleep/restart).
Want better voices? Set
TTS_ENGINE=kokoroin the Render dashboard. If the 512 MB instance then hits out-of-memory, switch back tokitten.Audio files live on ephemeral disk and are deleted after
AUDIO_TTL_HOURS(24h default) or on restart — have your app fetch/cache the MP3 promptly if it must keep it.
Configuration (env vars)
Var | Default | Purpose |
|
|
|
|
|
|
|
| Where Kokoro model files are cached |
|
| Full-precision nano (~56MB). The |
| engine defaults | Override default voices |
|
| Base for returned |
|
| Where files are written |
|
| Delete generated files older than this |
|
| Reject oversized scripts |
|
| Load the model in the background at boot |
Run locally
Works with plain pip on Windows/Mac/Linux (KittenTTS 0.8.1 bundles espeak via
espeakng-loader, no system packages needed):
pip install -r requirements.txtpython server.pyThen the MCP endpoint is http://localhost:8000/mcp. Or with Docker (same image Render uses):
docker build -t podcast-mcp .docker run -p 8000:8000 podcast-mcpPure-logic tests (no model needed):
python test_logic.pyThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables text-to-speech synthesis using VOICEPEAK software with support for custom narrators, emotions, and pronunciation dictionaries. Allows generating and playing audio files from text with configurable voice parameters.296MIT
- FlicenseNot gradedqualityDmaintenanceGenerates podcast audio from scripts using Google Gemini TTS, supporting single-host monologue and dual-host dialogue with optional intro/outro music and EBU R128 loudness normalization.
- FlicenseAqualityCmaintenanceEnables text-to-speech conversion using Google Translate's TTS, supporting many languages and accents, and saving MP3 files.2
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to speak aloud by generating and playing audio through the system output. Supports multiple TTS providers, playback queue management, and configurable voice profiles.141MIT
Related MCP Connectors
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
Generate images, video, music and voice from your CLI or AI agent. On-brand AI media toolkit.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vivekprojects-GIT/Podcast_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server