MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

Patch MCP

Claim this listing

com.patchmcp/patch

patchmcp.comVerified

AI phone calls from your verified number, with answers, transcripts and recordings.

Developer ToolsIs Patch MCP down?Alternatives

12 of 22 checks passed

  • Handshake
  • Tools listed
  • Updated recently

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Connect to server
Median latency
415 ms
Uptime, 30 days
Not measured
Last checked

Measurement details

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 415 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name patchmcp.

  • Pass
    Lists tools

    tools/list returned 52 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 415 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 415 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    16 of 120 parameters have a description (13%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-11T04:29:26.504128Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Tools

  • add_common_connector

    Create or return a managed Exa web-search connection using this account's existing paid entitlement. New connections are unassigned. Does not subscribe, charge, search, discover tools or change assignments. Next use connect_connector, inspect get_connector_tools and explicitly set_agent_connectors.

    Measured

  • claim_phone_number

    Acquire an offered number using your plan allowance. Reuse request_id after an interrupted response.

    Measured

  • connect_connector

    Contact an owned connection to discover or refresh its individual voice-agent tools. May begin third-party OAuth and return authorization_url for the user to approve; never collect verification codes or credentials in chat. Does not invoke external tools or change agent assignments. Inspect get_connector_tools after authorization.

    Measured

  • create_billing_portal

    Create a Stripe-hosted billing portal link for this account's existing Stripe customer. Creating the link does not charge, change or cancel a subscription; the user chooses and confirms any billing changes on Stripe. Returns to Patch's fixed billing page. Reuse request_id after a lost response. Never request or accept card details in chat.

    Measured

  • create_connector

    Save a hosted voice-agent MCP connection requiring no credentials or standard browser OAuth, without contacting it or assigning agents. Never ask for or submit API keys, tokens, client secrets or credential-bearing URLs in chat. For API-key or custom OAuth setup, send the user to setup_url from list_connectors, then use the saved connector_id. Next use connect_connector for browser authorization and discovery, then set_agent_connectors to grant access.

    Measured

  • create_voice

    Clone an uploaded sample of the user’s own voice. consent must represent the user’s explicit permission; never infer consent.

    Measured

  • create_voice_upload

    Create an expiring audio upload URL. PUT the file bytes there, then call create_voice with the upload_id and the user’s own-voice consent.

    Measured

  • delete_voice

    Delete your voice clone and its provider samples. A voice in an active call cannot be deleted.

    Measured

  • end_call

    End an in-progress call early. Patch requests disconnection by deleting the LiveKit room; a spoken farewell is not guaranteed. Check get_call for the resulting status. Use when the user changes their mind or the call is no longer needed. Available transcript snapshots are retained and the resolution is extracted separately.

    Measured

  • execute_subscription_change

    Apply the exact, unexpired quote the user explicitly approved after seeing its immediate charges, recurring price, effective time and limits. May charge a saved payment method, change the subscription, cancel renewal or undo a scheduled change. Set user_authorized=true only after that approval; never infer permission to spend. Reuse the same request_id and arguments after a lost response. Return any payment/authentication URL for the user to complete; never collect payment credentials in chat.

    Measured

  • get_account

    Read your profile, caller verification, revision, account defaults, setup progress and notices. Use update_account for profile changes and set_onboarding for setup state.

    Measured

  • get_agent

    Read active user-configurable settings and revision. Inbound includes editable greeting/instructions; outbound prompt text and Patch internal system prompts are not exposed. Settings are null until configured.

    Measured

  • get_agent_test

    Read a synthetic test’s status, transcript, result and transcript expiry.

    Measured

  • get_agent_test_listener

    Get a short-lived, subscribe-only LiveKit credential for listening to your running synthetic test from a compatible client.

    Measured

  • get_billing

    Read plans, usage, subscription state, payment-method summary and invoices. Reconciles subscription state with Stripe; use invoice_cursor for older invoices.

    Measured

  • get_call

    Get the status and, once terminal, the structured resolution of a call started with place_call. Returns instantly by default. Pass wait_seconds (max 50) to have the server hold the request and return early on any status change — fewer round trips while a call is in progress. Terminal statuses: completed, answered_silently, no_answer, busy, voicemail, failed, rejected, canceled, declined_recording, opted_out. rejected means safety screening declined the objective before dialing; error.message and resolution.summary explain why. Terminal calls include a `resolution` {outcome: achieved|partially_achieved|not_achieved|no_conversation|unknown, summary, commitments[], follow_ups[], key_facts[]} — read it before the transcript; it is the answer. unknown means the outcome could not be determined; review the transcript. Completed calls also carry the transcript (may be marked transcript_truncated) and a recording_url the user can listen to (private links expire after ~1 hour; on staging, fetch with the same OAuth Authorization: Bearer header). The resolution can lag the terminal status by a few seconds while it is extracted. Calls include the resolved locale, language, voice, and is_public; public calls return token-free listen and recording URLs that remain accessible while public. Use set_call_visibility only when the user explicitly asks to publish or make private. Every call includes a listen_url — the call page for the user (live audio + transcript while in progress; recording + transcript once ended). ended_by='user' on a canceled call means the user deliberately stopped it from that page — don't retry. recording_status=processing means the LiveKit session recording is being finalized and copied to private storage separately from the result. A recording can fail or be unavailable. Call get_call again, or pass wait_seconds on an already-terminal call to wait for a recording state change.

    Measured

  • get_call_diagnostics

    Read private diagnostic events for an owned call. Public call visibility never grants access to diagnostics.

    Measured

  • get_call_listener

    Get a short-lived, subscribe-only LiveKit credential for listening to your active call from a compatible client.

    Measured

  • get_capabilities

    Start here to discover Patch actions, granted permissions, feature prerequisites and the next tools to call.

    Measured

  • get_connector_tools

    Read the cached individual tool definitions for an owned connection. These functions are exposed separately to the voice agent on calls after set_agent_connectors assigns the connection. This read does not invoke them, refresh discovery or return credentials.

    Measured

  • get_forwarding_carrier

    Suggest forwarding instructions for the verified personal number during inbound onboarding. Carrier lookups are cached for a day.

    Measured

  • get_forwarding_instructions

    Get carrier-specific steps for forwarding an existing phone to an owned Patch number. The user or carrier must activate forwarding; Patch cannot activate it remotely.

    Measured

  • get_number_claim

    Read provisioning progress for a number claim.

    Measured

  • get_operation

    Recover a request’s durable outcome. A running/needs_attention operation must not be retried under a new ID.

    Measured

  • get_phone_number

    Read one owned number by number_id; omit it to inspect the default outbound number. Accepts calls:read or numbers:read. Number-management settings, revision, recovery deadline and workspace_revision require numbers:read. Does not place a call or expose agent instructions or voices.

    Measured

  • get_voice_preview

    Get a short-lived playable URL using provider_voice_id from list_voices, or Claudia's provider ID. Use the provider identity here; clone management uses voice_id. Built-in catalog voices already include sample URLs.

    Measured

  • list_activity

    Read owned history newest first. kind=call (default) requires calls:read and returns call statuses, resolution summaries/outcomes and listen links. kind=test requires configuration:read and returns finished synthetic tests. kind=all requires both permissions. Pass next_cursor unchanged with the same kind to fetch older entries.

    Measured

  • list_agents

    Find the identifiers and revisions of your inbound and outbound agents.

    Measured

  • list_authorized_apps

    List applications authorized to access this account. These are distinct from external tools used by voice agents.

    Measured

  • list_connectors

    Read this account's saved voice-agent connections, authorization state and common providers. Returns setup_url for entering API keys or custom OAuth credentials on the website. Reads stored metadata only; does not contact providers, discover tools, assign agents or invoke external actions.

    Measured

  • list_phone_numbers

    List this account's phone numbers, active direction availability and default_number_id. Use number_id to select a source for place_call. Accepts calls:read or numbers:read; management settings and workspace_revision are included only with numbers:read. Does not expose agent instructions or voices.

    Measured

  • list_test_scenarios

    List synthetic test scenarios and available responder outcomes. Tests use fictional data and never invoke connected external tools.

    Measured

  • list_voices

    List voices for the current account mode. Change mode with update_account. Beta offers GPT Live voices: assign their IDs using gptLiveVoice in update_agent. Standard uses voice and supports entitled custom voices.

    Measured

  • place_call

    Place one real phone call FROM the selected outbound number (the authenticated user’s verified personal number by default) to accomplish a specific objective (book a table, ask a question, chase an order). A real-time voice agent handles the call, including automated phone menus and hold queues. Its default opening says who it is calling for and states the call's purpose. Use get_agent and update_agent for number settings and inbound greeting/instructions. Outbound greeting and system instructions are read-only through MCP; use objective and context for call-specific facts. Changes apply directly to new calls. Call facts are added automatically. The recording disclosure belongs in the first spoken turn that advances the objective, whether asking a question, making a request, or giving task-related details. Brief introductory chatter or an acknowledgment of a request to hold may come first. Naturally include “on a recorded line” in the introduction or response, using a natural equivalent in the selected call language. Returns immediately with a call_id and resolved locale, language, and voice; the call proceeds in the background and typically takes 2–5 minutes — poll get_call (pass wait_seconds to long-poll) until the status is terminal. The response includes a listen_url: a private web link where the user can hear the call live, watch the transcript, and stop the call — offer it to the user. Calls in Central America, Europe, North America, and South America, subject to route availability; never for emergencies. Calls involving a non-US/Canadian number require a paid plan from the first call. Rates vary by caller ID and destination; the response includes an estimated provider cost for one minute, including per-call costs. This estimate is not a final charge. Paid usage follows telephone, AI and any lookup costs, including unsuccessful attempts, and can update after the call. Calls can be placed at any time of day, any day of the week, and the user is responsible for fair use; one call runs at a time per account and volume is governed by the plan — rejections return a machine-readable `error` code with retry guidance, so relay the message to the user rather than retrying blindly. The voice agent receives the name of the person the call is for: if the account has no name on file the call is rejected with `user_name_required` — ask your user what name to give (e.g. "Sam" or "Sam at Acme"), then call again with it in `user_name`; it is saved to the account for future calls.

    Measured

  • preview_subscription_change

    Create a 15-minute quote for starting a subscription, changing its plan, canceling renewal at period end, or undoing cancellation/a scheduled downgrade. Returns immediate charges, monthly list price, effective time and allowances. May read Stripe and save a local quote; does not charge or change a subscription. Show the complete quote to the user and obtain explicit approval before execute_subscription_change. Each preview creates a new quote.

    Measured

  • remove_connector

    Delete an owned connection and its saved credentials. Also revoke that connection from every assigned agent without applying unrelated settings. Requires configuration permission when an agent assignment is removed. Does not invoke external tools or revoke consent at the third-party provider.

    Measured

  • rename_voice

    Rename one of your voice clones.

    Measured

  • reset_agent

    Reset user-configurable agent settings to defaults for future calls. Removes active external connection assignments and requires connector permission when assignments exist.

    Measured

  • resume_operation

    Recover an interrupted number claim, voice clone or subscription attempt owned by this account and the original authorization grant. Requires that operation's original permissions. May reconcile number provisioning, find the exact existing provider voice, or retry the persisted subscription request with its original idempotency key. Never creates a replacement request or authorizes new spending. Completed results and definitive failures are returned without repeating provider actions.

    Measured

  • revoke_authorized_app

    Disconnect an authorized application. Revoking the current application ends this MCP connection.

    Measured

  • search_phone_numbers

    Find included US or Canadian numbers. Plus automatically prefers any unclaimed Patch number in the requested country, then falls back to area-code search. Pro plans use area-code search so the user can choose a number. Plus can use reuse_only without an area code to check its existing inventory. Offers expire; claim the chosen offer.

    Measured

  • set_agent_connectors

    Replace the external connections available to one active voice agent for future calls. Review get_connector_tools and obtain authorization for those capabilities first. Every discovered function is exposed individually to the voice agent; it may invoke those external actions within its call instructions. An empty connector_ids list removes access. Does not invoke tools or change unrelated agent settings.

    Measured

  • set_call_visibility

    Make a call owned by the authenticated user public or private. Calls are private by default. Only publish when the user explicitly asks: a public call exposes its objective, phone numbers, transcript, result and audio to anyone with its permanent, token-free listen_url, including live audio while in progress. Set is_public to false to disable token-free access again; existing private signed links remain valid until they expire. Public visitors cannot stop the call or change visibility.

    Measured

  • set_default_phone_number

    Choose the default outbound number using workspace_revision from get_phone_number.

    Measured

  • set_onboarding

    Save only setup progress: choose inbound/outbound intent and mark the checklist checkout, complete or skipped. Checkout records progress only; this tool never opens payment, buys a plan or acquires a number.

    Measured

  • start_agent_test

    Run one isolated synthetic conversation against the active agent settings at the supplied revision. Outbound supports preset or custom fictional scenarios; inbound requires custom_scenario. Uses LiveKit test rooms and may consume AI usage. Never dials a phone number, publishes settings or invokes connected external tools.

    Measured

  • stop_agent_test

    Stop your synthetic test and retain its captured result.

    Measured

  • update_account

    Update supplied profile, account-wide mode (standard or beta), language, voice and pronunciation defaults using the revision from get_account. Language and voice defaults require configuration permission. Internal system prompts are not exposed through MCP.

    Measured

  • update_agent

    Apply supplied settings directly to an agent for future calls using the revision from get_agent. Inbound greeting and instructions are editable. Outbound greeting and system instructions are not exposed or editable through MCP; supply per-call facts in place_call objective and context. Use set_agent_connectors separately for external connections.

    Measured

  • update_billing_profile

    Update the Stripe customer’s billing name, email or address. Payment credentials are never accepted here.

    Measured

  • update_phone_number

    Change a label, inbound/outbound availability or retention preference using the number revision. Enabling an unpublished direction activates its initial defaults; saved drafts and existing live settings are preserved.

    Measured

  • verify_voice

    Refresh provider verification status. If verification is still required, the user must complete the provider’s verification with support.

    Measured

Probe history

  • ok415 ms52 tools

Status and uptime

Add badge to your README

The image links back to this page. It shows checks passed, or uptime, and the colour follows the latest status. Responses are cached for 5 to 15 minutes.

MCP Heartbeat badge

Markdown

[![MCP Heartbeat](https://mcpheartbeat.com/badge/com.patchmcp/patch.svg)](https://mcpheartbeat.com/s/com.patchmcp/patch)

HTML

<a href="https://mcpheartbeat.com/s/com.patchmcp/patch"><img alt="MCP Heartbeat" src="https://mcpheartbeat.com/badge/com.patchmcp/patch.svg"></a>

Uptime markdown

[![MCP Heartbeat uptime](https://mcpheartbeat.com/badge/com.patchmcp/patch.svg?kind=uptime)](https://mcpheartbeat.com/s/com.patchmcp/patch)

Served from https://mcpheartbeat.com.

Related servers

All alternatives

Same function and industry, ranked by checks passed then median latency.

Connect to this server

Claude Code

claude mcp add --transport http patch-mcp https://www.patchmcp.com/mcp

Cursor .cursor/mcp.json

{
  "mcpServers": {
    "patch-mcp": {
      "url": "https://www.patchmcp.com/mcp"
    }
  }
}

VS Code .vscode/mcp.json

{
  "servers": {
    "patch-mcp": {
      "type": "http",
      "url": "https://www.patchmcp.com/mcp"
    }
  }
}