Sign in
Model Context Protocol

Your monitoring, as tools your assistant can call.

The Upcheck MCP server exposes the same operations as the REST API over Streamable HTTP. Connect it once and ask what is down, why a certificate alert fired, or to add the hostname you just deployed.

Connect

The server lives at https://mcp.upcheck.so/mcp and authenticates with an organization API key from Settings → API keys, sent as a bearer token. A Member key lets an assistant read but not change anything, which is the right default for a chat tool; use an Admin key when you want it to act.

Claude Code

terminal
claude mcp add --transport http upcheck https://mcp.upcheck.so/mcp \
  --header "Authorization: Bearer uck_your_key"

Cursor — in .cursor/mcp.json (project) or the global settings:

.cursor/mcp.json
{
  "mcpServers": {
    "upcheck": {
      "url": "https://mcp.upcheck.so/mcp",
      "headers": { "Authorization": "Bearer uck_your_key" }
    }
  }
}

VS Code — in .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "upcheck": {
      "type": "http",
      "url": "https://mcp.upcheck.so/mcp",
      "headers": { "Authorization": "Bearer uck_your_key" }
    }
  }
}

Claude Desktop and other clients that only speak stdio can bridge through mcp-remote:

claude_desktop_config.json
{
  "mcpServers": {
    "upcheck": {
      "command": "npx",
      "args": [
        "mcp-remote", "https://mcp.upcheck.so/mcp",
        "--header", "Authorization:Bearer uck_your_key"
      ]
    }
  }
}

Any client that speaks Streamable HTTP can POST JSON-RPC to the URL with the same header. Responses are plain JSON; no SSE stream is held open.

Tools

Every tool operates inside the key's organization. Read tools are marked read-only so a client can run them without asking; the destructive ones (removing a website, deleting a rule) ask the assistant to confirm with you first.

Websites
ToolWhat it does
list_domainsEvery monitored website with its latest state.
get_domainOne website with full certificate and registration detail.
add_domainStart monitoring a hostname; probes it inline.
update_domainRename the hostname or its label.
remove_domainStop monitoring and delete the website.
refresh_domainProbe every check on one website now.
refresh_all_domainsQueue a fresh probe of every website.
get_domain_monitorsThe four scheduled checks and their latest outcome.
get_domain_historyRecorded check outcomes, newest first.
Alerts
ToolWhat it does
list_alert_rulesEvery rule: subject, triggers, cadence, destinations.
create_alert_ruleAdd a rule; evaluated immediately when enabled.
update_alert_ruleChange only the fields given; pause with enabled: false.
delete_alert_ruleRemove a rule.
list_alert_eventsAlerts that were actually delivered.
Destinations
ToolWhat it does
list_email_listsNamed recipient sets for the email channel.
create_email_listAdd a list.
update_email_listRename a list or replace its addresses.
delete_email_listRemove a list.
list_integrationsSlack, Discord, Teams and webhook destinations.
create_integrationRegister an incoming-webhook URL.
update_integrationChange only the fields given; mute with enabled: false.
delete_integrationRemove a destination.
test_integrationSend a labelled sample alert to prove the URL.
Team and account
ToolWhat it does
list_team_membersMembers and pending invitations.
invite_team_memberCreate an invitation and return its accept link.
update_team_member_roleChange a member's role.
remove_team_memberRemove a member or withdraw an invitation.
get_organizationWhich organization the key belongs to, and its role.
rename_organizationRename the workspace.
get_statsThe dashboard's health counts.
get_activityThe audit trail, newest first.
get_billingSubscription state and the monthly estimate.

Things to ask

“Which of our websites are failing right now, and since when?” runs get_stats and list_domains, then get_domain_monitors on the ones that are down.

“Add api.example.com and alert #ops on Slack if it goes down” runs add_domain, list_integrations and create_alert_rule with an http_down trigger scoped to the new website.

“Why did we get a certificate alert yesterday?” runs list_alert_events and get_domain_history.

Prefer HTTP?

The tools are thin wrappers over the REST API, so anything an assistant can do you can also script. See the guide and the API reference.