Feature

Plug an AI agent into your monitoring

Fivenines runs a remote MCP server, so Claude, Cursor or any Model Context Protocol client can read your infrastructure directly: query metrics, pull an incident with its timeline and the error patterns captured when it broke, triage vulnerabilities, check what is down. One OAuth approval, no token to paste, and 47 tools that can only read. 26 more can act - create a monitor, schedule maintenance - but they exist only for connections you explicitly scoped for writes; an OAuth connection cannot even request that.

Built for teams monitoring production infrastructure

Start free trial

No credit card · 2-minute setup

Claude + Cursor 47 read-only tools One-click revoke

MCP tool call

scope: read

investigate_host 1 call
instance web-01
cpu_usage 94% · 15m avg
memory_usage 71% · 15m avg
recent_incidents 2 recent

read scope: 0 write tools served

investigate_host
scope: read
writes: opt-in

How It Works

1

Step 1

Point your client at it

Add https://fivenines.io/mcp as a remote MCP server. Nothing to install, nothing to self-host.

2

Step 2

Approve once

The client is sent through OAuth. You approve the connection for your organization and it is live.

3

Step 3

Ask

The agent discovers the tools itself and calls them. It never has to guess a metric name.

4

Step 4

Revoke whenever

Settings shows how many agents you have connected, and one Disconnect all button cuts all of yours off at once. Each teammate revokes their own, and removing someone from the organization stops their agents on the next call.

  • Read-only by default

    Not one of the 47 tools an OAuth connection is served creates, changes or deletes anything - a write scope is not something OAuth connections can request, so there is no write action for that agent to reach for. Write tools exist only on a connection made with an API token you explicitly minted with write scope, and every request re-checks the account still holds the matching permission in your organization.

  • One call, not eight

    Two tools are built for investigation rather than listing. Ask about a server and one call returns it with its recent CPU, memory and most recent incidents. Ask about an incident and one call returns its timeline, the affected instance and the captured log patterns from when it broke.

  • Included on every plan

    MCP access is not a tier, an add-on, or an admin toggle somebody has to switch on first. It is the same account you already log into, and the same per-organization rate budget the REST API uses.

What the 47 tools cover

The agent lists the tools itself on connect, so this is what it finds. Everything is scoped to your organization by the credential it connected with. (A write-scoped API token additionally unlocks 26 write tools - covered below.)

Metrics

Query any series for instances, uptime monitors or network devices. A companion catalog tool returns the metric names that exist, so the agent picks from a real list instead of guessing.

Instances

List your monitored servers or fetch one, with its current status, and list the groups you organise them into so a group name resolves to something the other tools can use. A companion tool reports what the agent on a box can actually collect and why anything is blocked, so "Docker monitoring is switched on" can be told apart from "switched on and working".

Server inventory

The state rows behind twenty collectors, on one tool: systemd units and why one failed, Docker containers and images, ZFS pools, PHP-FPM pools, RabbitMQ queues and nodes, HAProxy backends and servers, WireGuard peers, NVIDIA GPUs, fail2ban jails, RAID arrays, temperature sensors, QEMU guests, Proxmox guests, nodes and storages, listening ports and SMART drive verdicts. Every answer says whether the collector is switched on and whether the agent can collect it, so an empty list is never mistaken for an all-clear.

Incidents

List and filter incidents, fetch one with its full timeline of events. Plus the organization-wide figures a review asks for: how many incidents opened, mean time to resolve and mean time to acknowledge, counted over every incident including metric alerts.

Availability

Uptime percentage, downtime seconds and incident counts over a window, for instances, monitors or cron tasks. Availability counts outages only, so a metric alert never moves it.

Uptime monitors

The HTTP, TCP, ping and DNS checks you run, what each is doing, the probe regions they can run from, and the latest result for a single one on its own: its status, the last error, and the response time from its last successful check.

Certificates

Days until each HTTPS monitor's TLS certificate expires, read from its last probe, soonest first.

Network devices

SNMP devices and their interfaces.

MQTT brokers

The brokers an agent inside your network subscribes to, and the per-topic freshness and payload checks under each one. Every broker says when its agent last reported, so one that stopped watching is never mistaken for one that is connected and healthy.

Cron tasks

Heartbeat and cron monitors, and whether each is late.

Workflows

The alerting automations configured in your organization, the node graph each one runs, and its execution history down to which node failed on a given run. Plus the catalog of node types and the ready-made templates, so an agent can say what you could be alerting on and are not.

Vulnerabilities

CVE counts by severity across your fleet, the patchable subset that is actually work, and the individual CVEs for one package. See the plan note below.

Container images

The images your hosts run, each with its scan verdict and vulnerability counts, and the CVEs inside one image. An image that could not be scanned says so rather than reporting zero. See the plan note below.

Dashboards

The saved views your team watches: list them, or fetch one with its sections and every panel - what each charts, what it targets, how it is configured. Each panel names the metric it charts and the series behind it, so an agent can go from a dashboard to the numbers without guessing. Plus the template gallery, including which templates your organization can build yet and why it cannot build the rest.

Status pages

The pages you publish, the services each one lists and the groups they are shown in, so an agent can tell whether the thing that just broke is on a public page.

Maintenance windows

The scheduled maintenance announced on those pages, including whether one is live right now rather than only what a background job has recorded yet. Owner and admin roles, the same as in the app.

Ceph and Proxmox clusters

The storage and virtualisation clusters your servers report, as clusters rather than as hosts: Ceph health with the capacity, OSD and PG numbers behind it, Proxmox quorum with its nodes and storages, and every VM and container across the fleet. Each answer carries how many hosts it was derived from, so an agent can tell an unhealthy cluster from one nothing is watching.

Plan and limits

Which plan the connected organization is on, how many of its monitors are in use, how much history it retains, and which features it has. An agent that can see you are at 48 of 50 monitors proposes something that fits. If your account is managed by a hosting provider, the plan and limits are theirs to publish, so the agent is told that rather than shown them.

Notification channels

The Slack, email, webhook, PagerDuty, Pushover, Telegram, Discord and Teams channels alerting can reach, and crucially whether each one is verified: a workflow refuses to notify through an unverified channel, so a channel that looks configured everywhere else is the usual reason an alert never arrived. No channel credential is returned - not a webhook URL, not a signing secret, not a routing key.

Tokens

Your own API tokens and, for owners and admins, the host enrollment tokens - names, scopes, expiry and last use, so an agent can audit which credentials exist and which have gone stale. Values are never returned, and for an API token cannot be: only a hash of it is stored.

Deep dive

Read-only by default, and what that actually rests on

Pointing an AI agent at production is a trust decision, so it is worth being precise about where the ceiling comes from. It is not a setting you have to get right, and it is not a promise about how the model behaves. It holds at three independent layers:

  • On a read connection there is no write tool. A read-scoped connection is served the 47 read tools and nothing else - the write tools are not hidden behind a refusal, they are not registered at all, so there is no destructive action available to call. Every served tool declares itself read-only in its protocol annotations, which careful clients verify for themselves.
  • OAuth connections are read-scoped, full stop. Connecting through OAuth issues a read scope, and a write scope is not something these connections can request. Write access exists only through an API token you explicitly minted with write scope in Settings - a deliberate human act, never a consent-screen checkbox.
  • Permission is re-checked per request. The connecting account has to still hold the matching permission in your organization - read access for reads, the resource's own create/update permission for each write. Remove someone from the team and their agent stops working on its next call, without anyone remembering to go and revoke a token.

What an agent can see is exactly what that account can see in the web app, in one organization, and never more. What a write-scoped agent can do is bounded the same way - and every write tool takes a dry-run flag, so an agent can validate a change without making it.

Deep dive

The 26 write tools, and why they are shaped the way they are

With a write-scoped API token, an agent can also set monitoring up rather than only read it: create_uptime_monitor and update_uptime_monitor (say "monitor this endpoint from every region" and it is checking within the minute), create_task and update_task (the response hands back the ping URL to paste into the crontab), and create_maintenance_window and cancel_maintenance_window (announce tonight's deploy on your status page so it reads as maintenance, not an outage).

The next part is the on-call loop. An agent could already pull an incident apart with incident_context; now it can act on what it found. acknowledge_incident puts a name against it, mute_incident and unmute_incident silence a flapping alert overnight without pretending it is fixed, and resolve_incident closes it. comment_incident posts the update your status-page visitors and email subscribers actually receive, and set_incident_visibility decides whether an incident is on that page at all.

And it can operate the alerting itself: create_workflow_from_template turns a template from the gallery into a working alert wired to your verified email channel (or emailing all members until one is verified) - a draft that pages nobody until activate_workflow starts it - and pause_workflow silences one while you work on what it watches, reversibly, keeping the graph and every run. Authoring a workflow's node graph over MCP is deliberately not offered, and neither is touching an archived workflow: templates are the safe path in, and restoring from the archive stays a dashboard decision.

The rest are the remediation verbs - the things an on-call runbook actually does. set_host_maintenance and set_hosts_maintenance_bulk silence a host - or "the db group", by the same filters the instance API takes, in one call - for a planned deploy while its agent keeps reporting; set_device_maintenance does the same for a switch. pause_monitor/resume_monitor and pause_task/resume_task stand checks down and rearm them. check_monitor_now is the "is it fixed yet?" call - it spends the same manual-check budget as the dashboard button, so an agent cannot hammer it. enable_host/disable_host switch monitoring off entirely, and recheck_host_permissions asks the agent to re-detect what it can collect after you fix permissions on the box.

The shape is deliberate. Every one validates first and takes dry_run, so a cautious agent - or a cautious operator's policy - can check "would this be accepted?" (or preview a bulk filter's blast radius) without changing anything. Plan limits come back as "limit reached (N of M)" so an agent proposes an upgrade instead of retrying. Windows are canceled, never deleted, so history survives. The bulk call reports per-instance outcomes, so a partial application reads as partial. And nothing in the set deletes anything at all: deletes stay a human decision in the dashboard.

The ones that reach past your account are treated as such. Posting an update and publishing an incident are the only actions here that put words in front of your customers, so they are named separately on the consent screen rather than folded into "work through incidents", they declare themselves in their protocol annotations, and each says in its own description who ends up reading the result. An agent that resolves an incident to quiet an alert is told, in the tool description, that mute is the tool it wanted. And check_monitor_now, which fires real probes at the endpoint you configured from our infrastructure, declares itself open-world in its annotations for the same reason - a careful client can see which calls leave the account without trusting prose.

Deep dive

Built for investigating, not just listing

Most of the tools are the obvious ones: list this, fetch that. Two are shaped differently, because an agent assembling a picture out of six round trips is slow and tends to stop early.

investigate_host takes one server and returns its details, its recent CPU and memory, and its most recent incidents together. That is the first question anyone asks about a box, answered in a single call.

incident_context takes one incident and returns it with its timeline, the affected instance, that instance's recent CPU and memory, and the log digests captured when it opened, including the error patterns that appeared for the first time around that moment. On a Linux host with log monitoring enabled, that means an agent starts an investigation with the lines from when things actually broke rather than a blank page.

How It Compares

How It Compares
Approach Setup Live data Write risk Revoke
Paste screenshots into a chat Manual, every time A stale snapshot None N/A
Wire an agent to the REST API You build and maintain it Yes Whatever you granted Rotate the token
Fivenines MCP server One OAuth approval None unless you scope a token for writes One click

MCP access included on every plan

No add-on. CVE severity counts and container image scan posture come with every plan; the individual CVEs and the image inventory behind them need Pro, and the tools say so in their own response.

Frequently Asked Questions

What is MCP, and which clients can connect? +
MCP (Model Context Protocol) is the open standard AI clients use to reach external tools and data. Fivenines runs a remote MCP server at https://fivenines.io/mcp, so any MCP-capable client connects to it: Claude, Claude Code, Cursor, and anything else that speaks the protocol. There is nothing to install and nothing to self-host - it is the same account you already log into, reachable over OAuth.
Can an AI agent change anything in my account? +
Not unless you explicitly arm it, and the boundary holds at three independent layers rather than resting on a promise. A connection made through OAuth - the one-click Claude/Cursor path - is issued a read scope, a write scope is not something those connections can request, and a read-scoped connection is served only the 47 read tools: the 26 write tools are not registered for it at all, so there is no write action for that agent to reach for. Write access exists only through an API token you deliberately minted with write scope in Settings, and even then each request re-checks that the connecting account still holds the matching permission in your organization - creating a monitor needs the create permission your role would need in the app, and revoking someone's access in Fivenines takes their agent with it. The write set itself is deliberately narrow: create and update monitors and cron tasks, schedule and cancel status-page maintenance windows, work an incident through its lifecycle - acknowledge, mute, unmute, resolve, post an update, and decide whether it appears on your public status page - and operate the alerting workflows themselves: start or pause one, or create one from a ready-made template - and the remediation verbs a runbook needs: maintenance mode for hosts (singly or in bulk) and network devices, pause/resume for monitors and tasks, enable/disable and capability re-detection for hosts, and an immediate check that spends the same manual-check budget as the dashboard button. Every one supports a validate-only dry run, and nothing in the set deletes anything.
How do I connect an agent, and how do I disconnect one? +
Point your MCP client at https://fivenines.io/mcp. It gets pointed at our OAuth flow, you approve the connection once, and the client is live - no token to copy, paste or rotate. Settings, API tokens shows how many agents you personally have connected, and a single Disconnect all button revokes all of yours at once; they stop working on their next call and have to be re-approved. Two boundaries worth stating plainly rather than leaving you to discover them: that button is scoped to your own connections, so each teammate disconnects theirs and it is not an organization-wide kill switch, and a client you connected with an API token instead of OAuth is revoked by revoking that token. What does cut every one of a person's agents off at once is removing them from the organization, because each request re-checks that they still have read access.
Is MCP access included on my plan? +
Yes, on every plan, with no admin toggle to switch on first. There is one boundary worth stating plainly: the two security list tools return counts on every plan - CVE severity buckets for your hosts, and the scan-state posture of your container images - but the detail behind them - scores, fix versions, affected packages, and the image inventory itself - follows the same Pro plan gate as the security pages in the web app, and the tools say so in their own response rather than quietly returning an empty list.
What can an agent actually answer with it? +
The 47 read tools cover metrics (query any series, plus a catalog tool that tells the agent which metric names exist so it does not have to guess), instances, what is actually running on one (systemd units, containers and images, ZFS pools, HAProxy backends, listening ports and fourteen more per-instance inventories, on a single tool), uptime monitors and the probe regions they check from, network devices, the MQTT brokers a watcher agent subscribes to with the per-topic freshness and payload checks under them, cron tasks, workflows (including the graph each one runs and its execution history, down to which node failed on a given run), the dashboards your team watches with every panel's definition, availability, the organization-wide incident figures - mean time to resolve and mean time to acknowledge, counted over every incident including metric alerts - certificate expiry across your HTTPS monitors, incidents, vulnerabilities on two axes - the packages installed on your hosts and the container images those hosts run - the status pages you publish with the scheduled-maintenance windows announced on them, and the Ceph and Proxmox clusters your instances report - as clusters rather than as hosts, with the nodes, storages and virtual machines under them, plus the settings alerting depends on: the notification channels it can reach and whether each is verified (the usual reason an alert never arrived), your own API tokens and the host enrollment tokens, as metadata only - never a secret value. And it can answer for the organization itself: which plan it is on, how many of its monitors are in use against the limit, and which features that plan grants - so an agent proposes what will fit instead of discovering the ceiling in a rejection. Two of them are built for investigation rather than listing: investigate_host returns one instance with its current CPU and memory and its recent incidents in a single call, and incident_context returns an incident with its timeline, the affected instance, that instance's recent metrics, and the captured log digests from when it broke. That is the difference between an agent making eight calls to assemble a picture and making one. With a write-scoped API token it can also act: 26 write tools create and update uptime monitors and cron tasks, schedule or cancel maintenance windows, close the on-call loop the read tools open - acknowledging, muting, resolving and commenting on an incident, and setting whether it is visible on your status page - run the alerting workflow lifecycle (create one from a template, start it, pause it), put hosts and network devices into maintenance (one at a time or a whole filtered group in one call), pause and resume monitors and tasks, enable or disable a host, re-run capability detection, and fire an immediate uptime check. Each validates first and supports a dry run.

Give your agent something real to read

14-day trial. No credit card required.

No credit card · 2-minute setup · Cancel anytime

Read the API documentation