MCP Integration (AI Assistants)
Connect exit1.dev to AI assistants like Claude, Cursor, and Windsurf using the Model Context Protocol (MCP) . Set up monitoring straight from your editor, then ask questions about your monitoring data in natural language. No dashboards required.
Available on every plan, including Free. MCP access follows API access: they are the same entitlement, not two. Key counts: 1 on Free, 3 on Indie, 10 on Nano, 100 on Pro.
There are two ways to connect:
- Hosted (recommended). OAuth sign-in through your browser. No API key, no npm install, and it includes the write tools (create checks, configure alerts, send test alerts).
- Local stdio. The
exit1-mcpnpm package with an API key. Use it when your client doesn’t support remote MCP servers with OAuth, or in CI-ish setups where a browser step is unwelcome.
Hosted setup (recommended)
Run this in your terminal before starting a session. MCP clients load servers at startup, so a server added mid-conversation isn’t usable until you restart the client.
claude mcp add --transport http exit1 https://app.exit1.dev/mcp/v1 && claude mcp login exit1The login opens your browser to sign in. No Exit1 account yet? Sign-up happens right there in the flow.
It’s one chained line on purpose: pasting the commands as two separate lines is unreliable in some terminals (cmd.exe drops the second line). Two caveats: in old Windows PowerShell (5.1), where && doesn’t parse, run the two halves one at a time; and on Claude Code versions without claude mcp login, run the add command alone, then start claude and authenticate via /mcp.
Other clients: add https://app.exit1.dev/mcp/v1 as an HTTP MCP server wherever your tool configures MCP, restart it, and complete the sign-in when prompted.
Once connected, paste the setup prompt from app.exit1.dev/mcp into your assistant from inside your project, or use the built-in setup_monitoring prompt (/exit1:setup_monitoring in Claude Code). The assistant reads your repo, proposes checks, creates them, configures alerts, and sends a test alert.
Local stdio setup (API key)
Requirements
- An Exit1 account on any plan (Free included)
- An API key (add
checks:writeandalerts:writescopes if the assistant should create checks and configure alerts, not just read) - Node.js 18+ installed
Step 1: Create an API Key
- Log in to app.exit1.dev
- Go to Settings > API Keys
- Click Create API Key
- Name it (e.g. “Claude MCP”)
- Select the scopes you want the assistant to have
- Copy the key. You’ll need it in the next step.
Step 2: Connect Your AI Assistant
Claude Desktop
- Open Claude Desktop
- Click the menu in the top-left
- Go to Settings > Developer > Edit Config
- Add the following to your config:
{
"mcpServers": {
"exit1": {
"command": "npx",
"args": ["-y", "exit1-mcp"],
"env": {
"EXIT1_API_KEY": "ek_live_your_key_here"
}
}
}
}- Replace
ek_live_your_key_herewith your actual API key - Save the file and restart Claude Desktop
Claude Code
Run in your terminal:
claude mcp add exit1 -- npx -y exit1-mcpThen add EXIT1_API_KEY to your shell environment:
# macOS / Linux: add to ~/.bashrc or ~/.zshrc
export EXIT1_API_KEY="ek_live_your_key_here"
# Windows: run in PowerShell
[System.Environment]::SetEnvironmentVariable("EXIT1_API_KEY", "ek_live_your_key_here", "User")Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"exit1": {
"command": "npx",
"args": ["-y", "exit1-mcp"],
"env": {
"EXIT1_API_KEY": "ek_live_your_key_here"
}
}
}
}Windsurf
Add to your Windsurf MCP config (Settings > MCP):
{
"mcpServers": {
"exit1": {
"command": "npx",
"args": ["-y", "exit1-mcp"],
"env": {
"EXIT1_API_KEY": "ek_live_your_key_here"
}
}
}
}Start Asking Questions
Once connected, you can ask your AI assistant things like:
- “Set up uptime monitoring for this project”: reads your repo, creates the checks, configures alerts, sends a test alert
- “Are any of my monitors down?”: lists all checks and their status
- “What’s the uptime for my API check over the last 30 days?”: shows uptime %, response times
- “Show me the last 10 failures for production”: fetches recent errors from history
- “Compare response times this week vs last week”: multi-range stats comparison
- “What does my status page show right now?”: current status page snapshot
Available Tools
Both connection methods expose the same 14 tools: 7 read, 7 write.
| Tool | What it does |
|---|---|
get_account | Your plan, limits, and current usage, so the assistant plans within them. |
list_checks | List all checks with current status. Filter by online, offline, or unknown. |
get_check | Details for a specific check: status, response time, SSL info, maintenance windows. |
get_check_history | Historical results with timestamps, status codes, and errors. |
get_check_stats | Uptime %, average/min/max response time over time ranges (1h, 1d, 7d, 30d, etc.). |
get_status_page | Current snapshot of a public status page. |
get_alert_settings | Which alert channels are configured. |
create_check | Create an HTTP, TCP, heartbeat, or domain check. |
update_check | Change a check’s URL, interval, or assertions. |
toggle_check | Pause or resume a check. |
delete_check | Delete a check. Never granted by default; the client has to ask for the scope. |
set_email_alerts | Set which email address receives alerts. |
add_webhook_alert | Add a Slack, Discord, Teams, or plain webhook channel. |
send_test_alert | Fire a real test alert to a configured channel. |
Rate Limits
The hosted server has its own interactive-session limits (30 requests/min, 200 writes/day). The stdio server uses your API key’s limits:
| Limit | Value |
|---|---|
| Per API key | 5 requests/min |
| Daily per key | 500 requests/day |
| Daily per user | 2,000 requests/day |
Normal AI conversations use 2–5 tool calls, so you’re unlikely to hit these limits in typical usage.
Troubleshooting
The assistant can’t see the exit1 tools even though the server is configured
Your client loaded its MCP servers before the exit1 entry existed. Restart the client (in Claude Code, claude --continue resumes the conversation with the new server loaded).
“EXIT1_API_KEY environment variable is required”
Your API key isn’t set. Double-check the env block in your config and make sure the key is correct.
“API error 401: Unauthorized”
Your API key is invalid or has been revoked. Create a new one in the Exit1 dashboard. On the hosted server, run claude mcp login exit1 again (or /mcp in a session) to re-authenticate.
“API error 429: Rate limit exceeded” You’ve hit the API rate limit. Wait a moment and try again.
MCP server not showing up in Claude Desktop
Make sure you restarted Claude Desktop after editing the config. Check that Node.js 18+ is installed (node --version).
NPM package not found
Run npx -y exit1-mcp manually in your terminal to verify it installs correctly. If behind a corporate proxy, configure npm’s proxy settings.