An MCP server that exposes a
Gatus status page to AI agents. It wraps Gatus's
REST API and serves tools over streamable HTTP at /mcp, so an assistant can
answer "what's up / what's down" and drill into uptime, response times, and probe
history.
Monitors are defined in Gatus's own YAML config — this server does not create
or change them. Every tool is read-only except submit_external_result, which
pushes results for endpoints Gatus is configured to treat as external.
| Tool | Description |
|---|---|
get_health_summary |
Counts of healthy/down/pending endpoints + the list of those currently down. Start here. |
list_endpoint_statuses |
All endpoints with current status; optional only_unhealthy and group filters. |
get_endpoint_history |
Recent probe history for one endpoint (paginated). |
get_endpoint_uptime |
Uptime ratio over a window. |
get_endpoint_response_time |
Average response time (ms) over a window. |
get_response_time_history |
Response-time history series over a window. |
submit_external_result |
Submit a result for an external endpoint (write; needs GATUS_TOKEN). |
Windowed tools accept a duration of 1h, 24h, 7d, or 30d.
The server also exposes GET /health ({"status":"UP"}) for docker/k8s liveness probes.
All configuration is via environment variables:
| Variable | Default | Purpose |
|---|---|---|
GATUS_URL |
http://gatus:8080 |
Base URL of the Gatus instance. |
MCP_HOST |
0.0.0.0 |
Listen host. |
MCP_PORT |
3000 |
Listen port. |
GATUS_TOKEN |
(unset) | Bearer token; only needed by submit_external_result. |
docker build -t gatus-mcp .
docker run --rm -p 3000:3000 -e GATUS_URL=http://your-gatus:8080 gatus-mcpTo run Gatus and gatus-mcp together, copy
docker-compose.example.yml to
docker-compose.yml, supply your own gatus.yaml, and run docker compose up.
go run ./cmd/gatus-mcp
# or
go build -o gatus-mcp ./cmd/gatus-mcp && GATUS_URL=http://localhost:8080 ./gatus-mcpThe MCP endpoint is then available at http://localhost:3000/mcp.
Point any streamable-HTTP MCP client at http://<host>:3000/mcp. For example,
with Claude Code:
claude mcp add --transport http gatus http://localhost:3000/mcpgo test ./... # unit + parity tests
go vet ./...
golangci-lint run # config in .golangci.ymlcmd/gatus-mcp/ entrypoint: env config + HTTP serving
internal/gatus/ REST client for the Gatus API
internal/mcpserver/ MCP tool definitions and handlers
MIT © Adam Benhassen