# PodPitch (io.github.nealshulman/podpitch): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.nealshulman%2Fpodpitch/versions/latest)
- Connected to: https://api.podpitch.com/v1/mcp
- Homepage: https://podpitch.com/
- Repository: https://github.com/PodPitch/podpitch-plugins
- Scoring rules: v2
- Tools: 51
- Average: 31.6 / 100 (Rain)
- Near-identical pairs: 3

This page shows how PodPitch (io.github.nealshulman/podpitch)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 51 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 2220 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `list_templates`: 18 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: type, limit, offset.
  - Minor: String arguments with no constraint or example: type.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `archive_profile`: 23 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `cancel_upcoming_send`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: scheduler_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: scheduler_id. Name the tool or the place that returns it, or models look it up first.
- `create_inbox_label`: 23 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `create_template`: 23 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `delete_template`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: template_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: template_id. Name the tool or the place that returns it, or models look it up first.
- `disable_campaign_schedule`: 23 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `edit_upcoming_send`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: scheduler_id, body.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: scheduler_id. Name the tool or the place that returns it, or models look it up first.
- `get_campaign`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `get_inbox_counts`: 23 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: thread_scope.
  - Minor: Says nothing about what it returns.
- `get_upcoming_sends`: 23 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, offset, profile_ids, emails, types, q, campaign_id, include_overdue.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument include_overdue is unclear.
  - Minor: Says nothing about what it returns.
- `mark_inbox_thread`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `pause_campaign_schedule`: 23 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `read_podcast_media_list`: 23 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `reschedule_upcoming_send`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: scheduler_id, body.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: scheduler_id. Name the tool or the place that returns it, or models look it up first.
- `unarchive_profile`: 23 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `update_template`: 23 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: template_id, body.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: template_id. Name the tool or the place that returns it, or models look it up first.
- `get_account_podcast`: 25 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: podcast_id.
  - Minor: String arguments with no constraint or example: podcast_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: podcast_id. Name the tool or the place that returns it, or models look it up first.
- `get_campaign_draft_previews`: 25 / 100
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, database, limit.
  - Minor: String arguments with no constraint or example: database.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `read_inbox_thread`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email, thread_id.
  - Minor: String arguments with no constraint or example: email, thread_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: thread_id. Name the tool or the place that returns it, or models look it up first.
- `edit_pitch_draft`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, entity_id, body.
  - Minor: String arguments with no constraint or example: entity_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `add_contacts_to_campaign`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `exclude_contacts`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `get_campaign_audit`: 30 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, limit, offset.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `get_campaign_build_progress`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `get_campaign_schedule`: 30 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: team_id, campaign_id, page, page_size, profile_id, entity_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: team_id. Name the tool or the place that returns it, or models look it up first.
- `get_pitch_activity`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: user_id, profile_id, sent_email_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_profile_audit`: 30 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: profile_id, limit, offset.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: profile_id. Name the tool or the place that returns it, or models look it up first.
- `get_subject_results`: 30 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `search_account_podcasts`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `update_campaign`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, body.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `rewrite_pitch_drafts`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `list_inbox_threads`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: from_email, emails, profile_id, profile_ids, read_status, starred, hide_replied, categories, folder, thread_scope, q, limit, offset, cursor.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `schedule_campaign`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `create_podcast_campaign`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `list_campaigns`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, before_id.
  - Minor: Says nothing about what it returns.
- `reply_to_inbox_thread`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `set_campaign_mode`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `generate_pitch_drafts`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body.
  - Minor: Says nothing about what it returns.
- `send_pitch`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body, body.campaign_id, body.entity_id, body.requested_stage.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `list_excluded_contacts`: 38 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_inbox_labels`: 38 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_media_lists`: 38 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_profiles`: 38 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `get_podcast_details`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: podcast_id.
- `get_campaign_drafts`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, limit, offset, entity_id.
- `report_agent_bug`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: body, body.tool_name, body.summary, body.expected_behavior, body.actual_behavior, body.reproduction_steps.
  - Minor: The description mentions none of its 3 or more arguments.
- `create_profile`: 54 / 100
  - Major: Arguments without a description: body.
- `search_podcasts`: 54 / 100
  - Major: Arguments without a description: query, limit.
- `list_connected_senders`: 61 / 100
- `get_connected_account`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
