Podcast Index MCP Server

io.github.conorbronsdonPublished by GitHub account conorbronsdonv0.3.0Updated Oct 24, 2026

Search the Podcast Index: podcasts, episodes, person appearances, trending, feed health.

VerifiedSTDIODesktop onlyWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

Lets an assistant search the Podcast Index for podcasts, episodes, guest appearances, trending shows, and feed health.

What you can do
Wraps the Podcast Index API in read-only tools. It searches episodes by person, term, or title; looks up podcasts by feed URL, feed ID, iTunes ID, or podcast:guid; and returns episodes, live streams, recent releases, trending shows, categories, and index statistics. It also reports value4value lightning payment info and feed health metadata.
When to use it
Useful for podcast research and production work: finding where a guest appeared, checking a show's feed health, tracking trends, or pulling episode lists for a specific feed.
Requirements
Runs locally over stdio as an npm package (npx podcastindex-mcp) and needs Node.js 18+. Requires a free Podcast Index API key and secret, supplied as the environment variables PODCASTINDEX_API_KEY and PODCASTINDEX_API_SECRET. Network access to the Podcast Index API is needed.
Before you install
The API key and secret are stored in the client configuration file, so protect that file. All tools are declared read-only and do not modify data. Queries are sent to the third-party Podcast Index API. The README notes demo results are sample data, not real API responses.

Installation

In SourceWeft

  1. Open Podcast Index MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Podcast Index MCP Server

Connect Claude to the Podcast Index API. Search podcasts, track appearances, monitor trends.

[GitHub stars] [License: MIT] [npm version] [Podcast] [X]


[Demo: search_by_person tool call and response]

The results shown in the demo above are sample data, not real Podcast Index responses.

[podcastindex-mcp MCP server]

About

Built and maintained by Conor Bronsdon for the Chain of Thought podcast production workflow, where it surfaces guest appearances and checks feed health during research. Conor hosts Chain of Thought, a show about AI infrastructure and how practitioners actually build with it. More tools for creators live in ai-tools-for-creators. Find Conor on X at @ConorBronsdon.

Companion tools:

  • Transistor MCP: Transistor.fm's official MCP server. Episodes, publishing, and analytics.
  • substack-mcp: read posts and manage Substack drafts
  • op3-mcp: report downloads, listener geography, and apps from OP3
  • apple-podcasts-mcp: pull plays, followers, and per-episode listening from Apple Podcasts Connect
  • gsc-mcp: query search performance, keywords, and sitemaps in Google Search Console
  • podcast-benchmark: benchmark a show against its peers using only public data

Prerequisites

Installation

bash
git clone https://github.com/conorbronsdon/podcastindex-mcp.gitcd podcastindex-mcpnpm installnpm run build

Configuration

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

json
{  "mcpServers": {    "podcastindex": {      "command": "node",      "args": ["/path/to/podcastindex-mcp/build/index.js"],      "env": {        "PODCASTINDEX_API_KEY": "your-api-key",        "PODCASTINDEX_API_SECRET": "your-api-secret"      }    }  }}

Claude Code

Add to your project's .mcp.json:

json
{  "mcpServers": {    "podcastindex": {      "command": "node",      "args": ["/path/to/podcastindex-mcp/build/index.js"],      "env": {        "PODCASTINDEX_API_KEY": "your-api-key",        "PODCASTINDEX_API_SECRET": "your-api-secret"      }    }  }}

Tools

This server is entirely read-only: every tool declares the MCP tool annotation readOnlyHint: true, so clients know no call mutates anything and can skip write-consent prompts.

ToolDescription
search_by_personSearch for episodes where a person appeared as host or guest. Returns matches across all indexed podcasts.
search_by_termFull-text search across all podcasts by topic, show name, or keyword.
search_by_titleSearch for podcasts by title.
podcast_by_feed_urlLook up a podcast by RSS feed URL. Returns feed ID, iTunes ID, categories, last update, and feed health.
podcast_by_feed_idLook up a podcast by its Podcast Index feed ID. Returns full metadata.
podcast_by_itunes_idLook up a podcast by its Apple Podcasts (iTunes) ID.
podcast_by_guidLook up a podcast by its podcast:guid tag value.
trending_podcastsGet currently trending podcasts, with optional language and category filters.
episodes_by_feed_idGet episodes for a specific podcast by feed ID.
episode_by_idLook up a single episode by its Podcast Index episode ID.
episodes_liveGet episodes that are currently live (actively streaming).
recent_episodesGet the most recently published episodes across the entire index.
recent_feedsGet the most recently updated podcast feeds across the index.
recent_new_feedsGet podcast feeds newly added to the index.
value_by_feed_idGet value4value (lightning payment) info for a podcast by feed ID.
value_by_feed_urlGet value4value (lightning payment) info for a podcast by feed URL.
categories_listGet the full list of Podcast Index categories and their IDs.
stats_currentGet current aggregate statistics for the Podcast Index.

Typed errors

API failures are mapped to a typed error hierarchy (PodcastIndexError base, with AuthenticationError, RateLimitError, ValidationError, NotFoundError, and ServerError subclasses keyed off HTTP status) in src/errors.ts. Every tool call still returns the same isError: true response shape on failure — the typed hierarchy just makes the message specific to what went wrong (bad credentials vs. rate limiting vs. a malformed request, etc.) instead of a single generic "API error" string.

Example Prompts

Once configured, you can ask Claude things like:

  • "Search Podcast Index for all episodes featuring Satya Nadella as a guest"
  • "What are the trending technology podcasts right now?"
  • "Look up the feed health for https://feeds.transistor.fm/chain-of-thought and list the last 5 episodes"

Development

Build the project:

bash
npm run build

Watch for changes during development:

bash
npm run watch

Adding a new tool

  1. Add the API method to src/api-client.ts
  2. Add type guard and argument types to src/types.ts
  3. Add the tool definition and handler to src/tool-handlers.ts
  4. Rebuild with npm run build

Contributing

Issues and pull requests are welcome. If there is a Podcast Index endpoint you want exposed as a tool, open an issue describing the use case, or follow the steps above and open a PR. Bug reports should include the tool name and the arguments you passed.

Acknowledgments

This server exists because of the free, open Podcast Index API and its documentation — all tools here are thin wrappers over that API.

The expanded endpoint coverage and typed-error design in this release were inspired by Craig Lawton's podcastindex-mcp-server, an earlier MCP server for the same API. No code from that project was used here; this server's implementation, tool schemas, and error-handling code were written independently against the official API docs.


Disclaimer

This is an independent personal project, not affiliated with, sponsored by, or endorsed by any company. All views expressed are my own.

License

MIT

Source: README.md at commit eaf27a4

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts