MCP / AI IntegrationModel Context Protocol server for AI assistants and agents

Overview

WebSignal exposes an MCP (Model Context Protocol) server, allowing AI assistants, copilots, and autonomous agents to interact with your monitoring data programmatically. MCP provides a structured, tool-based interface specifically designed for LLM consumption.

With MCP, your AI assistant can list monitors, query incidents, acknowledge alerts, add notes, and even run ad-hoc availability checks — all through a standard JSON-RPC protocol over HTTP.

Plan requirement: MCP read access requires the Growth plan or above. MCP write access (closing incidents, adding notes) requires the Pro plan or above.

Connection

PropertyValue
MCP endpointhttps://api.websignal.io/mcp
TransportStreamable HTTP
Protocol version2024-11-05
Discoveryhttps://api.websignal.io/.well-known/mcp.json
OAuth discoveryhttps://api.websignal.io/.well-known/oauth-authorization-server

Authentication

Most MCP tools require OAuth 2.0 Bearer tokens, identical to the REST API. The server supports:

Note: The check_http_availability_latency tool is publicly accessible without authentication (rate-limited to 1 request per minute per IP).

Quick Start

1. Initialize MCP Session

POST https://api.websignal.io/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": {
      "name": "my-client",
      "version": "1.0.0"
    }
  }
}

2. List Available Tools

POST https://api.websignal.io/mcp
Content-Type: application/json
Mcp-Session-Id: <from initialize response>

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list"
}

3. Call a Tool

POST https://api.websignal.io/mcp
Content-Type: application/json
Authorization: Bearer <token>
Mcp-Session-Id: <from initialize response>

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "list_monitors",
    "arguments": {}
  }
}

Tools

incidents

Incident management and querying via MCP protocol

ToolDescription
list_all_incidentsList all incidents for the authenticated user's monitors. Returns an array of incident objects with fields: id, monitorId, monitorName, incidentType (Availability|SslExpiry|Latency|Dns), status (Ongoing|Investigating|Resolved), isClosed, acknowledged, started (ISO 8601), ended (ISO 8601 or null if ongoing), durationFormatted (human-readable), failureReason. Supports pagination via page/pageSize, or date range filtering via startDate/endDate/maxResults. Use list_open_incidents for only active incidents, or get_incident for full details including notes.
list_open_incidentsList only open/unresolved incidents for the authenticated user's monitors. Excludes resolved and closed incidents. Returns the same fields as list_all_incidents: id, monitorId, monitorName, incidentType, status, isClosed, acknowledged, started, ended, durationFormatted, failureReason. Supports pagination via page/pageSize parameters.
get_incidentGet full details for a single incident including notes, acknowledgement info, and type-specific context. Returns: id, monitorId, monitorName, incidentType, status, isClosed, acknowledged, acknowledgedAt, acknowledgedBy, closedBy, started, ended, durationFormatted, failureReason, context (type-specific JSON), and notes array (each with id, note, createdAt, createdBy). Use list_all_incidents or list_open_incidents first to find the incident ID.
get_incident_notesGet all notes for a specific incident, ordered by most recent first. Returns an array of note objects with fields: id, note (text content), createdAt (ISO 8601), createdBy (user identifier), lastModified, modifiedBy. Use get_incident to see notes alongside full incident details.
acknowledge_incidentAcknowledge or unacknowledge an incident. Acknowledging records who acknowledged it and when. Returns the full updated incident object (same fields as get_incident). Cannot modify closed incidents. Set acknowledged=false to unacknowledge.
close_incidentClose an incident, marking it as resolved. Sets status to Resolved, records who closed it, and sets the ended timestamp if not already set. Closed incidents cannot be modified further. Returns the full updated incident object (same fields as get_incident).
add_incident_noteAdd a note to an incident for tracking investigation progress, root cause analysis, or resolution steps. Returns the created note object with fields: id, incidentId, note, createdAt, createdBy. Cannot add notes to closed incidents. Use get_incident_notes to view existing notes.

Auth: Required (Bearer)

monitors

Monitor management and status querying via MCP protocol

ToolDescription
list_monitorsList all monitors for the authenticated user with current status. Returns an array of monitor objects with fields: id, name, url, healthStatus (available|unavailable|degraded), monitoringStatus (enabled|disabled|paused), monitorTypes (array of enabled types: HttpAvailability, SslCertificate, Latency, Dns, TcpUdp), checkInterval (ISO 8601 duration), lastChecked (ISO 8601 or null), created (ISO 8601), lastModified (ISO 8601). Supports optional filtering by status and monitoringStatus parameters. Use get_monitor for full details including latest test result and incident.
get_monitorGet full details for a single monitor including configuration, latest test result, and latest incident. Returns: id, name, url, healthStatus, monitoringStatus, monitorTypes, checkInterval, lastChecked, created, lastModified, numberOfChecksBeforeAlert, reporting (dailyReport, weeklyReport, monthlyReport), latestTestResult (responseTime, statusCode, wasAvailable, started, ended, failureReason or null), latestIncident (id, status, started, ended, failureReason or null if no incidents). Use list_monitors first to find the monitor ID.
get_monitor_uptimeGet uptime percentage for a monitor over a specified time window. Returns: monitorId, monitorName, url, daysBack, periodStart (ISO 8601), periodEnd (ISO 8601), totalChecks, healthyChecks, unhealthyChecks, uptimePercentage (0-100 with 4 decimal places), uptimeFormatted (e.g. '99.95%'). Calculated from actual health check results stored in the database. Use list_monitors first to find the monitor ID.

Auth: Required (Bearer)

monitor-check

Run ad-hoc HTTP availability and latency checks via MCP protocol

ToolDescription
check_http_availability_latencyRun a single HTTP request against any URL and return availability and latency metrics. Returns: url, method, statusCode (HTTP status), isAvailable (true if 2xx/3xx), latencyMs (response time in milliseconds), checkedAtUtc (ISO 8601 timestamp), error (empty if successful). Useful for quick health checks, debugging connectivity, or validating a website is reachable.

Auth: Public

Capabilities

CapabilitySupported
ToolsYes
ResourcesNo
PromptsNo