Uptime monitoring for public MCP servers — because when your server is down, your AI has no context.
- GitHub Actions runs
scripts/check.pyevery 15 minutes. - The script sends an MCP
initializehandshake (JSON-RPC 2.0) to each server. - Results are written to
docs/data/status.jsonand committed back to the repo. - GitHub Pages serves
docs/index.html, which fetches the JSON at runtime.
No external services, no database — just git and GitHub Actions.
Edit config/servers.yml:
servers:
- name: "My MCP Server"
url: "https://my-mcp-server.example.com"
transport: http
tags: [custom]Open a PR and it will be included in the next check run.
The checker POSTs an MCP initialize request and expects a valid JSON-RPC 2.0 response (result or error at the top level). Servers that respond with HTTP 401/403 (auth required) are treated as up — they're reachable, just need credentials.
| Status | Meaning |
|---|---|
| 🟢 up | Valid MCP response received |
| 🟡 degraded | Reachable but response is malformed |
| 🔴 down | Timeout, connection refused, or HTTP error |
pip install requests pyyaml
python scripts/check.py
# opens docs/index.html in your browser to preview- Fork this repo.
- Go to Settings → Pages → set source to
docs/onmain. - Go to Settings → Actions → General → enable "Read and write permissions" for the Actions workflow.
- The first run will populate
docs/data/status.jsonand the status page will go live.
PRs to add new public MCP servers are welcome. Please verify the server is publicly accessible before submitting.