MCP Server for Monitoring. Your Agent Runs the Check.
Point any MCP client at https://uptimeify.io/mcp and your AI agent runs SSL, DNS, mail and reachability checks itself. 20 tools anonymously, no token, no setup. Add an API token and it reads your own monitors too.
Made and Hosted in the
European Union
GDPR-Compliant Hosting
in Germany
GEO-Redundant Replica
across the EU
No more copy and paste. Your agent asks directly.
The usual routine costs you three context switches: open a tab, type the domain, paste the result back into the chat. The MCP server removes the detour. Your agent calls the tool itself, gets structured data back and keeps working, while you stay on the actual question.
- 20 checks as tools, so you settle certificates, DNS, mail auth and reachability inside the conversation instead of across five tabs.
- Anonymous, no token required, so you are connected in a minute with nothing to set up.
- Structured answers, not screenshots, so your agent processes the values instead of just reading them out.

Streamable HTTP, stateless. No session, no handshake state for you to maintain.
POST https://uptimeify.io/mcpThe server card describes the server in machine-readable form.
GET https://uptimeify.io/.well-known/mcp/server-card.jsonOne tools/list call over JSON-RPC against the endpoint, with the header Accept: application/json, text/event-stream. If the server returns the tool list, the connection is live.
One endpoint. The whole check bench.
The tools mirror our public tools one to one. Certificate expiry, DNS propagation, SPF, DKIM, DMARC, blacklist status, HTTP headers, redirect chains, ports, response times, geolocation. All read-only, none of it touching your systems.
- TLS and domains, so you can query
check_ssl,whoisanddomain_expirybefore a certificate or a domain quietly lapses. - DNS and mail auth, so you can walk
check_dns,dns_propagation,mx_lookup,spf_check,dkim_check,dmarc_checkanddnsbl_checkin one pass when mail suddenly stops arriving. - HTTP and network, so you can use
http_headers,hsts_check,redirect_check,port_check,ping_test,website_status,response_time,ip_geolocation,asn_lookupandreverse_dnsstraight from the agent.

check_ssl takes host and an optional port. port_check takes host plus port, ping_test takes host and an optional port.
The DNS and mail tools take domain, with dkim_check also taking selector.
dnsbl_check and reverse_dns take ip. http_headers, redirect_check, website_status and response_time take a full url. ip_geolocation and asn_lookup take query, meaning an IP or a domain.
Every tool has a page you can open yourself.
Your agent calls check_ssl, you open the SSL Certificate Checker. Same probe, same endpoint, two front doors, so a result from the chat is one you can reproduce in the browser and put in front of a client.
TLS & domains
DNS & mail
HTTP & network
Anyone can check a domain. With a token it becomes your portfolio.
Send an API token and your agent stops looking only at the public internet and starts reading your own monitoring. Or let the client log in over OAuth and skip the token entirely. List monitors across all eight families, website, DNS, ICMP, TCP, FTP, SMTP, SSH, IMAP/POP, pull the status of a single monitor, fetch recent incidents, read check history for a date range, summarize uptime and average response time for day, month and year on websites. Thirteen account-bound tools only read. A growing set of write tools can change state too, pausing a monitor, acknowledging an incident and similar, but only behind their own consent scope, granted separately and never by default, see Write scope above. Four of the thirteen read tools cover the operational context around an alarm rather than the monitor itself: which notification channels exist and whether they are active, which alerts actually went out for a monitor and whether they were delivered, which status pages you run, and which maintenance windows are scheduled. The four newest leave the monitors behind entirely and answer who the account is: your organization, the members working in it, the customers in it, and the SMS usage of the current month. Those four hand out a fixed list of fields and nothing else, so contact details, addresses, VAT ids, tariff names and payment methods stay where they are. The client report starts in the chat, not in the spreadsheet.
list_monitorsandmonitor_status, so one sentence tells you what is up and what is not, across any of your eight monitor families.list_incidentsandcheck_history, so you can reconstruct an incident without clicking through views.uptime_summary, so availability and response time are ready when the client asks about a website.list_alert_channelsandalert_history, so "why did nobody call me" gets answered in the conversation instead of across three dashboard tabs.list_status_pagesandlist_maintenance_windows, so you see what your clients see and which window quietly swallowed an alarm.get_organization,list_usersandlist_customers, so "who is responsible here" and "which client is this again" are answered from the account instead of from memory.billing_summary, so the SMS usage of the running month is on the table before the invoice is, per customer and in total.

The authenticated tools accept a long-lived API token on the MCP request.
Authorization: Bearer wsm_your_token_hereOr your client logs in over OAuth 2.0 with PKCE and never holds a stored secret. It finds the flow through the server card, registers itself at the registration endpoint and runs the authorization-code grant. A bearer the server cannot resolve comes back as a 401 carrying a WWW-Authenticate header that points at the protected-resource metadata, so the client restarts the login on its own.
GET https://uptimeify.io/.well-known/oauth-protected-resourceAn OAuth session carries what that user may see in Uptimeify right now, and never more than they may do themselves. The binding is re-resolved when the session mints its short-lived inner token, not frozen at login, so access you revoke in the dashboard stops working instead of living on in a stale grant.
On top of the read tools, a growing set of write tools can change state, pause or resume a monitor, rename it, change its check interval, create or delete one, acknowledge, resolve, update or delete an incident, create, update or delete a maintenance window, create, update or delete a status page or its custom domain, create, update or delete a notification channel for email or SMS, and, in the organization itself, create, update or delete a tag, a custom field or a scheduled report, put a tag on a monitor or take it off, change or deactivate an existing member, and create, update or delete a customer together with the domains and IP addresses watched for it. Each sits behind its own consent scope, checked apart from the matching read scope. Creating or deleting a member is deliberately not among them, and neither is changing your organization's own master data. Only the tools that delete something require an explicit confirmation on the call itself naming the exact change, the others do not. Grant no write scope, and none of this is reachable.
You create tokens under Settings, API tokens. The token is shown exactly once, at creation.
{ "list_monitors, monitor_status and check_history all take an optional kind, covering all eight monitor families (website, dns, icmp, tcp, ftp, smtp, ssh, imap_pop); omit it and list_monitors returns every family while monitor_status and check_history default to website": { " check_history also takes monitor_id plus optional from and to as ISO dates": { " list_incidents takes an optional limit, 100 by default and 500 at most": { " list_alert_channels takes an optional website_id and otherwise answers with your organization-level channels": { " alert_history takes monitor_id plus optional kind, from, to, status (sent or failed), page and limit, 25 per page by default and 100 at most": { " list_status_pages takes no arguments": { " list_maintenance_windows takes an optional active_only and has no date filter, so bound it by time yourself": { " get_organization, list_users, list_customers and billing_summary take no arguments at all, the account follows from the token": { " billing_summary is the one whose answer depends on a second consent area": "it names the customers of its usage breakdown only if the connection also carries the organization area, otherwise the breakdown stays with public ids." } } } } } } } } }
{ "The account-bound tools drop what a language model has no business seeing": { " Channel configuration stays out of both alert tools, so no recipient addresses, no phone numbers, no webhook targets": { " Status pages arrive without their design config and without the DNS verification token of a custom domain, and a subscriber list is never returned at all": { " Maintenance windows arrive without the monitor row embedded behind them": { " The four account tools work the other way round": "instead of removing named fields they emit a fixed list and nothing else, so contact and notification e-mail, postal address, VAT id, phone number, custom fields, tariff name, billing e-mail and payment method never leave, and a column added to the endpoint later does not travel out either. list_users carries no member identifier at all, so a member can be named but not referenced." } } } } }
No header at all stays fully anonymous. The anonymous tools answer as usual and an authenticated tool returns an error naming the header it needs, rather than an empty result. There is no forced 401 on every request.
We don't just monitor. We help you sell.
Every Uptimeify subscription includes access to our Success Kit, a collection of battle-tested resources to turn your monitoring into a profit center.
Service Level Agreement templates to define professional boundaries with your clients.
Find the sweet spot for your care plans. Calculate margins based on check frequency and support hours.
Powerpoint Templates that explain 24/7 monitoring to non-technical clients. Close more retainers.
Use automated reports to proactively communicate value, so clients never ask what they're paying for.
Ready to turn monitoring into a profit center?
Claim your Success Kit and start scaling today.
Frequently Asked Questions
No. The anonymous check tools work with the URL https://uptimeify.io/mcp alone, no token and no signup. You only need an account once your agent should read your own monitors, because that is what the API token is for. So you can try whether the tools help in daily work first and decide afterwards.
You add the endpoint to your client configuration, with an Authorization header if you need one. Clients that speak remote HTTP servers point at the URL directly. Clients that only speak stdio bridge to it with mcp-remote, which forwards the call to the HTTP endpoint. If you only need the anonymous tools, leave the header out entirely.
Direct:
{
"mcpServers": {
"uptimeify": {
"url": "https://uptimeify.io/mcp",
"headers": { "Authorization": "Bearer wsm_your_token_here" }
}
}
}
Through the stdio bridge:
{
"mcpServers": {
"uptimeify": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://uptimeify.io/mcp", "--header", "Authorization: Bearer wsm_your_token_here"]
}
}
}
No. Your client can log in over OAuth instead: it sends you to the browser, you approve with the account you already have, and from then on it holds a session rather than a secret you pasted. That keeps a long-lived key out of a file that gets synced, shared or committed by accident. An OAuth session carries exactly what that user may see, and do, in Uptimeify, checked fresh rather than frozen at login. Static API tokens still work where you want one, for a script or a shared runner.
Only what you separately let it. 33 tools only read, the 20 anonymous checks and the 13 authenticated queries against your monitoring and account data. A growing set of write tools can change state instead: pause or resume a monitor, rename it, change its check interval, create or delete one, acknowledge, resolve, update or delete an incident, create, update or delete a maintenance window, create, update or delete a status page or its custom domain, create, update or delete a notification channel (email or SMS only), and, in the organization itself, create, update or delete a tag, a custom field or a scheduled report, tag and untag a monitor, change or deactivate an existing member, and create, update or delete a customer with the domains and IP addresses watched for it, each behind its own consent scope you grant apart from read access. Adding or removing a member stays in the dashboard, and so do your organization's own master data. Only the tools that delete something require an explicit confirmation on the call itself naming the exact change, the others do not. Grant nothing, and your agent stays exactly where it is today: reading and interpreting state, never changing it.
Only that one customer's monitors. An organization token, by contrast, sees every customer in your organization. So you can hand a client project or a single team member access that shows exactly the right slice instead of opening up your whole portfolio.
Yes. The anonymous tools check any publicly reachable domain, including deinkunde.com, with nothing to install on that side. They read what is already answered publicly: certificate, DNS records, mail records, HTTP response. Availability history and incidents are different: those need a configured monitor and a token.
Yes, and they are worth knowing before you build against them. The endpoint accepts 120 requests per minute per IP, and each individual check tool has its own cap on top: 15 to 30 calls per minute for the anonymous ones depending on how expensive the check is, 60 for the authenticated ones. So a spread of different checks is fine, hammering one tool is not. Over the limit you get HTTP 429 with a retryAfter value telling you when the window resets. Counting is per IP, not per token, so a token does not buy you more. If you have a case that genuinely needs a higher ceiling, talk to us.
For the technical stakeholder
Ready to put your checks inside your agent?
Add the endpoint, connect, run a check. The anonymous tools cost you nothing and no token. Your own monitors join in as soon as you have them.