Skip to content
adambenhassenPublic

About

MCP server exposing a Gatus status page to AI agents over streamable HTTP

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

gatus-mcp

gatus-mcp

CI

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.

Tools

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.

Configuration

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.

Running

Docker

docker build -t gatus-mcp .
docker run --rm -p 3000:3000 -e GATUS_URL=http://your-gatus:8080 gatus-mcp

Docker Compose

To 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.

From source

go run ./cmd/gatus-mcp
# or
go build -o gatus-mcp ./cmd/gatus-mcp && GATUS_URL=http://localhost:8080 ./gatus-mcp

The MCP endpoint is then available at http://localhost:3000/mcp.

Connecting a client

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/mcp

Development

go test ./...        # unit + parity tests
go vet ./...
golangci-lint run    # config in .golangci.yml

Layout

cmd/gatus-mcp/      entrypoint: env config + HTTP serving
internal/gatus/     REST client for the Gatus API
internal/mcpserver/ MCP tool definitions and handlers

License

MIT © Adam Benhassen

About

MCP server exposing a Gatus status page to AI agents over streamable HTTP

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages