Ion — Ionhour AI Operator

This is the Model Context Protocol (MCP) endpoint for Ion, the AI operator for Ionhour workspaces.

Ionhour is an uptime-monitoring and incident-management platform: it watches your services, opens incidents when something breaks, and routes alerts to your team. This MCP server lets an AI agent operate a workspace over natural language — create and inspect monitors, triage and resolve incidents, manage projects, dependencies, deployments, status pages, alert channels, and escalation policies. Not an assistant — an operator.

The Job vs Check mental model (read this first)

Ionhour has two DISTINCT kinds of monitor. They are separate entities with separate list/status/uptime tools — do not conflate them:

Status-page components can each link a check, a job, a project, or a dependency.

Connection, Auth & Scoping

Transport: Streamable HTTP (POST to this URL).
Authentication: Bearer token — an API key starting with ionh_.
Every call is scoped to the API key's workspace; you never pass a workspace id.

Permission levels:

Lifecycles

Deprecations

Quick Setup

# Interactive setup wizard (recommended) — installs in Cursor, Claude, VS Code, Zed, etc.
npx @ionhour/mcp-server setup

# Or manual setup for Claude Code
claude mcp add --transport http ionhour https://mcp.ionhour.com --header "Authorization: Bearer ionh_YOUR_KEY"

Available Tools

Workspace

Projects

Checks (Outbound HTTP Probes)

Checks are OUTBOUND HTTP probes: Ionhour probes a URL you own on a schedule and alerts on failure. Create one with create_check. Status lifecycle: NEW → OK → LATE → DOWN → OK (also PAUSED). register_check is a deprecated tombstone — it creates nothing; use register_job (heartbeats) or create_check (probes).

Jobs (Inbound Heartbeat Monitors)

Jobs are INBOUND heartbeat monitors: your cron/worker/scheduled script pings Ionhour and Ionhour alerts if a ping is late or missing. Create one with register_job; it returns a token used for the public ping URL. Same status lifecycle as checks.

Signals (Heartbeat Pings)

Signals are the individual heartbeat pings a Job receives. Sent to the public ping URL with the Job token — no auth. See ionhour://help/ping-formats.

Incidents

Incidents are auto-created when a monitor (check or job) goes LATE/DOWN. Lifecycle: ACTIVE → ACKNOWLEDGED → RESOLVED.

Dependencies

Deployments

Status Pages

Alert Channels

Escalation Rules

The four *escalation_rule tools (list/create/update/delete_escalation_rule) are deprecated aliases, but they remain the MCP-callable way to manage escalation — use them, not the registry-side step tools (which are not exposed over MCP). create_escalation_rule adds a single-channel step; update/delete require projectId. get_escalation_policy reads the canonical policy/step shape.

Prompts (Workflow Templates)

Resources

Practical Conventions

Links