# PodPitch (remote · api.podpitch.com)

Find relevant podcasts without an account. Connect PodPitch for private campaigns and outreach.

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

## Components

- remote · `api.podpitch.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp.md), [page](https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp)

## Channel facts

- Endpoint: `https://api.podpitch.com/v1/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_campaign).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 53/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 2274 tokens (~44/item across 51 items; 51 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 50/100
  - Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (6% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 52 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the PodPitch MCP server?

PodPitch is a hosted endpoint at https://api.podpitch.com/v1/mcp, so there is nothing to install locally. 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 --transport http nealshulman-podpitch 'https://api.podpitch.com/v1/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "nealshulman-podpitch": {
      "url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "nealshulman-podpitch": {
      "type": "http",
      "url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.nealshulman-podpitch]
url = "https://api.podpitch.com/v1/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nealshulman-podpitch": {
      "type": "remote",
      "url": "https://api.podpitch.com/v1/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nealshulman-podpitch --url 'https://api.podpitch.com/v1/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  nealshulman-podpitch:
    url: "https://api.podpitch.com/v1/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "nealshulman-podpitch": {
      "Transport": "http",
      "Url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add nealshulman-podpitch -t streamable-http -u 'https://api.podpitch.com/v1/mcp'
```

### Other

```json
{
  "mcpServers": {
    "nealshulman-podpitch": {
      "type": "http",
      "url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-05 (score 65, 0)

- [security] The server rewrote its instructions, which are the text every model session reads

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

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

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

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

### 2026-10-31 (score 63, +1)

- [security] Tool “create_profile” rewrote its description, which is the text the model reads
- [cosmetic] “get_upcoming_sends” added an optional parameter “campaign_id”
- [cosmetic] “get_upcoming_sends” added an optional parameter “include_overdue”
- [cosmetic] “list_templates” added an optional parameter “limit”
- [cosmetic] “list_templates” added an optional parameter “offset”

### 2026-10-29 (score 62, +1)

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

### 2026-10-27 (score 61, +1)

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

### 2026-10-25 (score 60, +1)

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

### 2026-10-23 (score 59, +1)

- [security] The server rewrote its instructions, which are the text every model session reads

## MCP tools (51)

### `report_agent_bug` (~54 tokens)

Report a PodPitch bug

Record a minimal technical PodPitch failure without an account. Report concrete tool failures once. Exclude credentials, personal data, pitches and conversations. Respect client approval. Returns a persisted report ID.

Input parameters:

- `body` (object, required)

### `search_podcasts` (~48 tokens)

Find podcasts

Find active podcasts by topic or name. No account needed. Returns public show information and listening links, never contact addresses.

Input parameters:

- `limit` (integer)
- `query` (string, required)

Output parameters:

- `podcasts` (array)

### `get_podcast_details` (~33 tokens)

Read podcast details

Read public details for a podcast from search. No account or contact addresses.

Input parameters:

- `podcast_id` (string, required)

Output parameters:

- `podcast`

### `get_connected_account` (~27 tokens)

Get connected account

Return the account represented by this connection, with a stable opaque profile ID and display email.

Output parameters:

- `email` (string)
- `id` (string)

### `create_podcast_campaign` (~43 tokens)

Create podcast campaign

Create a podcast campaign in Off mode using a team profile and connected senders. Existing plan and first-campaign setup checks apply.

Input parameters:

- `body` (object, required)

### `get_campaign` (~24 tokens)

Get campaign

Read your team's campaign and its settings.

Input parameters:

- `campaign_id` (integer, required)

### `update_campaign` (~41 tokens)

Update campaign

Update campaign name, writing, follow-up, and tracking settings. Scheduling uses schedule_campaign.

Input parameters:

- `body` (object, required)
- `campaign_id` (integer, required)

### `edit_pitch_draft` (~57 tokens)

Edit pitch draft

Edit a saved, unscheduled pitch at its expected stage. Refresh before editing; scheduled messages use edit_upcoming_send.

Input parameters:

- `body` (object, required)
- `campaign_id` (integer, required)
- `entity_id` (string, required)

### `list_campaigns` (~52 tokens)

List campaigns

List up to 50 campaign summaries, newest first. Use next_before_id as before_id for the next page. Read complete settings with get_campaign.

Input parameters:

- `before_id`
- `limit` (integer)

### `list_profiles` (~13 tokens)

List profiles

List your team's profiles.

### `create_profile` (~76 tokens)

Create profile

Create a profile for your team. PodPitch rewrites the bio with web research before saving, which can take a few minutes, so don't retry while it runs. The result's web_enhanced_bio says whether it did. If the web has nothing on them, the bio stays as passed.

Input parameters:

- `body` (object, required)

### `archive_profile` (~23 tokens)

Archive profile

Archive a profile belonging to your team.

Input parameters:

- `id` (integer, required)

### `unarchive_profile` (~21 tokens)

Unarchive profile

Restore an archived profile.

Input parameters:

- `id` (integer, required)

### `search_account_podcasts` (~29 tokens)

Search account podcasts

Search podcasts with your account's filters and search allowance.

Input parameters:

- `body` (object, required)

### `get_account_podcast` (~28 tokens)

Get account podcast

Read a podcast's full account-accessible record.

Input parameters:

- `podcast_id` (string, required)

### `get_campaign_drafts` (~99 tokens)

Get campaign drafts

Read saved drafts for any campaign type, including podcast campaigns. Returns all six email stages, generation/error and pause/send state. Use next_offset as offset for the next page; use entity_id for a specific draft. A queued acknowledgement is not completion; read saved content and is_regenerating to verify.

Input parameters:

- `campaign_id` (integer, required)
- `entity_id`
- `limit` (integer)
- `offset` (integer)

### `get_campaign_draft_previews` (~41 tokens)

Get campaign draft previews

Read pitch previews for a campaign.

Input parameters:

- `campaign_id` (integer, required)
- `database` (string, required)
- `limit` (integer)

### `get_campaign_audit` (~40 tokens)

Get campaign audit

Read the change history of your campaign.

Input parameters:

- `campaign_id` (integer, required)
- `limit` (integer)
- `offset` (integer)

### `get_profile_audit` (~40 tokens)

Get profile audit

Read the change history of your profile.

Input parameters:

- `limit` (integer)
- `offset` (integer)
- `profile_id` (integer, required)

### `get_subject_results` (~25 tokens)

Get subject results

Read subject line performance for your campaign.

Input parameters:

- `campaign_id` (integer, required)

### `add_contacts_to_campaign` (~29 tokens)

Add contacts to campaign

Add selected contacts to your campaign through the existing duplicate checks.

Input parameters:

- `body` (object, required)

### `send_pitch` (~39 tokens)

Send pitch

Send a pitch through PodPitch's existing authorization, plan, campaign-mode, and daily pitch limits. Sends an email.

Input parameters:

- `body` (object, required)

### `schedule_campaign` (~27 tokens)

Schedule campaign

Schedule campaign pitches through the existing campaign and pitch-limit checks.

Input parameters:

- `body` (object, required)

### `get_campaign_schedule` (~55 tokens)

Get campaign schedule

Read scheduled campaign sends.

Input parameters:

- `campaign_id`
- `entity_id`
- `page` (integer)
- `page_size` (integer)
- `profile_id`
- `team_id` (string, required)

### `pause_campaign_schedule` (~23 tokens)

Pause campaign schedule

Pause pending sends for your campaign.

Input parameters:

- `body` (object, required)

### `disable_campaign_schedule` (~23 tokens)

Disable campaign schedule

Disable pending sends for your campaign.

Input parameters:

- `body` (object, required)

### `set_campaign_mode` (~35 tokens)

Set campaign mode

Set a campaign Off or Manual through the existing mode checks. MagicPitch does not allow Manual.

Input parameters:

- `body` (object, required)

### `list_inbox_threads` (~101 tokens)

List inbox threads

Search or list your team's inbox threads with pagination.

Input parameters:

- `categories`
- `cursor`
- `emails`
- `folder`
- `from_email`
- `hide_replied`
- `limit` (integer)
- `offset` (integer)
- `profile_id`
- `profile_ids`
- `q`
- `read_status`
- `starred`
- `thread_scope`

### `read_inbox_thread` (~36 tokens)

Read inbox thread

Read a thread in a mailbox belonging to your team.

Input parameters:

- `email` (string, required)
- `thread_id` (string, required)

### `reply_to_inbox_thread` (~33 tokens)

Reply to inbox thread

Send a reply in a thread belonging to your team. Sends an email.

Input parameters:

- `body` (object, required)

### `mark_inbox_thread` (~29 tokens)

Mark inbox thread

Mark a thread read, unread, starred, or archived.

Input parameters:

- `body` (object, required)

### `get_inbox_counts` (~21 tokens)

Get inbox counts

Read inbox status counts.

Input parameters:

- `thread_scope`

### `list_inbox_labels` (~16 tokens)

List inbox labels

List your team's inbox labels.

### `create_inbox_label` (~22 tokens)

Create inbox label

Create an inbox label.

Input parameters:

- `body` (object, required)

### `get_upcoming_sends` (~68 tokens)

Get upcoming sends

Read upcoming sends for your team.

Input parameters:

- `campaign_id`
- `emails`
- `include_overdue` (boolean)
- `limit` (integer)
- `offset` (integer)
- `profile_ids`
- `q`
- `types`

### `cancel_upcoming_send` (~27 tokens)

Cancel upcoming send

Cancel an upcoming send belonging to your team.

Input parameters:

- `scheduler_id` (integer, required)

### `edit_upcoming_send` (~35 tokens)

Edit upcoming send

Edit an upcoming unsent message through existing validation.

Input parameters:

- `body` (object, required)
- `scheduler_id` (integer, required)

### `reschedule_upcoming_send` (~36 tokens)

Reschedule upcoming send

Reschedule an upcoming send through existing scheduling validation.

Input parameters:

- `body` (object, required)
- `scheduler_id` (integer, required)

### `list_templates` (~33 tokens)

List templates

Read your team's writing templates.

Input parameters:

- `limit`
- `offset` (integer)
- `type` (string)

### `create_template` (~20 tokens)

Create template

Create a writing template.

Input parameters:

- `body` (object, required)

### `update_template` (~32 tokens)

Update template

Update a writing template belonging to your team.

Input parameters:

- `body` (object, required)
- `template_id` (integer, required)

### `delete_template` (~25 tokens)

Delete template

Delete a writing template belonging to your team.

Input parameters:

- `template_id` (integer, required)

### `list_media_lists` (~16 tokens)

List media lists

List your team's saved media lists.

### `read_podcast_media_list` (~28 tokens)

Read podcast media list

Read a podcast media list belonging to your team.

Input parameters:

- `body` (object, required)

### `list_excluded_contacts` (~16 tokens)

List excluded contacts

Read your team's excluded contacts.

### `exclude_contacts` (~23 tokens)

Exclude contacts

Add or update your team's contact exclusions.

Input parameters:

- `body` (object, required)

### `list_connected_senders` (~26 tokens)

List connected senders

List connected sender accounts, connection status, and daily capacity. Never returns credentials.

### `get_pitch_activity` (~42 tokens)

Get pitch activity

Read your team's recent pitch, reply, booking, and open counts.

Input parameters:

- `profile_id`
- `sent_email_id`
- `user_id`

### `get_campaign_build_progress` (~27 tokens)

Get campaign build progress

Read draft generation progress for your team's campaign.

Input parameters:

- `campaign_id` (integer, required)

### `rewrite_pitch_drafts` (~38 tokens)

Rewrite pitch drafts

Rewrite saved pitches or apply a template using the existing generation queue and team checks. Does not send emails.

Input parameters:

- `body` (object, required)

### `generate_pitch_drafts` (~60 tokens)

Generate pitch drafts

Generate or replace saved pitch drafts for contacts in your campaign using existing limits and team checks. Can overwrite existing draft content, including with rewrite enabled. Read drafts first and obtain approval for replacement. Does not send emails.

Input parameters:

- `body` (object, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp#diagnostics

## Score history

- 2026-11-05: 65
- 2026-11-04: 65
- 2026-11-03: 64
- 2026-11-02: 64
- 2026-11-01: 63
- 2026-10-31: 63
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 61
- 2026-10-27: 61
- 2026-10-26: 60
- 2026-10-25: 60
- 2026-10-24: 59
- 2026-10-23: 59
- 2026-10-22: 58
- 2026-10-21: 58

## Common questions

### What is the PodPitch MCP server?

PodPitch is an MCP server listed in the public MCP registry as io.github.nealshulman/podpitch. Find relevant podcasts without an account. Connect PodPitch for private campaigns and outreach. This page covers its hosted endpoint (https://api.podpitch.com/v1/mcp).

### Is the PodPitch MCP server safe to use?

PodPitch scores 65 out of 100 on VerifyMCP. 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 PodPitch MCP server expose?

PodPitch exposes 51 tools: report_agent_bug, search_podcasts, get_podcast_details, get_connected_account, create_podcast_campaign, and 46 more. Their descriptions and schemas cost roughly 1,855 tokens of context every time the server is loaded.

### Does the PodPitch MCP server require authentication?

No. We connected to PodPitch without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the PodPitch MCP server still maintained?

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

## Links

- Remote endpoint: https://api.podpitch.com/v1/mcp
- Repository: https://github.com/PodPitch/podpitch-plugins
- Website: https://podpitch.com/
- Changelog RSS feed: https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp.json
- HTML version of this page: https://verifymcp.io/servers/nealshulman-podpitch/v1-mcp
