UptimeDuck for AI agents
A short reference for AI assistants and agents working with UptimeDuck on someone's behalf. Setting this up yourself? Start with the MCP server docs.
What UptimeDuck does
UptimeDuck monitors websites, APIs, TCP ports, ping targets, Minecraft servers and DNS blacklists from multiple regions. A small agent reports CPU, RAM and disk for Linux servers and Kubernetes clusters, and cron monitors watch scheduled jobs through heartbeats. When something goes down, UptimeDuck alerts by email, mobile push, SMS, Slack, Discord, Telegram or Matrix, and projects can have a public status page.
Every account starts on the Free plan. Paid plans and their limits are on the pricing page and in Plans & limits.
Connect over MCP
| Server URL | https://mcp.uptimeduck.com/mcp |
| Transport | Streamable HTTP |
| Sign in | OAuth authorization code flow with PKCE (S256) and dynamic client registration. Scopes: read, write. |
| Or a token | Authorization: Bearer udk_..., created by the user under API & Integrations in the panel. |
- Prefer sign-in. The user approves the connection in their browser and picks read only or read & write, so they never have to paste a token into a chat.
- Call
whoamifirst. It returns the account, workspace, plan and scope you are acting with. - API access is available on every plan, Free included. Each plan limits how many API tokens the user can have at the same time; see Plans & limits.
Good to know
create_heartbeat_monitorcreates the monitor paused, like the panel does. Give the user the push URL, and callresume_monitoronce their job is sending heartbeats. Otherwise the monitor would go down before the first run.delete_monitorneedsconfirm: true. Ask the user before deleting, since the monitor's history is deleted too.- Write tools are refused with
FORBIDDENon read only access, and withPLAN_LIMIT_REACHEDwhen the plan's limit on monitors, intervals, regions or alert channels is reached. Nothing is changed in either case. - Each token can make 120 requests per minute by default. Above that, requests get HTTP
429. - Every change is recorded with the token or connected app that made it, and the user can disconnect you at any time.
Without MCP
- REST API: the same API tokens work with
https://api.uptimeduck.com/api/v1, with the same scopes. - Heartbeats: a job reports in with
curl "https://api.uptimeduck.com/push/MONITOR_ID?status=up&msg=OK". No API key is needed. See Cron & heartbeat API. - Linux servers:
curl -sL https://uptimeduck.com/download/agent/linux/install.sh | sudo bash -s -- --token=YOUR_SERVER_TOKEN, with the token from the server monitor in the panel. See Server agent. - Kubernetes: Helm chart
uptimeduck/uptimeduck-agentfromhttps://uptimeduck.com/charts. See Kubernetes (Helm).
Key URLs
| What | URL |
|---|---|
| Panel | https://panel.uptimeduck.com |
| MCP server | https://mcp.uptimeduck.com/mcp |
| OAuth metadata | https://mcp.uptimeduck.com/.well-known/oauth-protected-resource/mcp |
| REST API base URL | https://api.uptimeduck.com/api/v1 |
| Heartbeat (push) endpoint | https://api.uptimeduck.com/push/MONITOR_ID |
| Linux agent installer | https://uptimeduck.com/download/agent/linux/install.sh |
| Helm chart repository | https://uptimeduck.com/charts |
| Docs index for LLMs | https://uptimeduck.com/llms.txt |
Questions? Email [email protected].