pocketcasts-mcp
Provides tools to search, browse, and manage your Pocket Casts podcast library, including searching podcasts, retrieving episodes, managing playback status, and more.
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., "@pocketcasts-mcp search for a podcast about science"
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.
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-mcpClaude Desktop
Add to your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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-mcpThe -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-mcpThen 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 buildClaude 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.jsCursor / 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 |
| Your Pocket Casts account email |
| Your Pocket Casts account password |
These can be set via:
The
envblock in your MCP client config (recommended)Your shell profile (
~/.bashrc,~/.zshrc, etc.)A
.envfile in your project (if your MCP client supports it)
Security: Never commit files containing your credentials to version control. If using a
.envfile, 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 for podcasts by keyword or title |
| Get top-ranked podcasts |
| Get currently trending podcasts |
| Get featured podcasts |
Library
Tool | Description |
| List all subscribed podcasts |
Episodes
Tool | Description |
| List episodes for a podcast (sorted newest or oldest) |
| Get show notes for an episode |
| Get new episodes from subscriptions |
| Get partially-listened episodes |
| Get starred/favorited episodes |
| Get listening history (most recent 100) |
Playback Management
Tool | Description |
| Mark episode as unplayed, in_progress, or completed |
| Set playback resume position (in seconds) |
| Star or unstar an episode |
Development
git clone https://github.com/essoen/PocketCasts-mcp.git
cd PocketCasts-mcp
npm install
npm run build
npm startAPI 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 toolsget_episode_notesB
Get show notes for an episode
Inputs: podcast_uuid (required), episode_uuid (required).
get_featuredC
Get featured podcasts
Inputs: limit, offset.
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.
get_trendingC
Get currently trending 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
Scored across 14 tools
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.
All tools follow a consistent verb_noun pattern (get_ or update_), with clear and predictable naming across the entire set.
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.
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
Related MCP Connectors
Create, import, and publish Jellypod podcast episodes from your AI assistant.
Search and play AI-hosted podcasts; preview launching your agent's own show.
Podcast knowledge for AI agents: search episodes, pull transcripts and ask questions.
Manage Listenbox podcasts, episodes, collaborators, and RSS imports through your AI assistant.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to control Spotify playback, search for music, manage playlists, and interact with your Spotify library through natural language commands.19-
- FlicenseNot gradedqualityDmaintenanceConnects AI assistants to Pocket Casts accounts for browsing subscriptions, reading episode details, and retrieving transcripts with automatic transcription via AssemblyAI when no native transcript exists.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Music Assistant for music search, library browsing, playback, queue management, and playlist curation.42 PyPI2MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to control Spotify playback, search the full catalog including podcasts and audiobooks, manage libraries and playlists, and understand listening taste.131158 npm1MIT