MCP Server vs MCP Server
A side-by-side look at the MCP Server and 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 Server for monitoring work as a local process; choose MCP Server for monitoring as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Server 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:
MACKEREL_APIKEY. - You want tools like
list_alerts, get_alert, get_alert_logs.
Choose MCP Server when
- You need dedicated capabilities in the Monitoring domain.
- You prefer a local stdio subprocess transport.
- You want tools like
list_monitors, get_monitor, create_http_monitor.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Monitoring | Monitoring |
| Quality signal | 65/100 · Great | 60/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | MACKEREL_APIKEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 7 | 1 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 16 | 15 |
| Full listing | View MCP Server | View MCP Server |
Tools & capabilities
MCP Server tools 16
list_alertsRetrieve alerts from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Check currently active alerts - Get a list of alerts including closed alerts <examples> ### Get opening alerts ``` list_alerts() ``` ### Get all alerts ``` list_alerts(withClosed=true) ``` </examples>get_alertRetrieve a specific alert by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Investigate a particular alert <examples> ### Get alert by ID ``` get_alert(alertId=3Yr) ``` </example>get_alert_logsRetrieve logs for a specific alert by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - View status change history for a specific alert - Investigate alert transitions and their reasons <examples> ### Get alert logs for the alert ``` get_alert_logs(alertId=3Yr) ``` </example>list_dashboardsRetrieve all dashboards from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of dashboards - Get ID and title of each dashboard <examples> ### Get all dashboards ``` list_dashboards() ``` </example>get_dashboardRetrieve a specific dashboard by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get details of a specific dashboard - View dashboard configuration and widgets <examples> ### Get dashboard by ID ``` get_dashboard(dashboardId="3Yr") ``` </examples>update_dashboardUpdate a specific dashboard by ID in Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Modify dashboard title, memo, or URL path - Update dashboard widgets configuration <examples> ### Update dashboard ``` update_dashboard( dashboardId="3Yr", title="Updated Dashboard", memo="Updated memo", urlPath="updated path", widgets=[{ type="markdown", markdown="## Updated Markdown Widget", title="Updated Title", layout: { x: 0, y: 0, width: 6, height: 4 }, }] ) ``` </examples>list_hostsRetrieve hosts from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of hosts - Filter hosts by various criteria (service, role, name, etc.) - Check host status and information <examples> ### Get all hosts (first 20) ``` list_hosts() ``` ### Get hosts for a specific role ``` list_hosts(service="web",role=["app"]) ``` ### Get hosts by status with pagination ``` list_hosts(status=["working","standby"], limit=10, offset=0) ``` ### Get hosts in summary format (reduced response size) ``` list_hosts(summary=true) ``` ### Get next page of hosts ``` list_hosts(limit=20, offset=20) ``` </examples>get_host_metricsRetrieve metrics data for a specific host from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get metrics data for a specific host - Analyze host performance over time 📊 AVAILABLE METRIC NAMES: - **Standard metrics (mackerel-agent)**: loadavg5, cpu.user, memory.used, disk.sda1.reads, network.eth0.rxBytes, etc. - **Custom metrics**: custom.myapp.* (user-defined metrics) - **AWS integration**: ec2.cpu.used, rds.database_connections.used, etc. - **Azure integration**: azure.virtual_machine.cpu.percent, azure.sql_database.cpu.percent, etc. - **GCP integration**: gce.instance.cpu.used, etc. <examples> ### Get CPU load average for a host ``` get_host_metrics(hostId="host123", name="loadavg5", from=1609459200, to=1609462800) ``` ### Get custom metric ``` get_host_metrics(hostId="host123", name="custom.myapp.response_time", from=1609459200, to=1609462800) ``` ### Get AWS EC2 CPU utilization ``` get_host_metrics(hostId="host123", name="ec2.cpu.used", from=1609459200, to=1609462800) ``` </examples>list_servicesRetrieve all services from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of services - View service names, memos, and roles <examples> ### Get all services ``` list_services() ``` </examples>get_service_metricsRetrieve metrics data for a specific service from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - "Service metrics" are metrics that correspond to a service that consists of multiple hosts and their collective roles - The following can be visualized and monitored. - The total number of registered users in a service - The number of PVs for a website - Business related KPIs such as sales or the number of orders received from EC sites 📊 AVAILABLE METRIC NAMES: - **Custom metrics**: http.response_time, sales.count, analytics.page_view, etc. <examples> ### Get service response time ``` get_service_metrics(serviceName="web", name="__externalhttp.responsetime.<monitorId>", from=1609459200, to=1609462800) ``` ### Get service page views ``` get_service_metrics(serviceName="web", name="analytics.page_view", from=1609459200, to=1609462800) ``` </examples>list_monitorsRetrieve all monitor configurations from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of all monitors - View monitor configurations <examples> ### Get all monitors ``` list_monitors() ``` </examples>get_monitorRetrieve a specific monitor configuration by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get details of a specific monitor <examples> ### Get monitor by ID ``` get_monitor(monitorId="2cSZzK3XfmB") ``` </examples>- +4 more on the listing page
MCP Server tools 15
list_monitorsList the monitors on the account, newest first, 30 per page. Each entry carries the id needed by every other tool, plus name, url, type, current status, check frequency and the uptime percentage over the last 24 hours. Start here when the request names a monitor by name rather than by id, and when asked what is broken - filtering by status "down" answers that in one call. Returns an empty list rather than an error when nothing matches.get_monitorRead one monitor in full: its configuration, current status, and the type-specific detail the list view omits - expected status codes for HTTP, port and protocol for PORT, certificate or registration expiry date for SSL and DOMAIN. Use it after list_monitors when the answer depends on how the check is configured, for instance whether a timeout is too tight or which port is actually being watched.create_http_monitorWatch a web page or endpoint over HTTP/HTTPS and treat an unexpected status code, a timeout or a connection failure as downtime. This is the right type for anything a browser would open. Choose create_api_monitor instead when the response body matters as well as the status code. Checks run from probes in several countries. Call list_monitors first so you do not create a duplicate of an existing url.create_api_monitorWatch a JSON or REST endpoint where the response itself matters, not only that the host answered. Use it for health endpoints, webhooks and any API whose failure would be invisible to a plain page check. For an ordinary web page, create_http_monitor is lighter and enough.create_ping_monitorWatch a host with ICMP ping: it answers whether the machine is reachable at all, and reports round-trip time and packet loss. Use it for servers, routers and anything with no web service on top. It says nothing about whether a site or service on that host is working - a box can ping perfectly while its web server is down. Some hosting providers block ICMP, in which case the monitor will read as down.create_port_monitorWatch one TCP or UDP port on a host and report it up only when the service behind it actually answers. This is the type for game servers, databases, mail and anything else that speaks its own protocol rather than HTTP - Minecraft, Rust, CS2, FiveM, Postgres, Redis, SMTP. The port must be given as part of the url. Set protocol to UDP for game servers; most of them do not answer on TCP at all.create_ssl_monitorWatch a TLS certificate: whether it is valid, who issued it, and how many days remain before it expires. This is about the certificate, not about the site being reachable - pair it with create_http_monitor when you want both. Note that such a monitor carries two independent states, one for reachability and one for expiry, so a certificate can be days from expiring while the check still reads up.create_domain_monitorWatch a domain registration and report how long is left before it lapses, read from WHOIS. This catches the failure no uptime check can see: everything works perfectly right up to the day the domain expires. Distinct from create_ssl_monitor, which watches the certificate rather than the registration; the two expire on different dates and both are worth watching.pause_monitorStop checking a monitor without deleting it. History and configuration survive, and resume_monitor puts it back to work. Use this around planned maintenance so the downtime does not land in the uptime figures or fire alerts. A paused monitor reports neither up nor down, so it is easy to forget one is off.resume_monitorStart checking a paused monitor again, with the configuration it had before. The first check runs immediately rather than after the usual interval, so the current state is known within moments. Safe to call on a monitor that is already running.delete_monitorPermanently delete a monitor together with its entire check history, incidents and statistics. This cannot be undone and there is no trash to restore from. Confirm with the user before calling it, and prefer pause_monitor whenever the intent is only to stop the checking for a while.get_incidentsRead the downtime history of one monitor: when each outage began, when it ended, how long it lasted and what the failure actually was - HTTP status, error text, and which probe saw it. This is the tool for "what happened" and "how often does this break". For the shape of response times around an outage, follow up with get_stats_hourly.- +3 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 Server
{
"mcpServers": {
"mcp-server-180": {
"command": "npx",
"args": [
"-y",
"@mackerel/mcp-server"
],
"env": {
"MACKEREL_APIKEY": "YOUR_MACKEREL_APIKEY_HERE"
}
}
}
}
MCP Server
{
"mcpServers": {
"uptybots-mcp-server": {
"command": "npx",
"args": [
"-y",
"uptybots-mcp-server"
]
}
}
}
Frequently asked questions
MCP Server is categorized under Monitoring and uses a local stdio subprocess. MCP Server belongs to Monitoring and uses a local stdio subprocess. Pick MCP Server for monitoring work and 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 Server is bring-your-own-key: usage is billed by the API provider you supply a key for. Auth: api key required. MCP Server has no declared pricing — check the project's own site. 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 mcp-server-180 and uptybots-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Server has a quality signal of 65/100 (Great) with 1 views, 0 installs and 7 GitHub stars. MCP Server has 60/100 (Good) with 1 views, 0 installs and 1 GitHub stars.