Integrations

MCP integration

SenalOps runs a hosted Model Context Protocol (MCP) server at https://senalops.com/api/mcp. Connect an AI client by signing in with your SenalOps account, with no API key to copy, and ask it to check monitor health, review incidents and alert deliveries, trigger database backups, or create monitors, alert channels, and status pages.

Audience: Developers, AI engineers, platform teams

Connect with your SenalOps account

  • Add https://senalops.com/api/mcp to your MCP client as a remote server. The server uses the Streamable HTTP transport.
  • When the client connects for the first time, it opens the SenalOps sign in page. Sign in with Google or with your email and password.
  • Review the consent screen. It shows the client name, the account and organization you are connecting, and the site you will return to.
  • Choose Allow access. A short Returning to your app page sends you back to the client, which finishes the connection. Choose Cancel to deny the request.
  • Account sign in works on every plan, including Free, and connects the client to the organization you were signed in to.
  • Clients stay connected with an access token that lasts one hour and a refresh token that lasts 30 days. Each refresh token works once and is replaced when used, so a leaked token cannot be replayed.

Client setup examples

  • Claude Code: run claude mcp add --transport http senalops https://senalops.com/api/mcp, then run /mcp in Claude Code and choose SenalOps to sign in.
  • Claude on the web and desktop: open Settings, go to Connectors, add a custom connector with the URL https://senalops.com/api/mcp, then choose Connect to sign in.
  • Cursor: add the server to mcp.json as { "mcpServers": { "senalops": { "url": "https://senalops.com/api/mcp" } } }, then sign in when Cursor prompts you.
  • Other clients: any client that supports Streamable HTTP and MCP authorization finds the sign in flow automatically. The server answers unauthenticated requests with a 401 that points to its OAuth metadata, and supports dynamic client registration and PKCE.

Connect with an API key

  • Use an API key for clients that cannot sign in with OAuth, or for scripts and automation.
  • Create a key from Dashboard, API keys. API keys are available on the Pro and Business plans.
  • Send the key as a bearer token, for example { "mcpServers": { "senalops": { "url": "https://senalops.com/api/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }.
  • An API key acts for the whole organization and is not limited by any one person's role, so store it like a password and give it only to trusted automation.
  • Revoke a key from Dashboard, API keys to remove its access immediately.

Manage connected clients

  • Dashboard, MCP connections lists the clients you authorized in the current organization and when each one connected.
  • Choose Disconnect to revoke that client's tokens immediately. The disconnect is written to the audit log.
  • Access also ends automatically if you leave the organization, because every call checks your membership.

Monitoring tools

  • list_monitors: lists monitors with their type, target, current status, paused state, last check time, and interval. Accepts limit from 1 to 100 (default 100) and a cursor; pass back the nextCursor value to read the next page.
  • get_monitor_live: takes a monitorId and returns the monitor's current state, next check time, and latest probe result, including region, status, response time, status code, and error.
  • list_active_incidents: lists unresolved incidents across the organization with the monitor name, start time, cause, and AI explanation. Accepts limit (default 20, maximum 100).
  • list_incidents: takes a monitorId and returns that monitor's incident history with start time, resolution time, cause, and AI explanation. Accepts limit (default 20, maximum 100).
  • create_monitor: creates an http, tcp, ping, heartbeat, or agent monitor. Requires name, type, and intervalSeconds (30 to 86400), plus a target for every type except heartbeat. Optional fields are keyword, expectedStatusCode, checkSslExpiry, regions, and for agent monitors agentPrompt, agentExpectation, agentBodyTemplate, agentResponsePath, and agentAuthHeader.
  • create_monitor follows the same rules as the dashboard: your plan's monitor limit applies, an interval below the plan minimum is raised to that minimum, extra regions are trimmed to the plan limit, agent monitors need the Pro or Business plan, names must be unique, and targets must be publicly reachable.

Alerting tools

  • list_alerts: lists recent alert deliveries with the channel, status (sent, failed, queued, or suppressed), message, and provider status. Accepts limit (default 20, maximum 100).
  • list_alert_channels: lists alert destinations with their type and label. Destinations are summarized as the email address, phone number, or webhook host, so full webhook URLs are never returned.
  • create_alert_channel: adds an email, slack, webhook, sms, or whatsapp destination. Pass value as an email address, a phone number in E.164 format such as +14155550123, or a public HTTPS URL for Slack and webhooks, with an optional label. The channel type must be included in your plan and allowed by organization policy.

Status page tools

  • list_status_pages: lists public status pages with their title, slug, description, and public URL. Status pages are available on the Builder plan and above.
  • create_status_page: creates a public status page from a title, with an optional slug and description. Without a slug, one is generated from the title; it must be at least 3 characters and not already taken. The page includes every current monitor and counts toward your plan's status page limit.

Senal Recover tools

  • list_connections: lists protected database connections with their name, engine, status, last check time, and last error.
  • list_backups: lists backup jobs and their validation status, for one connection when you pass connectionId or for the whole organization otherwise. Accepts limit (default 20, maximum 100).
  • trigger_backup: starts a manual backup for a connectionId and returns the new backupJobId with a pending status. Use list_backups to follow its progress.
  • Recover tools need the Pro or Business plan.

Example requests

  • Which of my monitors are down right now, and what did the latest check return?
  • Summarize active incidents and their AI explanations.
  • Create an HTTP monitor for https://api.example.com/health that checks every 60 seconds.
  • Did any alert fail to deliver in the last day?
  • Trigger a backup of my production PostgreSQL connection, then show its validation status.
  • Create a public status page called Acme Status.

Permissions, limits, and safety

  • Every call is scoped to one organization: yours when you sign in, or the key owner's when you use an API key. No tool accepts an organization ID.
  • Signed in clients act as you. Reading alerts, alert channels, and Recover data, and every tool that creates something, need the matching permission in your role. Monitor and incident reads are available to every member.
  • Plan limits and entitlements apply to every tool, for both sign in and API key access.
  • Each API key or signed in connection can make 60 requests per minute. Requests over the limit are rejected until the window resets.
  • MCP cannot edit, pause, resume, or delete anything, and it cannot restore backups. Those actions stay in the dashboard.
  • Monitors, alert channels, status pages, and backups created through MCP are written to the audit log with MCP as the source.
  • Reads query live data on every call. The server does not push updates, so poll when you need fresh results.

Troubleshooting

  • Sign in finishes but the client stays disconnected: after Allow access, use the Continue link on the Returning to your app page if the redirect does not happen automatically.
  • Authentication required: the client's access expired and could not be refreshed, it was disconnected, or the API key was revoked. Reconnect from the client or use a valid key.
  • Permission errors when signed in: ask an organization owner or admin to grant the permission for alerts, status pages, monitors, or Recover.
  • Plan errors such as Recover is not available on this plan or Status pages are not available on this plan: upgrade the organization's plan, or use tools your plan includes.
  • create_monitor rejects a target: confirm the URL or host is publicly reachable and not a private or internal address.
  • Rate limited: reduce how often the client polls, or spread requests over more than a minute.
  • To see whether a change came from MCP or the dashboard, check the audit log.

Related documentation