Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Pod Researcher

NPM · @PIPEWORX/MCP-POD-RESEARCHER · 2 COMPONENTS

pod-researcher — podcast prospecting for guest booking and sponsorship.

+3 this week 82 Trust /100

Last scanned (2 hours ago)

Scores higher than 72% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-pod-researcher). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1813 tokens (~226/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 0.2.0 → 0.2.1 functional
  • 2 Nov 26 +1
    • Security disclosure: unverified → fail ▼ functional
  • 1 Nov 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 29 Oct 26 79

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@pipeworx/mcp-pod-researcher@0.2.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo pipeworx-io/mcp-pod-researcher
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/pipeworx-io/mcp-pod-researcher/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3685303825
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:d0a7ccb61bec47096781372afcff45baf5c55d2f78c7784cbecbfa5cf5b5f4bcca71c4d912dc576ba1c682797d431825744768e4215532899e3ffac2c

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 8 exposed · ~1,756 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
find_podcast_contacts ~471

Find ACTIVE podcasts whose recent episodes cover a topic, each with the best published contact route for booking a guest or buying sponsorship. Searches episode titles and show notes across ~740k podcasts that published in the last year (from the Podcast Index open directory plus each show's own RSS feed and website). Every result carries the episodes that prove the fit, the show's activity status, and either best_route (with holder_type person / role / hosting_account_owner, its source_url and last_observed date) or route_status "none_found" with what was checked. Routes designated for your purpose rank first; a general contact or a person's published address is a labelled fallback. For a signed-in account, shows and people you recorded as contacted, declined, booked or do_not_contact are left out. Use get_podcast_profile for one show in full.

NameTypeReqDescription
active_onlyboolean–Default true: only shows classified active (publishing on their usual cadence). false also returns overdue, hiatus and dormant shows, labelled.
countrystring–Two-letter country code of the show, when known, e.g. "us".
cursorstring–cursor_next from a previous call, for the next page.
include_engagedboolean–Signed-in accounts: default false leaves out shows you already recorded as contacted, replied or booked. true returns them, marked with your last outcome. Declined and do_not_contact are always left…
languagestring–Feed language code, e.g. "en" (matches en, en-us, en-gb).
limitinteger–Shows per page, 1-50 (default 20).
purposestringyesWhat you want from the show: 'guest' (book someone onto it) or 'sponsor' (advertise on it). Routes designated for this purpose rank first.
require_routeboolean–true = only shows that have a contact route for this purpose (designated, or a general/person fallback). Default false: shows with no route found are returned too, ranked by fit, with route_status "n…
topicstringyesWhat the show should be about, in plain words, e.g. "AI agents developer infrastructure" or "marathon training".

No output schema declared.

No examples provided.

get_podcast_profile ~135

One podcast in full: identity (title, feed URL, website, podcast:guid, Apple id), activity status and feed health, the latest episodes, and EVERY published contact route with holder_type (person / role / hosting_account_owner), purpose, source_url and last_observed. Accepts a show_id, an RSS feed URL (old URLs of moved feeds resolve) or a podcast:guid. For a signed-in account, also returns your outreach history with the show.

NameTypeReqDescription
idstringyesThe show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.

No output schema declared.

No examples provided.

get_podcast_topic_changes ~84

Signed-in accounts: for your topic watches (or one, by watch_id), the podcasts that match now and did not at the last check, with their best contact route. Each call moves the baseline forward, so a show is reported once.

NameTypeReqDescription
watch_idinteger–One watch from watch_podcast_topic. Omit for all of your active watches.

No output schema declared.

No examples provided.

list_podcast_transcripts ~234

Which episodes of a podcast have a publisher-provided transcript, and where: reads the show's own RSS feed live and lists every episode's Podcasting 2.0 <podcast:transcript> links with their format (SRT, WebVTT, JSON, text, HTML), language and URL. Episodes without one are kept in the list and labelled transcript_status "no_publisher_transcript", and a show that publishes none says so plainly with its episode list intact. Pass a show_id or podcast:guid from find_podcast_contacts, or the RSS feed URL directly. Use search_podcast_transcript to pull timestamped passages from one.

NameTypeReqDescription
episodestring–Narrow to one episode: its guid, page or audio URL, episode number ("273" or "#273"), or words from its title. Omit for the latest episodes.
idstringyesThe show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.
limitinteger–Episodes to return, newest first, 1-100 (default 25).

No output schema declared.

No examples provided.

record_podcast_outreach ~240

Signed-in accounts: record what happened when you reached out to a podcast, so find_podcast_contacts stops suggesting it. outcome: contacted, replied, declined, booked, bounced, do_not_contact or clear (clear lifts an earlier do_not_contact). Name the show by show_id. For a PERSON-level record (e.g. the host asked never to be contacted about any of their shows), pass scope 'person' and the contact_id of their email route from get_podcast_profile: every show that publishes that address is then left out of your searches. Never pass an email address: a call carrying one is refused and nothing is recorded. History is private to your account.

NameTypeReqDescription
contact_idinteger–The route you used, from best_route.contact_id or get_podcast_profile routes. Required when scope is person.
outcomestringyesWhat happened.
scopestring–'show' (default) records against the show; 'person' records against the person behind an email route (needs contact_id).
show_idintegeryesThe show, from find_podcast_contacts or get_podcast_profile.

No output schema declared.

No examples provided.

refresh_podcast ~103

Ask for one podcast's RSS feed to be read again now rather than at its next scheduled check. Returns the show's current state and when the refresh was queued; new episodes show up in get_podcast_profile once the feed has been read (normally within minutes). Contact routes are re-checked separately, not by this call.

NameTypeReqDescription
idstringyesThe show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.

No output schema declared.

No examples provided.

search_podcast_transcript ~314

What a podcast episode actually said about a topic, with timestamps: fetches the episode's publisher-provided transcript (Podcasting 2.0 <podcast:transcript>, as SRT, WebVTT, JSON, plain text or HTML) and returns the passages that match a query, each with start and end time, the speakers when the file names them, and the matched words. Defaults to the newest episode that has a transcript; name one by guid, URL, episode number or title words. A plain-text transcript without timing is returned as text passages with a note. An episode with no publisher transcript is reported as such with the episodes that do have one.

NameTypeReqDescription
episodestring–Which episode: guid, page or audio URL, episode number ("273"), or words from its title. Default: the newest episode with a transcript.
formatstring–Preferred transcript format when the episode offers several. Default: JSON, then WebVTT, then SRT, then text.
idstringyesThe show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.
limitinteger–Passages to return, 1-50 (default 10).
querystringyesWords to find in the transcript, e.g. "advertising revenue" or "value for value".
window_secondsinteger–How much transcript each passage spans, 10-180 seconds (default 30).

No output schema declared.

No examples provided.

watch_podcast_topic ~175

Signed-in accounts: save a topic x purpose search so get_podcast_topic_changes can report podcasts that newly match it. Records the current matches as the baseline, so get_podcast_topic_changes returns only shows that appear after now. Returns the watch_id.

NameTypeReqDescription
countrystring–Two-letter country code, e.g. "us".
languagestring–Feed language code, e.g. "en".
purposestringyesWhat you want from the show: 'guest' (book someone onto it) or 'sponsor' (advertise on it). Routes designated for this purpose rank first.
require_routeboolean–Only report shows that have a contact route for this purpose. Default false.
topicstringyesThe topic to watch, as for find_podcast_contacts.

No output schema declared.

No examples provided.

Install

How do I install the Pod Researcher MCP server?

Pod Researcher runs locally as an npm package, launched with npx -y @pipeworx/mcp-pod-researcher. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @pipeworx/mcp-pod-researcher

# add to Claude Code
claude mcp add pipeworx-io-pod-researcher -- npx -y @pipeworx/mcp-pod-researcher
Common questions

What is the Pod Researcher MCP server?

Pod Researcher is an MCP server listed in the public MCP registry as io.github.pipeworx-io/pod-researcher. pod-researcher, podcast prospecting for guest booking and sponsorship. This page covers its npm package (@pipeworx/mcp-pod-researcher).

Is the Pod Researcher MCP server safe to use?

Pod Researcher scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Pod Researcher MCP server expose?

Pod Researcher exposes 8 tools: find_podcast_contacts, get_podcast_profile, refresh_podcast, watch_podcast_topic, get_podcast_topic_changes, and 3 more. Their descriptions and schemas cost roughly 1,756 tokens of context every time the server is loaded.

Is the Pod Researcher MCP server still maintained?

Pod Researcher is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Pod Researcher MCP server under?

Pod Researcher declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.