MCP server exposing 6 tools for pod-researcher.
This URL is a JSON-RPC 2.0 endpoint over HTTP. Issue POST requests with a JSON-RPC body. Browsers and search crawlers land here on GET.
POST https://gateway.pipeworx.io/pod-researcher/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
find_podcast_contacts — 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.get_podcast_profile — 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.refresh_podcast — 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.watch_podcast_topic — 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.get_podcast_topic_changes — 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.record_podcast_outreach — 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.Code samples (curl / TypeScript / one-click client install), schemas, and the live playground are on the pack page:
https://pipeworx.io/packs/pod-researcher/
Pipeworx is an open MCP gateway connecting AI agents to live data. pipeworx.io