Atlas / MCP servers / thenavidm / podcastindex-mcp-cli

podcastindex-mcp-cliBLOCK

mcp/thenavidm/podcastindex-mcp-cli

Podcast Index MCP server and CLI for Claude Code, Codex and AI agents. 36 tools for podcast search, episode transcripts you can actually read and search, Podcasting 2.0 tags, value-for-value data, feed health and index stats.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
21 20r · 1w · 0d
Transport
—
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/thenavidm/podcastindex-mcp-cli) [](./LICENSE) [](https://www.npmjs.com/package/@thenavidm/podcastindex-mcp-cli) [](https://www.npmjs.com/package/@thenavidm/podcastindex-mcp-cli) [](https://youtube.com/@thenavidm?sub_confirmation=1) [](https://x.com/thenavidm) [](https://linkedin.com/in/thenavidm)

Podcast Index MCP server and CLI for Claude Code, Codex and AI agents. 36 tools for podcast search, episode transcripts you can actually read and search, Podcasting 2.0 tags, value-for-value data, feed health and index stats.

One install gives you both surfaces, the same 36 tools under the same names, reading one array of tool definitions so they cannot drift apart.

It searches four million podcasts, and then it does the thing the API stops short of: it opens the transcript. Podcast Index hands out a link to an episode's transcript file and goes no further, which is useless to an assistant that cannot click. This fetches the file, works out whether it is SRT, WebVTT, JSON or HTML, and gives you the actual words with timestamps and speakers.

So you can ask when something was said, and get an answer.

There are 36 tools. One free key covers all but two of them.

Built by [Navid Moazzez](https://navid.me?utm_source=github&

Read from source at commit 7577f597fec4OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add podcastindex-mcp-cli -- npx -y @thenavidm/[email protected]
claude-desktop
{
  "mcpServers": {
    "podcastindex-mcp-cli": {
      "command": "npx",
      "args": [
        "-y",
        "@thenavidm/[email protected]"
      ]
    }
  }
}
03

Exposed tools (21)

20 read · 1 write · 0 destructive.

ToolRiskDescription
check_feed_healthreadDiagnose a podcast feed using the crawl history Podcast Index keeps on it: failed fetches, parse errors, the last HTTP status, when it was last successfully read, and whether the index has marked it dead or as a duplicate of another feed. This answers
episode-deep-readreadActually read an episode: chapters, transcript, and what was said
feed-checkupreadCheck a podcast feed before it costs you listeners
find_guest_appearancesreadEvery episode a named person is credited on, grouped by show and ordered newest first, with their role on each. This is guest research: it answers
find_transcriptsreadScan a show
get_live_episodesreadEpisodes currently marked live across the whole index, from the Podcasting 2.0 liveItem tag. This is a small and fast-moving list: live podcasting is a niche within the index, so a handful of results is normal and an empty one is possible. Each entry carries a start time, an end time and a status.
get_new_feedsreadShows added to Podcast Index for the first time, newest first. This is genuinely new podcasts rather than new episodes, which makes it the tool for spotting a launch. Expect a lot of noise: anyone can submit a feed, so a large share of these are empty, abandoned or automated.
get_new_value_feedsreadFeeds that added a value block recently. This is the growth edge of value-for-value podcasting: shows adopting listener payments for the first time, newest first.
get_random_episodesreadRandom episodes from across the index, optionally filtered by language and category. Genuinely random rather than ranked, which makes it useful for sampling what a category actually contains rather than what its top shows look like. Never cached, so calling it again gives different episodes.
get_recent_feedsreadFeeds that published something recently, newest activity first. This tracks updates rather than new shows, so an established podcast releasing an episode appears here. Use get_new_feeds for shows that are new to the index.
get_recent_soundbitesreadThe newest soundbites across the whole index: clips publishers themselves marked as the best moment of an episode. A ready-made feed of what podcasters think is worth quoting this week, and a fast way to find shows that use Podcasting 2.0 tags properly.
get_trendingreadShows trending in the index right now, which is Podcast Index
guest-researchreadResearch a podcast guest before booking or pitching
list_categoriesreadEvery category Podcast Index uses, with its numeric id. Worth calling once before filtering anything by category, because several tools accept either the name or the id and the names are not the same as Apple
list_value_podcastsreadEvery feed in the index carrying a value block, paged. This is the whole value-for-value corner of podcasting as a list, which is useful for sizing it or for finding shows that have opted into direct listener payment. Use start_at to page: the list is large.
pitch-listreadBuild a list of podcasts worth pitching
search_musicreadSearch feeds whose medium is music rather than talk. Podcast Index carries music as a separate medium under the Podcasting 2.0 spec, and those feeds are albums and tracks rather than episodes. Use this for music discovery; a normal podcast search will not surface them well.
search_podcasts_by_titlereadSearch shows by title alone, ignoring author and owner. Use this when you know roughly what a show is called and a general search returned a wall of shows that merely mention the words. Much more precise than search_podcasts for a known name, and much worse for a topic.
search_transcriptreadSearch inside an episode
statusreadReport whether the Podcast Index credentials are configured and working, how far this machine
submit_feed_by_itunes_idwriteAdd a podcast to Podcast Index using its iTunes id, for when you have an Apple Podcasts link but not the RSS URL. Same effect and same caveats as submit_feed: it writes to a public directory, it cannot be undone through this API, it requires confirm: true, and it needs a key with write permission.
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (6 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (10)

HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
src/doctor.ts:63
fix: 'Fix the clock rather than the credentials: enable automatic time sync in system settings, or run "sudo sntp -sS time.apple.com" on macOS.',
Why it matters. asks for elevated privileges
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
Dockerfile:36
CMD node -e "fetch('http://127.0.0.1:8000/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/api/transcripts.ts:140
const normalized = body.replace(/\r\n?/g, "\n").replace(/^/, "");
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/api/http.ts:70
const authorization = createHash("sha1").update(`${apiKey}${apiSecret}${date}`).digest("hex");
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
tests/auth.test.ts:20
const expected = createHash("sha1").update("KEYSECRET1600000000").digest("hex");
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@thenavidm/slipway, zod, @types/node, typescript, vitest
Why it matters. 5 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.override · CWE-94, CWE-1427
SECURITY.md:52
Anybody who can publish a podcast can put "ignore your previous instructions"
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:31
Node 22 or newer; 1.1 ran on 20. Scripts keep working for success, a refused submit, missing credentials, a rejected key, a rate limit and a show that is not in the index; one that read exit 1 as an u
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOPrompt injection · scope.undeclared_system · CWE-94, CWE-1427
<declared scope>
system use found in code, not declared in the description
Why it matters. the description does not admit a capability the code has
Fix. declare system use in the description, or remove it

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 7577f597fec4full audit observations/trust-audit/mcp-server/thenavidm__podcastindex-mcp-cli.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-117577f597fec4BLOCKD69first audit
06

Questions

What is the podcastindex-mcp-cli MCP server?

Podcast Index MCP server and CLI for Claude Code, Codex and AI agents. 36 tools for podcast search, episode transcripts you can actually read and search, Podcasting 2.0 tags, value-for-value data, feed health and index stats.

What tools does podcastindex-mcp-cli expose?

21 in total: 20 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is podcastindex-mcp-cli safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does podcastindex-mcp-cli need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (7577f597fec4), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement