# Patch MCP (com.patchmcp/patch): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.patchmcp%2Fpatch/versions/latest)
- Connected to: https://www.patchmcp.com/mcp
- Homepage: https://www.patchmcp.com/
- Scoring rules: v2
- Tools: 52
- Average: 52.4 / 100 (Cloudy)
- Near-identical pairs: 1

This page shows how Patch MCP (com.patchmcp/patch)'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: 52 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 4100 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

- `get_number_claim`: 31 / 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: claim_id.
  - Minor: Required identifiers whose description does not say where the value comes from: claim_id. Name the tool or the place that returns it, or models look it up first.
- `rename_voice`: 31 / 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: voice_id, label.
  - Minor: Required identifiers whose description does not say where the value comes from: voice_id. Name the tool or the place that returns it, or models look it up first.
- `set_default_phone_number`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: number_id, workspace_revision.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id. Name the tool or the place that returns it, or models look it up first.
- `stop_agent_test`: 38 / 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: test_id.
  - Minor: Required identifiers whose description does not say where the value comes from: test_id. Name the tool or the place that returns it, or models look it up first.
- `get_billing`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: invoice_cursor.
  - Minor: No `required` list, so every argument is optional.
- `update_phone_number`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: number_id, revision, label, inbound, outbound, retained.
  - Minor: The meaning of the boolean argument inbound is unclear.
  - Minor: The meaning of the boolean argument outbound is unclear.
  - Minor: The meaning of the boolean argument retained is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id. Name the tool or the place that returns it, or models look it up first.
- `create_voice_upload`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: filename, request_id.
- `delete_voice`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: voice_id, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: voice_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent_test_listener`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: test_id.
  - Minor: Required identifiers whose description does not say where the value comes from: test_id. Name the tool or the place that returns it, or models look it up first.
- `get_call_listener`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: call_id.
  - Minor: Required identifiers whose description does not say where the value comes from: call_id. Name the tool or the place that returns it, or models look it up first.
- `search_phone_numbers`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: country, area_code.
- `update_agent`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: number_id, direction, revision, changes, changes.name, changes.greeting, changes.instructions, changes.voice, changes.language, changes.voicesByLocale, changes.hours, changes.fallback, changes.timezone, number_id, direction, revision, changes, changes.name, changes.voice, changes.language, changes.voicesByLocale, changes.hours, changes.fallback, changes.timezone.
  - Minor: String arguments with no constraint or example: direction, changes.timezone, direction, changes.timezone.
- `verify_voice`: 44 / 100
  - Major: Arguments without a description: voice_id.
  - Minor: Required identifiers whose description does not say where the value comes from: voice_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: number_id, direction.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent_test`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: test_id.
  - Minor: Required identifiers whose description does not say where the value comes from: test_id. Name the tool or the place that returns it, or models look it up first.
- `get_voice_preview`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: provider_voice_id.
  - Minor: Required identifiers whose description does not say where the value comes from: provider_voice_id. Name the tool or the place that returns it, or models look it up first.
- `revoke_authorized_app`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: client_id.
  - Minor: Required identifiers whose description does not say where the value comes from: client_id. Name the tool or the place that returns it, or models look it up first.
- `get_call_diagnostics`: 47 / 100
  - Major: Arguments without a description: call_id, cursor, limit.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: call_id, cursor. Name the tool or the place that returns it, or models look it up first.
- `get_operation`: 47 / 100
  - Major: Arguments without a description: operation_id.
  - Minor: Required identifiers whose description does not say where the value comes from: operation_id. Name the tool or the place that returns it, or models look it up first.
- `get_phone_number`: 47 / 100
  - Major: Arguments without a description: number_id.
  - Minor: No `required` list, so every argument is optional.
- `update_billing_profile`: 47 / 100
  - Major: Arguments without a description: request_id, changes, changes.name, changes.email, changes.address, changes.address.line1, changes.address.line2, changes.address.city, changes.address.state, changes.address.postal_code, changes.address.country.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `get_forwarding_instructions`: 48 / 100
  - Major: Arguments without a description: number_id, provider, mode.
  - Minor: String arguments with no constraint or example: provider.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id. Name the tool or the place that returns it, or models look it up first.
- `set_agent_connectors`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: number_id, direction, revision, connector_ids.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id, connector_ids. Name the tool or the place that returns it, or models look it up first.
- `set_onboarding`: 50 / 100
  - Major: Arguments without a description: intent, status.
- `update_account`: 50 / 100
  - Major: Arguments without a description: revision, changes, changes.name, changes.call_locale, changes.voices_by_locale.
  - Minor: String arguments with no constraint or example: changes.call_locale.
- `claim_phone_number`: 51 / 100
  - Major: Arguments without a description: offer_id, label, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: offer_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `add_common_connector`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: provider, request_id.
- `preview_subscription_change`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: action, plan, trial, promotion_code.
  - Minor: The meaning of the boolean argument trial is unclear.
- `create_connector`: 53 / 100
  - Major: Arguments without a description: name, url, transport, authType, request_id.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_agents`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
- `create_voice`: 54 / 100
  - Major: Arguments without a description: upload_id, label, consent, request_id.
  - Minor: String arguments with no constraint or example: consent.
  - Minor: Required identifiers whose description does not say where the value comes from: upload_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `get_forwarding_carrier`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
- `reset_agent`: 55 / 100
  - Major: Arguments without a description: number_id, direction, revision.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id. Name the tool or the place that returns it, or models look it up first.
- `start_agent_test`: 56 / 100
  - Major: Arguments without a description: number_id, revision, scenario, direction, custom_scenario, custom_scenario.title, custom_scenario.objective, custom_scenario.facts, custom_scenario.greeting, custom_scenario.timeZone, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: number_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `get_account`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_connector_tools`: 57 / 100
  - Major: Arguments without a description: connector_id.
  - Minor: Required identifiers whose description does not say where the value comes from: connector_id. Name the tool or the place that returns it, or models look it up first.
- `remove_connector`: 58 / 100
  - Major: Arguments without a description: connector_id, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: connector_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `resume_operation`: 58 / 100
  - Major: Arguments without a description: operation_id.
  - Minor: Required identifiers whose description does not say where the value comes from: operation_id. Name the tool or the place that returns it, or models look it up first.
- `get_capabilities`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_activity`: 60 / 100
  - Major: Arguments without a description: kind, limit, cursor.
- `list_authorized_apps`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_phone_numbers`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_voices`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `connect_connector`: 62 / 100
  - Major: Arguments without a description: connector_id, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: connector_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `create_billing_portal`: 62 / 100
  - Major: Arguments without a description: request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `list_test_scenarios`: 62 / 100
- `end_call`: 65 / 100
- `set_call_visibility`: 67 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: call_id. Name the tool or the place that returns it, or models look it up first.
- `execute_subscription_change`: 70 / 100
  - Major: Arguments without a description: quote_id, request_id.
  - Minor: Required identifiers whose description does not say where the value comes from: quote_id, request_id. Name the tool or the place that returns it, or models look it up first.
- `list_connectors`: 70 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_call`: 85 / 100
  - Major: The name is made of generic words only.
- `place_call`: 98 / 100
  - Minor: The description is long (404 words). It helps selection but costs steps and tokens.

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)
