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.
- Node.js 18+
- A Pocket Casts account (email & password)
Run the server directly without installing anything locally:
npx pocketcasts-mcpAdd 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 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.
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.
Clone and build the server yourself:
git clone https://github.com/essoen/PocketCasts-mcp.git
cd PocketCasts-mcp
npm install
npm run build{
"mcpServers": {
"pocketcasts": {
"command": "node",
"args": ["/absolute/path/to/PocketCasts-mcp/dist/index.js"],
"env": {
"POCKETCASTS_EMAIL": "your@email.com",
"POCKETCASTS_PASSWORD": "your-password"
}
}
}
}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.jsAdd 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"
}
}
}
}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
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.
| 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 |
| Tool | Description |
|---|---|
get_subscriptions |
List all subscribed podcasts |
| 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) |
| 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 |
git clone https://github.com/essoen/PocketCasts-mcp.git
cd PocketCasts-mcp
npm install
npm run build
npm startThis 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.
MIT