Your agents can ask what's down, too.
Upcertain ships a Model Context Protocol server. Point Claude, Cursor or your own agent at it and they can read monitors, uptime and incidents, and create checks, scoped to your account's API key.
Before you start
- MCP is included in the Team plan and up. Check yours under Account, Plan & usage.
- An owner or admin creates an API key under Account, API keys. It is shown once.
- Use a read-write key if the agent should create or pause monitors and acknowledge incidents. Read-only and monitor-specific keys can only read.
https://upcertain.innovation-insight.com/api/mcpAuthentication: Authorization: Bearer <API key>Connect a client
Claude Code
Run this in your terminal, then ask Claude about your monitors.
claude mcp add --transport http upcertain https://upcertain.innovation-insight.com/api/mcp --header "Authorization: Bearer <your API key>"Claude Desktop
Add this to claude_desktop_config.json (Settings, Developer, Edit config) and restart Claude. It uses the mcp-remote bridge, so Node.js must be installed.
{
"mcpServers": {
"upcertain": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://upcertain.innovation-insight.com/api/mcp",
"--header",
"Authorization:${UPCERTAIN_AUTH}"
],
"env": {
"UPCERTAIN_AUTH": "Bearer <your API key>"
}
}
}
}Cursor and other clients
Add this to ~/.cursor/mcp.json, or give any client that supports remote HTTP servers the address and header above.
{
"mcpServers": {
"upcertain": {
"url": "https://upcertain.innovation-insight.com/api/mcp",
"headers": {
"Authorization": "Bearer <your API key>"
}
}
}
}Tools
| Tool | Arguments | What it does | Key |
|---|---|---|---|
| list_monitors | — | All monitors with status, last check and 24-hour uptime. | Any |
| get_monitor | monitor_id | One monitor's configuration and current state. | Any |
| get_uptime | monitor_id, window (24h, 7d, 30d, 90d) | Uptime, incident count, downtime and average response time. | Any |
| list_incidents | since (7d or an ISO date), status, monitor_id, limit | Incidents, newest first. | Any |
| get_incident | incident_id | One incident with its activity log. | Any |
| list_status_pages | — | Status pages with their address and visibility. | Any |
| create_monitor | type, url or host, port, keyword, name, interval_sec | Create an HTTP, keyword, ping, port, SSL or heartbeat monitor. | Read-write |
| pause_monitor | monitor_id | Pause checks for a monitor. | Read-write |
| resume_monitor | monitor_id | Resume a paused monitor. | Read-write |
| acknowledge_incident | incident_id | Acknowledge an ongoing incident so repeat alerts stop. | Read-write |
Resource upcertain://account returns the plan, limits, monitor counts and open incidents. Tool calls follow the same rate limit as the REST API: 60 requests per minute per key.
Things to ask
- > Which of our APIs had incidents this week, and how long were they down?
- > Add a keyword monitor for https://example.com that checks for "Welcome" every 5 minutes.
- > Build me a table of 30-day uptime for every monitor, worst first.
- > Acknowledge the open incident on payments-api.
Prefer plain HTTP?
The same API key works with the REST API at https://upcertain.innovation-insight.com/api/v1. Errors come back as { "error": { "code", "message" } }.
curl -H "Authorization: Bearer <your API key>" https://upcertain.innovation-insight.com/api/v1/incidents?since=7dThe full endpoint list is on the API keys page in your account. Create an account to get started.