MCP Grafana vs Website monitoring API & MCP server
A side-by-side look at the MCP Grafana and Website monitoring API & MCP server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Grafana for monitoring work as a local process; choose Website monitoring API & MCP server for monitoring over a hosted endpoint. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Grafana when
- You need dedicated capabilities in the Monitoring domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
GRAFANA_URL, GRAFANA_SERVICE_ACCOUNT_TOKEN. - You want tools like
add_activity_to_incident, alerting_manage_routing, alerting_manage_rules.
Choose Website monitoring API & MCP server when
- You need dedicated capabilities in the Monitoring domain.
- You prefer a remote HTTP/SSE transport.
- Its auth model fits you: API key required.
- You want tools like
list_sites, add_site, verify_site.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Monitoring | Monitoring |
| Quality signal | 68/100 · Great | 54/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | API key required | API key required |
| Pricing | Free | Freemium |
| Required env vars | GRAFANA_URLGRAFANA_SERVICE_ACCOUNT_TOKEN | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3,598 | — |
| Directory activity | 6 views 0 installs 0 upvotes | 3 views 1 installs 0 upvotes |
| Tools | 81 | 58 |
| Full listing | View MCP Grafana | View Website monitoring API & MCP server |
Tools & capabilities
MCP Grafana tools 81
add_activity_to_incidentAdd a note (userNote activity) to an existing incident's timeline using its ID. The note body can include URLs which will be attached as context. Use this to add context to an incident.alerting_manage_routingManage Grafana alerting routing configuration, including notification policies, contact points and time intervals. Notification policies define how alerts are grouped, routed, and which contact points receive them. Time intervals define active/mute periods for alert notifications. When to use: - Understanding how alerts are routed to contact points/receivers - Debugging why an alert went to a specific receiver - Checking grouping, timing, or mute interval settings When NOT to use: - Checking alert rule configuration or state (use alerting_manage_rules)alerting_manage_rulesManage Grafana alert rules with full CRUD capabilities and filtering. When to use: - Understanding why an alert is or isn't firing - Auditing alert rule configuration (queries, conditions, labels, notification settings) - Finding alert rules by state, folder, group, or name - Creating, updating, or deleting alert rules - Comparing rule versions to see what changed When NOT to use: - Checking how alerts are routed to receivers (use alerting_manage_routing)alerting_manage_silencesManage Grafana alerting silences. A silence temporarily suppresses notifications for alerts whose labels match a set of matchers, without changing the alert rules themselves. Operations: - 'list': list existing silences. Optionally filter by rule_uid (matches the __alert_rule_uid__ label) or by matchers. - 'get': retrieve a single silence by silence_id. - 'create': create a new silence. Requires matchers, starts_at, ends_at (RFC3339) and comment. - 'update': modify an existing silence by silence_id. Requires matchers, starts_at, ends_at and comment. The id is only kept when the posted matchers and starts_at match the stored ones, so pass back the starts_at returned by 'get'; otherwise Alertmanager expires the old silence and returns a new id. - 'delete': expire/remove a silence by silence_id. When to use: - Muting noisy or expected alerts during maintenance windows - Inspecting or cleaning up existing silences When NOT to use: - Changing alert rule configuration or state (use alerting_manage_rules) - Changing how alerts are routed to receivers (use alerting_manage_routing)analyze_loki_labelsAudits a Loki label strategy and optionally diagnoses query performance. Returns per-label verdicts, missing base labels, normalisation issues, and a recommended set. Pass datasourceUid for live cardinality or labels for static scoring; both may be combined.check_datasources_healthCheck datasource health. Filter by type or UIDs; omit both to check all.create_annotationCreate a new annotation on a dashboard or panel. Set format to 'graphite' and provide 'what' for Graphite-format annotations.create_datasourceCreate a datasource. If type is ambiguous, call search_plugin_information first; install the plugin if needed. IMPORTANT: always call this tool twice. First call: provide only the type — the tool returns a field schema. After receiving the schema, you MUST ask the user for every required field value explicitly; do not infer or use defaults without user confirmation. Second call: provide the type, the display name in the top-level name argument, schemaReviewed=true, and the fields map populated with values confirmed by the user. Never handle credentials — remind the user to rotate any detected. Returns UID, health check, and a config page link.create_folderCreate a Grafana folder. Provide a title and optional UID. Returns the created folder.create_incidentCreate a new Grafana incident. Requires title, severity, and room prefix. Allows setting status, labels and custom fields. This tool should be used judiciously and sparingly, and only after confirmation from the user, as it may notify or alarm lots of people.create_snapshotCreate a Grafana snapshot from a full dashboard payload. Supports optional expiration and external snapshot fields.delete_annotationPermanently delete an annotation by ID. The annotation cannot be recovered afterwards.- +69 more on the listing page
Website monitoring API & MCP server tools 58
list_sitesList the websites in this Relvato account, with whether each is ready to run monitors.add_siteStart monitoring a website. Returns the site and its setup: until the owner proves ownership (connect the WordPress plugin, or verify the domain — the only option for non-WordPress sites), trigger_scan can run the public monitors by hand 3 times a day (setup.manualRuns); scheduled runs, alerts, update/deploy runs and the monitors that act on the site need the proof (setup.nextStep); setup.afterProof says what proof adds for this site on its plan. If the account already has a site on the same domain, that site is returned instead of a duplicate. How ownership is proven: https://www.relvato.com/docs/verify-site-ownershipverify_siteCheck whether the site's ownership is proven: probes the WordPress plugin connection and/or looks for the domain-verification DNS TXT record / meta tag, or (method gsc / bing) asks Google Search Console / Bing Webmaster Tools. Returns the updated setup state. Docs: https://www.relvato.com/docs/verify-site-ownershipstart_monitoring_for_goalsThe onboarding shortcut: pick what matters and Relvato adds the monitors that cover it on the current plan (plus uptime, SSL, errors, maintenance mode and structure). Goals: flows (checkout and sign-in), security, search, design, compliance (law compliance — accessibility today), speed, domain, custom, ai. Before the site's ownership is proven the monitors are added but don't run on their schedule yet (scheduleStarts).list_checksThe monitors that can be added to a site: key, what it catches, whether the current plan allows it, whether it's recommended for this site, and whether it's already added. Before the site's ownership is proven, runsNow says which can run now (started by hand) and which after proof; for a site added as "other", withWordPressPlugin lists what the WordPress plugin adds.add_checksAdd monitors to a site by key (from list_checks). Each key reports added / exists / rejected with the reason (plan, active-monitor limit, needs the WordPress plugin). Once the site's ownership is proven, new monitors get a daily schedule on plans that run daily (Pro and up) and a weekly one on Free, plus a re-run when the site changes on Pro and up (WordPress plugin updates, or pushes via the GitHub App). Before proof they're added but only run when trigger_scan starts them (scheduleStarts).dismiss_recommendationStop recommending a monitor for a site (list_checks marks recommendations), or bring every dismissed recommendation back with restoreAll.calibrate_siteWordPress / WooCommerce: have Relvato read the store again (a product to buy, checkout type, guest checkout, currency) after the store changed. Runs in the background.verify_vitals_beaconCheck that the real-user Web Vitals beacon is on the site (its homepage, or data already arriving). get_site_settings has the snippet to install.site_overviewPlain-language health verdict for a site: what needs attention (real issues vs likely false positives), each monitor with its latest run and schedule, setup state, recommended monitors not yet added, and the account's run usage. On WordPress 6.9+ it also lists the site's AI abilities (WordPress Abilities API) from the latest exposure scan: which plugin registered each, whether AI assistants (MCP Adapter) or REST clients can use it, which ones anyone can run without signing in, and which can delete data.get_site_healthHow a site has been doing: the share of monitors passing now (the Overview's "Monitors passing") and each of the last 30 days, the trend over 28, 90 or 182 days, each monitoring group's briefing (what needs attention, its likely cause and fix), and — on paid plans — uptime from Relvato's own probes (availability % and incidents over 30 days).get_performanceA site's speed: the performance summary, lab Core Web Vitals, real visitors' LCP / INP / CLS (p75, last 7 days against the 28 before, per page type and device), what slows it (the elements, images and scripts behind slow visits) and the top fixes with steps.- +46 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP Grafana
{
"mcpServers": {
"grafana-mcp-grafana": {
"command": "uvx",
"args": [
"mcp-grafana"
],
"env": {
"GRAFANA_URL": "YOUR_GRAFANA_URL_HERE",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "YOUR_GRAFANA_SERVICE_ACCOUNT_TOKEN_HERE"
}
}
}
}
Website monitoring API & MCP server
{
"mcpServers": {
"website-monitoring-api-mcp-server": {
"command": "npx",
"args": [
"-y",
"website-monitoring-api-mcp-server"
]
}
}
}
Frequently asked questions
MCP Grafana is categorized under Monitoring and uses a local stdio subprocess. Website monitoring API & MCP server belongs to Monitoring and uses a remote HTTP/SSE transport. Pick MCP Grafana for monitoring work and Website monitoring API & MCP server for monitoring.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP Grafana is listed as free. Auth: api key required. Website monitoring API & MCP server is listed as freemium — a free tier with paid plans. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add grafana-mcp-grafana and website-monitoring-api-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Grafana has a quality signal of 68/100 (Great) with 6 views, 0 installs and 3,598 GitHub stars. Website monitoring API & MCP server has 54/100 (Good) with 3 views, 1 installs and 0 GitHub stars.