# Pod Researcher (npm · @pipeworx/mcp-pod-researcher)

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

- Trust score: 82/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 63/100, [markdown](https://verifymcp.io/servers/pipeworx-io-pod-researcher/pod-researcher-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-pod-researcher/pod-researcher-mcp)
- npm · `@pipeworx/mcp-pod-researcher`: 82/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher.md), [page](https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-pod-researcher`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-pod-researcher).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## 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.

### Claude

```bash
claude mcp add pipeworx-io-pod-researcher -- npx -y @pipeworx/mcp-pod-researcher
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-pod-researcher": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-pod-researcher"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-pod-researcher": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-pod-researcher"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-pod-researcher -- npx -y @pipeworx/mcp-pod-researcher
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-pod-researcher": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-pod-researcher"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-pod-researcher --command npx --arg -y --arg @pipeworx/mcp-pod-researcher
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-pod-researcher:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-pod-researcher"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-pod-researcher": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-pod-researcher"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-pod-researcher -t stdio -c npx -a -y @pipeworx/mcp-pod-researcher
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-pod-researcher": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-pod-researcher"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 82, +1)

- [functional regression] Security disclosure: fail → unverified
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-11-02 (score 81, +1)

- [functional regression] Security disclosure: unverified → fail

### 2026-11-01 (score 80, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-31 (score 80, +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.

### 2026-10-30 (score 79, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-29 (score 79)

First indexed and scored.

## MCP tools (8)

### `find_podcast_contacts` (~471 tokens)

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.

Input parameters:

- `active_only` (boolean): Default true: only shows classified active (publishing on their usual cadence). false also returns overdue, hiatus and dormant shows, labelled.
- `country` (string): Two-letter country code of the show, when known, e.g. "us".
- `cursor` (string): cursor_next from a previous call, for the next page.
- `include_engaged` (boolean): 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…
- `language` (string): Feed language code, e.g. "en" (matches en, en-us, en-gb).
- `limit` (integer): Shows per page, 1-50 (default 20).
- `purpose` (string, required): What you want from the show: 'guest' (book someone onto it) or 'sponsor' (advertise on it). Routes designated for this purpose rank first.
- `require_route` (boolean): 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…
- `topic` (string, required): What the show should be about, in plain words, e.g. "AI agents developer infrastructure" or "marathon training".

### `get_podcast_profile` (~135 tokens)

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.

Input parameters:

- `id` (string, required): The show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.

### `refresh_podcast` (~103 tokens)

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.

Input parameters:

- `id` (string, required): The show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.

### `watch_podcast_topic` (~175 tokens)

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.

Input parameters:

- `country` (string): Two-letter country code, e.g. "us".
- `language` (string): Feed language code, e.g. "en".
- `purpose` (string, required): What you want from the show: 'guest' (book someone onto it) or 'sponsor' (advertise on it). Routes designated for this purpose rank first.
- `require_route` (boolean): Only report shows that have a contact route for this purpose. Default false.
- `topic` (string, required): The topic to watch, as for find_podcast_contacts.

### `get_podcast_topic_changes` (~84 tokens)

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.

Input parameters:

- `watch_id` (integer): One watch from watch_podcast_topic. Omit for all of your active watches.

### `record_podcast_outreach` (~240 tokens)

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.

Input parameters:

- `contact_id` (integer): The route you used, from best_route.contact_id or get_podcast_profile routes. Required when scope is person.
- `outcome` (string, required): What happened.
- `scope` (string): 'show' (default) records against the show; 'person' records against the person behind an email route (needs contact_id).
- `show_id` (integer, required): The show, from find_podcast_contacts or get_podcast_profile.

### `list_podcast_transcripts` (~234 tokens)

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.

Input parameters:

- `episode` (string): 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.
- `id` (string, required): The show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.
- `limit` (integer): Episodes to return, newest first, 1-100 (default 25).

### `search_podcast_transcript` (~314 tokens)

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.

Input parameters:

- `episode` (string): Which episode: guid, page or audio URL, episode number ("273"), or words from its title. Default: the newest episode with a transcript.
- `format` (string): Preferred transcript format when the episode offers several. Default: JSON, then WebVTT, then SRT, then text.
- `id` (string, required): The show: a show_id from find_podcast_contacts, the RSS feed URL, or its podcast:guid.
- `limit` (integer): Passages to return, 1-50 (default 10).
- `query` (string, required): Words to find in the transcript, e.g. "advertising revenue" or "value for value".
- `window_seconds` (integer): How much transcript each passage spans, 10-180 seconds (default 30).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher#diagnostics

## Score history

- 2026-11-05: 82
- 2026-11-04: 82
- 2026-11-03: 81
- 2026-11-02: 81
- 2026-11-01: 80
- 2026-10-31: 80
- 2026-10-30: 79
- 2026-10-29: 79

## 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.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-pod-researcher
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-pod-researcher
- Repository: https://github.com/pipeworx-io/mcp-pod-researcher
- Website: https://pipeworx.io/packs/pod-researcher
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-pod-researcher/pipeworx-mcp-pod-researcher
