---
title: "Connect Cursor"
description: "Manual MCP install for Cursor — drop a config snippet into mcp.json, restart, and run three commands to verify."
doc_version: "1"
last_updated: "2026-06-02"
---

## Prerequisites

- Cursor ≥ current GA release
- An `umk_live_*` API key from [app.uptimemonitoring.com](https://app.uptimemonitoring.com)

## Step 1 — Create an API key

Log in to [app.uptimemonitoring.com](https://app.uptimemonitoring.com) and create an API key labeled `cursor`. Keep it ready for the next step. Full key management details are in [Authentication](/docs/authentication/).

## Step 2 — Add the server to `mcp.json`

Create or open `.cursor/mcp.json` in your project root (project-local config). For a global install that works across all projects, use `~/.cursor/mcp.json` instead.

Add the UptimeMonitoring server block:

```json
{
  "mcpServers": {
    "uptimemonitoring": {
      "url": "https://api.uptimemonitoring.com/mcp",
      "headers": {
        "Authorization": "Bearer umk_live_..."
      }
    }
  }
}
```

Replace `umk_live_...` with your actual API key. Do not commit project-local `.cursor/mcp.json` with a live key — add `.cursor/mcp.json` to your `.gitignore` before saving.

## Step 3 — Restart Cursor and verify

Fully restart Cursor (quit and relaunch — killing only the window is not enough). Open the agent panel and confirm that `uptimemonitoring` appears in the MCP tools list. You should see all 8 tools from the [Available tools](/docs/mcp/#available-tools) table.

## Verify end-to-end

Run these three prompts in the Cursor agent panel to confirm the integration works:

**1. List your monitors**

> List my monitors.

Expected tool call: `list_monitors` — returns your current monitors with status.

**2. Create a test monitor**

> Create a monitor for `https://example.com/healthz` named `cursor-test`.

Expected tool call: `create_monitor` — returns a monitor object with an `id`. Note the `id` for the next step. If a monitor for that URL already exists, the API returns `409`; delete or rename the existing one first.

**3. Delete the test monitor**

> Delete the `cursor-test` monitor.

Expected tool call: `delete_monitor` — Cursor surfaces a confirmation prompt because `delete_monitor` carries `destructiveHint: true`. Confirm when asked. The monitor and its incident history are permanently removed.

## Common errors

| Symptom | Cause | Fix |
|---------|-------|-----|
| `401 Unauthorized` | Wrong or missing key | Confirm the key starts with `umk_live_` and is pasted in full without extra whitespace |
| Tools not appearing in agent panel | Cursor did not reload | Quit Cursor fully (including the background helper) and relaunch |
| Destructive tool blocked | Cursor prompts before running tools with `destructiveHint: true` | This is expected — confirm the action in the prompt |
| `409 Conflict` on create | Monitor for that URL already exists | List monitors, delete the duplicate by ID, then retry |

## OAuth path (coming soon)

Cursor Marketplace OAuth is on the roadmap. When it ships, OAuth becomes the recommended path — no `mcp.json` edit needed. Until then, the Bearer-header setup above is the documented and supported install. Track progress in the [host-onboarding umbrella issue](https://github.com/monitive/uptimemonitoring-web/issues/23).

## Next steps

- [MCP reference](/docs/mcp/) — full tool list, annotations, and host compatibility matrix
- [Authentication](/docs/authentication/) — key rotation and scopes
- [API Reference](/api-reference/) — REST endpoints if you need to script outside an agent