Phonon MCP tools

The complete list of tools Claude can call when you install Phonon. Auto-generated from packages/shared/src/mcp-tools.ts so the docs never lie.

Install

claude mcp add phonon https://mcp.phonon.sh/mcp \
  --header "Authorization: Bearer <YOUR_TOKEN>"

Get your token at phonon.sh/install.

11 tools across 5 categories

setup

detect_dependencies setupmonitors

Scan a project directory for SDKs Phonon knows about (OpenAI, Stripe, Vercel, etc.) and return the matching provider slugs. Call this FIRST when a user asks to set up monitoring — the response tells you what to feed into add_provider_monitors.

Input

Field Type Description
packageJson required String The literal contents of package.json (or pyproject.toml / Cargo.toml / etc.) read from the user's repo. Phonon parses imports + dep names from this string.
extraImports Optional Optional extra import paths you found by grepping source files. Use this when package.json is missing or when you can see imports the manifest doesn't list.

Example prompts

  • "Set up monitoring for this app."
  • "What upstream services should I monitor?"
  • "I'm about to deploy — what should be on my status page?"
add_provider_monitors setupmonitors

Subscribe this organization to one or more shared provider monitors (from detect_dependencies). Auto-creates a default status page on first call. Pass the array of slugs you got back from detect_dependencies — do NOT ask the user to pick; subscribe to all detected unless they say otherwise.

Input

Field Type Description
providerSlugs required Array Slugs returned by detect_dependencies. E.g. ["openai", "vercel", "stripe"].

Example prompts

  • "Add OpenAI, Vercel, and Stripe to my status page."
get_status_page_url setup

Return the public URL of this org's status page. Call this after add_provider_monitors or create_monitor to give the user a link to share.

Example prompts

  • "What's my status page URL?"
  • "Where can I share my status page?"

monitors

create_monitor monitors

Create a user-defined HTTP monitor on a URL the user owns. Use this for the user's own services (api.example.com, status.example.com). For upstream SaaS providers, use add_provider_monitors instead — it's cheaper and shares one global scrape across all tenants.

Input

Field Type Description
name required String Human-readable name shown on the status page.
url required String The full URL to GET every 60 seconds.
expectedStatus Default HTTP status code that counts as healthy. · default 200
timeoutMs Default Abort the check if it takes longer than this. · default 10000

Example prompts

  • "Monitor https://api.example.com/health."
  • "Add a check on status.phonon.sh."
list_monitors monitors

List every monitor (HTTP + provider) for the current org with its latest status, latency, and pause state. Use before delete/pause/update so you can show the user the right ID.

Example prompts

  • "What am I monitoring?"
  • "Show my monitors."
delete_monitor monitors

Permanently delete a monitor by id. Confirm with the user first — this also removes it from the status page and drops all history.

Input

Field Type Description
monitorId required String Monitor id from list_monitors.

Example prompts

  • "Stop monitoring api.example.com."
  • "Delete the GitHub monitor."
pause_monitor monitors

Pause or resume a monitor without deleting it. Use during planned maintenance so the alert dispatcher and status page don't go red.

Input

Field Type Description
monitorId required String
paused required Boolean true to pause, false to resume.

Example prompts

  • "Pause the api.example.com monitor for an hour."

incidents

list_incidents incidents

List active and recently-resolved incidents for the current org, newest first. Use when the user asks "what's broken right now" or before update_incident so you can find the right id.

Input

Field Type Description
state Default "active" hides resolved incidents; "all" includes the last 30 days. · default active

Example prompts

  • "What's currently broken?"
  • "Show recent incidents."
update_incident incidents

Post a public update to an incident and (optionally) move it to a new state. The user provides natural language ("we've identified the issue, rolling forward a fix"); pass it through verbatim — Phonon will NOT rewrite it.

Input

Field Type Description
incidentId required String
body required String
state Optional Omit to keep the current state. Use "resolved" to close the incident.

Example prompts

  • "Update the OpenAI incident: "we've switched to Anthropic, things look healthy.""
  • "Mark the incident as resolved."

alerts

configure_alerts alerts

Set the notification channels for this org. Replaces ALL existing channels — pass the full desired set. Email is the default; Slack requires an incoming-webhook URL the user pastes in.

Input

Field Type Description
channels required Array

Example prompts

  • "Alert me at me@example.com."
  • "Send Slack alerts to https://hooks.slack.com/services/T.../B.../..."

billing

upgrade_to_pro billing

Return a one-time Stripe Checkout URL for upgrading this org to Phonon Pro ($29/mo, unlimited monitors, Slack alerts, custom branding). The user opens the URL in their browser to complete payment. We do NOT take card details over MCP.

Example prompts

  • "Upgrade me to Pro."
  • "I'm hitting the 5-monitor limit — how do I get more?"

Next

Get my token →