protogrid

Search / io.github.nealshulman/podpitch

PodPitch

R0· no sign-in

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

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality74needs work
Trust93of 100
Uptime, 30 days100%
Latency p50206 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "podpitch": {
      "type": "http",
      "url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
claude mcp add --transport http podpitch https://api.podpitch.com/v1/mcp
[mcp_servers.podpitch]
url = "https://api.podpitch.com/v1/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "podpitch": {
      "type": "remote",
      "url": "https://api.podpitch.com/v1/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "podpitch": {
      "type": "http",
      "url": "https://api.podpitch.com/v1/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=podpitch&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLnBvZHBpdGNoLmNvbS92MS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "podpitch": {
      "type": "http",
      "url": "https://api.podpitch.com/v1/mcp"
    }
  }
}
{
  "mcpServers": {
    "podpitch": {
      "httpUrl": "https://api.podpitch.com/v1/mcp"
    }
  }
}
extensions:
  "podpitch":
    enabled: true
    name: "podpitch"
    type: streamable_http
    uri: "https://api.podpitch.com/v1/mcp"
    timeout: 300

Quality 74 / 100needs work

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene75 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations51 of 51 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_subject_results (idempotentHint); delete_template (idempotentHint); rewrite_pitch_drafts (idempotentHint); …
  • warn
    tools.token_costabout 10,147 tokens to load every tool
  • warn
    tools.api_dump51 tools, 61% named like REST operations: looks like an API mapped one endpoint per tool
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability50 · weight 15
  • warn
    stability.changes7 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

51 tools, about 10,147 tokens to load them all · tool set ef4d06367288 · tools last changed 2026-10-31 · checked 2026-11-14 07:03 UTC

Tool changes

  • list_templateschangedinput schema
  • get_upcoming_sendschangedinput schema
  • create_profilechangeddescriptionmeaning changed
    before

    Create a profile for your team.

    after · 15% of words in common

    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.

  • create_profilechangedinput schema
  • generate_pitch_draftschangedinput schema
  • search_account_podcastschangedinput schema
  • create_podcast_campaignchangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 93 / 100

provenance75
liveness100
freshness100
hygiene100

+repository +website +reachable +uptime-100% +updated-24d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.podpitch.com/v1/mcp streamable-httpnoneyes100%206 ms2026-07-282026-11-14

Tools (51)

add_contacts_to_campaignAdd selected contacts to your campaign through the existing duplicate checks.
archive_profiledestructiveArchive a profile belonging to your team.
cancel_upcoming_senddestructiveCancel an upcoming send belonging to your team.
create_inbox_labelCreate an inbox label.
create_podcast_campaignCreate a podcast campaign in Off mode using a team profile and connected senders. Existing plan and first-campaign setup checks apply.
create_profileCreate 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.
create_templateCreate a writing template.
delete_templatedestructiveDelete a writing template belonging to your team.
disable_campaign_scheduledestructiveDisable pending sends for your campaign.
edit_pitch_draftdestructiveEdit a saved, unscheduled pitch at its expected stage. Refresh before editing; scheduled messages use edit_upcoming_send.
edit_upcoming_senddestructiveEdit an upcoming unsent message through existing validation.
exclude_contactsAdd or update your team's contact exclusions.
generate_pitch_draftsdestructiveGenerate 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.
get_account_podcastread-onlyRead a podcast's full account-accessible record.
get_campaignread-onlyRead your team's campaign and its settings.
get_campaign_auditread-onlyRead the change history of your campaign.
get_campaign_build_progressread-onlyRead draft generation progress for your team's campaign.
get_campaign_draft_previewsread-onlyRead pitch previews for a campaign.
get_campaign_draftsread-onlyRead 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.
get_campaign_scheduleread-onlyRead scheduled campaign sends.
get_connected_accountread-onlyReturn the account represented by this connection, with a stable opaque profile ID and display email.
get_inbox_countsread-onlyRead inbox status counts.
get_pitch_activityread-onlyRead your team's recent pitch, reply, booking, and open counts.
get_podcast_detailsread-onlyRead public details for a podcast from search. No account or contact addresses.
get_profile_auditread-onlyRead the change history of your profile.
get_subject_resultsread-onlyRead subject line performance for your campaign.
get_upcoming_sendsread-onlyRead upcoming sends for your team.
list_campaignsread-onlyList up to 50 campaign summaries, newest first. Use next_before_id as before_id for the next page. Read complete settings with get_campaign.
list_connected_sendersread-onlyList connected sender accounts, connection status, and daily capacity. Never returns credentials.
list_excluded_contactsread-onlyRead your team's excluded contacts.
list_inbox_labelsread-onlyList your team's inbox labels.
list_inbox_threadsread-onlySearch or list your team's inbox threads with pagination.
list_media_listsread-onlyList your team's saved media lists.
list_profilesread-onlyList your team's profiles.
list_templatesread-onlyRead your team's writing templates.
mark_inbox_threaddestructiveMark a thread read, unread, starred, or archived.
pause_campaign_scheduledestructivePause pending sends for your campaign.
read_inbox_threadread-onlyRead a thread in a mailbox belonging to your team.
read_podcast_media_listread-onlyRead a podcast media list belonging to your team.
reply_to_inbox_threaddestructiveSend a reply in a thread belonging to your team. Sends an email.
report_agent_bugRecord 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.
reschedule_upcoming_senddestructiveReschedule an upcoming send through existing scheduling validation.
rewrite_pitch_draftsdestructiveRewrite saved pitches or apply a template using the existing generation queue and team checks. Does not send emails.
schedule_campaigndestructiveSchedule campaign pitches through the existing campaign and pitch-limit checks.
search_account_podcastsread-onlySearch podcasts with your account's filters and search allowance.
search_podcastsread-onlyFind active podcasts by topic or name. No account needed. Returns public show information and listening links, never contact addresses.
send_pitchdestructiveSend a pitch through PodPitch's existing authorization, plan, campaign-mode, and daily pitch limits. Sends an email.
set_campaign_modedestructiveSet a campaign Off or Manual through the existing mode checks. MagicPitch does not allow Manual.
unarchive_profileRestore an archived profile.
update_campaigndestructiveUpdate campaign name, writing, follow-up, and tracking settings. Scheduling uses schedule_campaign.
update_templatedestructiveUpdate a writing template belonging to your team.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.nealshulman/podpitch",
  "title": "PodPitch",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.podpitch.com/v1/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/PodPitch/podpitch-plugins",
    "source": "github"
  },
  "websiteUrl": "https://podpitch.com",
  "description": "Find relevant podcasts without an account. Connect PodPitch for private campaigns and outreach."
}