Podbean MCP Server for Podcast Episodes and Analytics
Manage podcasts, episodes, and analytics with a Podbean MCP server - update, add, delete shows, fetch descriptions, notes, and detailed analytics.
npx -y @amurshak/podbeanMCPOverview
This Podbean MCP (Model Context Protocol) server provides a developer-facing API for managing Podbean podcast shows, episodes, and analytics. It exposes endpoints to list, create, update, and delete shows and episodes, and to retrieve episode descriptions, timestamps/notes, and detailed listening analytics. The server is intended to act as a thin, structured layer that makes Podbean pod and analytics data easy to fetch and consume programmatically.
The server is useful when you need to integrate podcast content into tools such as episode search, ML-based summarization, content recommendation systems, or analytics dashboards. It standardizes common operations (CRUD for shows and episodes, analytics queries) and can be run locally, in containers, or as a backend service for integrations and agents that query podcast context.
Features
- Manage Podbean shows (create, update, delete, list)
- CRUD operations for episodes (add, update, delete, fetch)
- Fetch episode descriptions, show notes, and segment timestamps
- Retrieve analytics: plays, listeners, geographic and device breakdowns, time-series metrics
- Simple HTTP API suitable for automation, integrations, and ML contexts
- Configurable via environment variables and compatible with container deployment
- Support for exporting data to external dashboards or model context pipelines
Installation / Configuration
Basic steps to get the server running locally. Adjust for your environment and secrets management.
Clone the repository:
Install (Node.js/npm example — adapt if project uses a different runtime):
Create a .env file with required configuration. Common variables:
# Server
MCP_PORT=8080
# Podbean API credentials (or other upstream auth)
PODBEAN_CLIENT_ID=your_client_id
PODBEAN_CLIENT_SECRET=your_client_secret
PODBEAN_ACCESS_TOKEN=your_access_token
# Database (optional)
DATABASE_URL=postgres://user:pass@host:5432/dbname
Start the server:
# or, for development:
Run with Docker (example):
Available Resources
The server exposes a REST-style API. Below is a concise overview of common endpoints. Check the repository for the exact URL structure and any authentication headers required.
| Resource | Method | Description |
|---|---|---|
| /shows | GET | List all managed shows |
| /shows | POST | Create a new show entry |
| /shows/:id | GET | Get show details |
| /shows/:id | PUT | Update show metadata |
| /shows/:id | DELETE | Remove a show |
| /shows/:id/episodes | GET | List episodes for a show |
| /episodes | POST | Create an episode |
| /episodes/:id | GET | Fetch episode details (description, notes) |
| /episodes/:id | PUT | Update episode metadata |
| /episodes/:id | DELETE | Delete an episode |
| /analytics | GET | Top-level analytics (date ranges, filters) |
| /analytics/episodes/:id | GET | Episode-level analytics and time-series |
Authentication
- The MCP server typically requires upstream Podbean credentials (API key/secret) and may accept bearer tokens for protected endpoints. Use environment variables or a secrets manager to inject those values.
Example: fetch shows
Example: create episode
Use Cases
- Podcast CMS integrations: Automate episode creation and metadata updates from a content management system or publishing pipeline.
- Episode summarization: Pull full episode descriptions and timestamps to provide context to an NLP model for automated summarization or topic extraction.
- Analytics dashboards: Query aggregated and episode-level metrics to feed a time-series dashboard (plays per day, listener retention curves, top geographies/devices).
- Migration and backups: Export shows and episodes in structured JSON to migrate content between providers or to create offline backups.
- Personalized recommendations: Combine episode metadata and listening analytics to build recommendation models or to power “because you listened” features in apps.
Example scenario — generate summary snippets for an ML model:
- Fetch recent episode descriptions and timestamps:
- GET /episodes?showId=abc123&limit=10
- Send concatenated descriptions/timestamps to a summarization model, storing short summaries back in an episode metadata field using PUT /episodes/:id.
Notes and Next Steps
- Review the repository README for exact environment keys, authentication flows, and any setup for database migrations or external storage.
- Secure production deployments by using a secrets manager for API credentials, restricting network access, and enabling HTTPS.
- Extend or adapt the API as needed for additional Podbean endpoints, custom analytics, or model-specific context enrichment.