PodcastIndex MCP Server
by cclawton
README.md
# PodcastIndex MCP Server
An MCP server for the PodcastIndex API. Gives AI agents native access to podcast search, discovery, episode lookup, trending feeds, and Value4Value monetisation data — so agents can research, cite, and reason about podcasts the same way they access any other tool. Built to work with Claude, Claude Code, and any MCP-aware agent.
## Features
- **25+ MCP Tools** covering all major PodcastIndex API endpoints
- **Search** - Find podcasts by term, title, or person (hosts/guests)
- **Podcasts** - Get details by feed ID, URL, iTunes ID, GUID, or browse trending/dead feeds
- **Episodes** - Fetch by feed, episode ID, GUID, or discover live/random episodes
- **Recent** - Get recently updated episodes, feeds, and new feeds
- **Value4Value** - Explore podcast monetization info (no auth required)
- **Stats & Categories** - Current index statistics and category listings
- **Hub Notifications** - PubSubHubbub notifications
## Quick Start
### Get API Credentials (Free)
1. Visit [https://api.podcastindex.org/](https://api.podcastindex.org/)
2. Create a free account
3. Generate your API Key and Secret
### Install for Claude Desktop
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"podcastindex": {
"command": "npx",
"args": ["-y", "github:cclawton/podcastindex-mcp-server"],
"env": {
"PODCASTINDEX_API_KEY": "your-api-key-here",
"PODCASTINDEX_API_SECRET": "your-api-secret-here"
}
}
}
}
```
This installs directly from GitHub - no npm registry needed.
Restart Claude Desktop after adding the configuration.
### Install from Source
```bash
# Clone the repository
git clone https://github.com/cclawton/podcastindex-mcp-server.git
cd podcastindex-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Set environment variables
export PODCASTINDEX_API_KEY="your-api-key"
export PODCASTINDEX_API_SECRET="your-api-secret"
# Run
npm start
```
For Claude Desktop with local installation:
```json
{
"mcpServers": {
"podcastindex": {
"command": "node",
"args": ["/path/to/podcastindex-mcp-server/dist/index.js"],
"env": {
"PODCASTINDEX_API_KEY": "your-api-key-here",
"PODCASTINDEX_API_SECRET": "your-api-secret-here"
}
}
}
}
```
## Available Tools
### Search Tools
| Tool | Description |
|------|-------------|
| `podcast_search_byterm` | Search podcasts across title, author, owner, and description |
| `podcast_search_bytitle` | Search podcasts by title only |
| `podcast_search_byperson` | Find episodes featuring a specific person |
| `podcast_search_music` | Search for music podcasts |
### Podcast Tools
| Tool | Description |
|------|-------------|
| `podcast_get_byfeedid` | Get podcast by PodcastIndex feed ID |
| `podcast_get_byfeedurl` | Get podcast by feed URL |
| `podcast_get_byitunesid` | Get podcast by iTunes/Apple Podcasts ID |
| `podcast_get_byguid` | Get podcast by GUID |
| `podcast_get_trending` | Get trending podcasts (filter by language/category) |
| `podcast_get_dead` | Get list of dead/inactive podcast feeds |
### Episode Tools
| Tool | Description |
|------|-------------|
| `episodes_get_byfeedid` | Get episodes by podcast feed ID |
| `episodes_get_byfeedurl` | Get episodes by podcast feed URL |
| `episodes_get_byid` | Get a single episode by ID |
| `episodes_get_byguid` | Get episode by GUID |
| `episodes_get_live` | Get currently live streaming episodes |
| `episodes_get_random` | Get random episodes |
### Recent Content Tools
| Tool | Description |
|------|-------------|
| `recent_episodes` | Get recently updated episodes |
| `recent_feeds` | Get recently updated podcast feeds |
| `recent_newfeeds` | Get newly added podcast feeds |
### Value4Value Tools (No Auth Required)
| Tool | Description |
|------|-------------|
| `value_get_byfeedid` | Get Value4Value info by feed ID |
| `value_get_byfeedurl` | Get Value4Value info by feed URL |
| `value_get_bypodcastguid` | Get Value4Value info by podcast GUID |
### Stats & Categories
| Tool | Description |
|------|-------------|
| `stats_current` | Get current PodcastIndex statistics |
| `categories_list` | List all podcast categories |
### Hub Notifications (No Auth Required)
| Tool | Description |
|------|-------------|
| `hub_pubnotify` | Send PubSubHubbub notification |
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `PODCASTINDEX_API_KEY` | Yes* | Your PodcastIndex API key |
| `PODCASTINDEX_API_SECRET` | Yes* | Your PodcastIndex API secret |
| `PODCASTINDEX_USER_AGENT` | No | Custom user agent (default: "PodcastIndexMCPServer/1.0.0") |
*Required for authenticated endpoints. Value4Value and Hub tools work without credentials.
## Example Usage in Claude
Once configured, you can ask Claude things like:
- "Search for podcasts about AI and machine learning"
- "What are the trending podcasts right now?"
- "Find episodes featuring Joe Rogan"
- "Get the Value4Value information for podcast ID 920666"
- "Show me recently updated podcast feeds"
- "What are all the podcast categories available?"
## Development
```bash
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Clean build artifacts
npm run clean
```
## Requirements
- Node.js 18.0.0 or higher
- npm 9.0.0 or higher
## Part of a connected stack
- [supervisor](https://github.com/cclawton/supervisor) — agentic systems architecture
- [bullpen](https://github.com/cclawton/bullpen) — content pipeline (podcast research use case)
- [hexapla](https://github.com/cclawton/hexapla) — AI evaluation
- [github.com/cclawton](https://github.com/cclawton) — profile
## License
MIT
## Links
- [PodcastIndex.org](https://podcastindex.org)
- [PodcastIndex API Documentation](https://podcastindex-org.github.io/docs-api/)
- [Get Free API Credentials](https://api.podcastindex.org/)
- [Model Context Protocol](https://modelcontextprotocol.io/)
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues