Upcheck MCP
Website monitoring from any MCP client. Ask what is down, why a certificate alert fired, or add the hostname you just deployed. Manage uptime, SSL, DNS, domain, keyword, page-change and port checks and their alert rules with one organization API key.
Hosted MCP Server
npx add-mcp 'https://mcp.upcheck.so/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
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
| Tool | What it does |
|---|---|
| list_domains | Every monitored website with its latest state. |
| get_domain | One website with full certificate and registration detail. |
| add_domain | Start monitoring a hostname; probes it inline. |
| update_domain | Rename the hostname or its label. |
| remove_domain | Stop monitoring and delete the website. |
| refresh_domain | Probe every check on one website now. |
| refresh_all_domains | Queue a fresh probe of every website. |
| get_domain_monitors | Every scheduled check and its latest outcome. |
| set_keyword_check | Name the text a page must (or must not) contain. |
| remove_keyword_check | Forget the text and stop the keyword check. |
| set_content_check | Watch a page, an element or a number on it for change. |
| remove_content_check | Forget the page and stop the content check. |
| set_http_check | Give the uptime check a path, headers, an expected status, body text and a latency limit. |
| reset_http_check | Back to a plain GET of the root. |
| set_port_check | Name the TCP ports, and optionally the host, that must accept a connection. |
| remove_port_check | Forget the ports and stop the port check. |
| get_domain_history | Recorded check outcomes, newest first. |
Alerts
| Tool | What it does |
|---|---|
| list_alert_rules | Every rule: subject, triggers, cadence, destinations. |
| create_alert_rule | Add a rule; evaluated immediately when enabled. |
| update_alert_rule | Change only the fields given; pause with enabled: false. |
| delete_alert_rule | Remove a rule. |
| list_alert_events | Alerts that were actually delivered. |
Destinations
| Tool | What it does |
|---|---|
| list_email_lists | Named recipient sets for the email channel. |
| create_email_list | Add a list. |
| update_email_list | Rename a list or replace its addresses. |
| delete_email_list | Remove a list. |
| list_integrations | Slack, Discord, Teams and webhook destinations. |
| create_integration | Register an incoming-webhook URL. |
| update_integration | Change only the fields given; mute with enabled: false. |
| delete_integration | Remove a destination. |
| test_integration | Send a labelled sample alert to prove the URL. |
Team and account
| Tool | What it does |
|---|---|
| list_team_members | Members and pending invitations. |
| invite_team_member | Create an invitation and return its accept link. |
| update_team_member_role | Change a member's role. |
| remove_team_member | Remove a member or withdraw an invitation. |
| get_organization | Which organization the key belongs to, and its role. |
| rename_organization | Rename the workspace. |
| get_stats | The dashboard's health counts. |
| get_activity | The audit trail, newest first. |
| get_billing | Subscription 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.
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://upcheck.so/mcp","url":"https://upcheck.so/mcp","name":"Upcheck MCP Server","description":"Connect Claude, Cursor or any MCP client to your Upcheck monitoring. Ask what is failing, add websites, and manage alert rules with an organization API key.","isPartOf":{"@id":"https://upcheck.so/#website"},"about":{"@id":"https://upcheck.so/#software"},"primaryImageOfPage":"https://upcheck.so/og.png","inLanguage":"en","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://upcheck.so"},{"@type":"ListItem","position":2,"name":"Docs","item":"https://upcheck.so/docs"},{"@type":"ListItem","position":3,"name":"Upcheck MCP Server","item":"https://upcheck.so/mcp"}]}}]}