Skip to main content
Glama

PodHome MCP Server

MCP server for the Podhome Integration API with multi-show support.

Installation

cd podhome-mcp
uv sync

Related MCP server: Podbean MCP Server

Configuration

Set the following environment variables:

  • PODHOME_BASE_URL - Base URL for the API (default: https://serve.podhome.fm)

  • PODHOME_SHOWS - JSON string mapping show slugs to API keys

Example:

export PODHOME_SHOWS='{"my-main-podcast": "phk_abc123...", "weekly-tech-show": "phk_xyz789..."}'

Usage

uv run podhome-mcp

The server runs over stdio and is designed to be used with an MCP client like OpenClaw.

OpenClaw Registration

{
  "agents": {
    "main": {
      "mcpServers": {
        "podhome": {
          "command": "uv",
          "args": ["run", "--directory", "/absolute/path/to/podhome-mcp", "podhome-mcp"],
          "env": {
            "PODHOME_BASE_URL": "https://serve.podhome.fm",
            "PODHOME_SHOWS": "{\"my-main-podcast\": \"phk_abc123def456...\", \"weekly-tech-show\": \"phk_789xyz...\"}"
          }
        }
      }
    }
  }
}

Tools

Episodes

  • create_episode - Create a new episode for a specific show

  • list_episodes - List episodes for a specific show (with optional filters)

  • schedule_episode - Schedule or publish an episode

  • modify_episode - Modify an episode's metadata

Clips

  • create_clip - Create a clip (soundbite) from an episode

Webhooks

  • list_webhooks - List all registered webhooks

  • register_webhook - Register a new webhook

  • delete_webhook - Delete a webhook

  • test_webhook - Test webhooks

Utility

  • list_shows - List all configured show slugs

Development

# Install dev dependencies
uv sync --group dev

# Run tests
pytest

# Type check
mypy src/podhome_mcp

# Lint
ruff check src/podhome_mcp

Available Tools

10 tools
create_clipB

Create a clip (soundbite) from an episode.

Args: show: One of the slugs configured in PODHOME_SHOWS episode_id: ID of the episode to clip title: Title of the clip start_time: Start time in seconds (can be fractional) duration: Duration in seconds (can be fractional)

Inputs: show (required), episode_id (required), title (required), start_time (required), +1 more. Returns: result

create_episodeA

Create a new episode for a specific show.

Args: show: One of the slugs configured in PODHOME_SHOWS (e.g., "my-main-podcast") file_url: Publicly accessible URL to the media file title: Episode title description: Optional episode description (can contain HTML) link: Optional canonical link for the episode publish_date: UTC ISO-8601 future date to schedule publishing use_podhome_ai: Run Podhome AI to generate transcript and artifacts suggest_chapters: Generate chapters (requires use_podhome_ai=true) suggest_details: Generate description and title suggestions suggest_clips: Generate clips (requires use_podhome_ai=true) enhance_audio: Run audio enhancement (paid feature)

Inputs: show (required), file_url (required), title (required), description, +7 more. Returns: result

delete_webhookC

Delete a webhook.

Args: show: One of the slugs configured in PODHOME_SHOWS integration_id: The ID of the webhook to delete

Inputs: show (required), integration_id (required). Returns: result

list_episodesC

List episodes for a specific show.

Args: show: One of the slugs configured in PODHOME_SHOWS status: Optional status filter (0-5) include_transcript: Include transcript in response include_chapters: Include chapters in response include_downloads: Include download counts include_people: Include people in response

Inputs: show (required), status, include_transcript, include_chapters, +2 more. Returns: result

list_showsB

List all configured Podhome show slugs.

Inputs: no named parameters. Returns: result

list_webhooksB

List all registered webhooks for a specific show.

Args: show: One of the slugs configured in PODHOME_SHOWS

Inputs: show (required). Returns: result

modify_episodeC

Modify an episode's metadata.

Args: show: One of the slugs configured in PODHOME_SHOWS episode_id: ID of the episode to modify title: New episode title description: New description (can contain HTML) episode_nr: Episode number season_nr: Season number image_url: Image URL image_data: Base64 encoded image data

Inputs: show (required), episode_id (required), title, description, +4 more. Returns: result

register_webhookB

Register a new webhook.

Args: show: One of the slugs configured in PODHOME_SHOWS url: Webhook endpoint URL action_type: Action type - "episode_published" or "episode_live"

Inputs: show (required), url (required), action_type (required). Returns: result

schedule_episodeB

Schedule or publish an episode.

Args: show: One of the slugs configured in PODHOME_SHOWS episode_id: The ID of the episode to schedule publish_now: Publish immediately publish_date: Future UTC ISO-8601 publish date

Inputs: show (required), episode_id (required), publish_now, publish_date. Returns: result

test_webhookC

Test webhooks. Your webhook is called with data from the latest published or live episode.

Args: show: One of the slugs configured in PODHOME_SHOWS integration_id: Optional specific webhook ID to test

Inputs: show (required), integration_id. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting specific resources and actions: create_clip, create_episode, delete_webhook, list_episodes, list_shows, list_webhooks, modify_episode, register_webhook, schedule_episode, and test_webhook. There is no overlap in functionality, making tool selection unambiguous for an agent.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., create_clip, list_episodes, modify_episode) with clear, descriptive verbs and nouns. There are no deviations in naming conventions, making the set predictable and easy to understand.

    Tool Count5/5

    With 10 tools, the count is well-scoped for podcast management, covering key operations like episode and clip creation, listing, modification, scheduling, and webhook handling. Each tool serves a distinct and necessary function without redundancy or bloat.

    Completeness4/5

    The tool set provides comprehensive coverage for podcast management, including CRUD operations for episodes and webhooks, plus scheduling and AI features. A minor gap is the lack of a delete_episode tool, but agents can work around this using modify_episode or other methods, and core workflows are well-supported.

    Related MCP Connectors

    Related MCP Servers