Skip to main content
Glama
pocketcasts-mcp

pocketcasts-mcp

by essoen

Pocket Casts MCP Server

An MCP (Model Context Protocol) server that connects to the Pocket Casts podcast app, allowing AI assistants to search, browse, and manage your podcast library.

Note: This uses the unofficial Pocket Casts API. There is no official public API — this server relies on reverse-engineered endpoints used by community projects.

Prerequisites

  • Node.js 18+

  • A Pocket Casts account (email & password)

Related MCP server: Pocket Casts MCP Server

Installation

Remote (npx — no clone required)

Run the server directly without installing anything locally:

npx pocketcasts-mcp

Claude Desktop

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pocketcasts": {
      "command": "npx",
      "args": ["-y", "pocketcasts-mcp"],
      "env": {
        "POCKETCASTS_EMAIL": "your@email.com",
        "POCKETCASTS_PASSWORD": "your-password"
      }
    }
  }
}

Claude Code

claude mcp add pocketcasts \
  -e POCKETCASTS_EMAIL=your@email.com \
  -e POCKETCASTS_PASSWORD=your-password \
  -s user \
  -- npx -y pocketcasts-mcp

The -s user flag makes the server available across all your projects. Omit it to scope to the current project only.

Global install (alternative)

Install once, then reference the command directly:

npm install -g pocketcasts-mcp

Then use pocketcasts-mcp as the command instead of npx -y pocketcasts-mcp in the configs above.


Local (from source)

Clone and build the server yourself:

git clone https://github.com/essoen/PocketCasts-mcp.git
cd PocketCasts-mcp
npm install
npm run build

Claude Desktop

{
  "mcpServers": {
    "pocketcasts": {
      "command": "node",
      "args": ["/absolute/path/to/PocketCasts-mcp/dist/index.js"],
      "env": {
        "POCKETCASTS_EMAIL": "your@email.com",
        "POCKETCASTS_PASSWORD": "your-password"
      }
    }
  }
}

Claude Code

claude mcp add pocketcasts \
  -e POCKETCASTS_EMAIL=your@email.com \
  -e POCKETCASTS_PASSWORD=your-password \
  -s user \
  -- node /absolute/path/to/PocketCasts-mcp/dist/index.js

Cursor / VS Code

Add to .cursor/mcp.json or .vscode/mcp.json in your project:

{
  "mcpServers": {
    "pocketcasts": {
      "command": "node",
      "args": ["/absolute/path/to/PocketCasts-mcp/dist/index.js"],
      "env": {
        "POCKETCASTS_EMAIL": "your@email.com",
        "POCKETCASTS_PASSWORD": "your-password"
      }
    }
  }
}

Or with npx (no local clone needed):

{
  "mcpServers": {
    "pocketcasts": {
      "command": "npx",
      "args": ["-y", "pocketcasts-mcp"],
      "env": {
        "POCKETCASTS_EMAIL": "your@email.com",
        "POCKETCASTS_PASSWORD": "your-password"
      }
    }
  }
}

Configuration

The server requires two environment variables:

Variable

Description

POCKETCASTS_EMAIL

Your Pocket Casts account email

POCKETCASTS_PASSWORD

Your Pocket Casts account password

These can be set via:

  • The env block in your MCP client config (recommended)

  • Your shell profile (~/.bashrc, ~/.zshrc, etc.)

  • A .env file in your project (if your MCP client supports it)

Security: Never commit files containing your credentials to version control. If using a .env file, ensure it is listed in .gitignore. Avoid storing passwords in config files that may be synced or backed up to cloud services.

Available Tools

Discovery

Tool

Description

search_podcasts

Search for podcasts by keyword or title

get_top_charts

Get top-ranked podcasts

get_trending

Get currently trending podcasts

get_featured

Get featured podcasts

Library

Tool

Description

get_subscriptions

List all subscribed podcasts

Episodes

Tool

Description

get_podcast_episodes

List episodes for a podcast (sorted newest or oldest)

get_episode_notes

Get show notes for an episode

get_new_releases

Get new episodes from subscriptions

get_in_progress

Get partially-listened episodes

get_starred

Get starred/favorited episodes

get_history

Get listening history (most recent 100)

Playback Management

Tool

Description

update_playing_status

Mark episode as unplayed, in_progress, or completed

update_played_position

Set playback resume position (in seconds)

update_starred

Star or unstar an episode

Development

git clone https://github.com/essoen/PocketCasts-mcp.git
cd PocketCasts-mcp
npm install
npm run build
npm start

API Reference

This server uses the unofficial Pocket Casts API at api.pocketcasts.com. Endpoints were reverse-engineered by the community. See furgoose/Pocket-Casts for the original documentation.

License

MIT

Available Tools

14 tools
get_episode_notesB

Get show notes for an episode

Inputs: podcast_uuid (required), episode_uuid (required).

get_historyC

Get listening history

Inputs: limit, offset.

get_in_progressB

Get episodes that are partially listened to

Inputs: limit, offset.

get_new_releasesC

Get new episodes from subscribed podcasts

Inputs: limit, offset.

get_podcast_episodesB

List episodes for a specific podcast

Inputs: podcast_uuid (required), sort, limit, offset.

get_starredC

Get starred/favorited episodes

Inputs: limit, offset.

get_subscriptionsA

List all podcasts the user is subscribed to

Inputs: limit, offset.

get_top_chartsC

Get top-ranked podcasts

Inputs: limit, offset.

search_podcastsB

Search for podcasts by keyword or title

Inputs: query (required), limit, offset.

update_played_positionB

Set the playback position (in seconds) for an episode, used for resuming playback

Inputs: podcast_uuid (required), episode_uuid (required), position (required).

update_playing_statusA

Update the playing status of an episode (unplayed, in_progress, or completed)

Inputs: podcast_uuid (required), episode_uuid (required), status (required).

update_starredB

Star or unstar an episode

Inputs: podcast_uuid (required), episode_uuid (required), starred (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most tools have distinct purposes (e.g., get_featured vs get_top_charts vs get_trending), but there is minor overlap between get_new_releases and get_podcast_episodes, and between discovery tools. Descriptions help differentiate, but an agent might occasionally misselect.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (get_ or update_), with clear and predictable naming across the entire set.

    Tool Count5/5

    14 tools for a podcast management server cover discovery, subscriptions, history, and playback state. Each tool serves a distinct function, and the count is well-scoped for the domain.

    Completeness3/5

    The toolset covers browsing, listening history, and playback updates, but lacks subscription management (e.g., subscribe/unsubscribe) and episode-level search. These are notable gaps that may hinder some workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers