A Model Context Protocol server for interacting with Mackerel monitoring and observability platform
The Mackerel MCP server demonstrates solid tool definition quality with 16 well-structured tools. All tools have descriptions and input schemas are visible in the source code with proper Zod validation. Tool names follow the verb_noun pattern consistently (list_*, get_*, update_*). Descriptions are generally detailed and include usage context with emoji-decorated guidance. However, there are notable gaps: output schemas are not documented in the tool definitions, some parameter descriptions lack format constraints or ranges, and error handling guidance is minimal. Parameter validation uses Zod constraints (min/max) but these are not always clearly reflected in descriptions. The schema quality is strong where visible but the absence of documented return types and response structures prevents this from reaching 80+.
Retrieve a specific alert by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Investigate a particular alert
Retrieve 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
Retrieve a specific dashboard by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get details of a specific dashboard - View dashboard configuration and widgets
Retrieve 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.
Retrieve a specific monitor configuration by ID from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get details of a specific monitor
Output schemas are not documented. Tool definitions include input schemas via Zod but nowhere in the code are return types, response field structures, or pagination metadata documented for LLM planning.
update_dashboard has a 'widgets' parameter typed as array without inner object schema definition. LLMs cannot determine what fields each widget requires.
Several list_* tools (list_services, list_monitors) have empty input schemas ({}). While this is technically valid, the descriptions do not explain filtering, pagination, or what the response structure includes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Retrieve 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.
Retrieve trace data by trace ID from Mackerel for distributed tracing analysis. 🔍 USE THIS TOOL WHEN USERS: - Analyze performance bottlenecks in distributed systems - Investigate error propagation across microservices - Understand request flow and service dependencies - Debug latency issues and identify slow operations - Generate documentation of system architecture from trace data
Retrieve alerts from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Check currently active alerts - Get a list of alerts including closed alerts
Retrieve all dashboards from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of dashboards - Get ID and title of each dashboard
Retrieve database query statistics from Mackerel APM.
Retrieve 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
Retrieve HTTP server statistics from Mackerel APM.
Retrieve all monitor configurations from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of all monitors - View monitor configurations
Retrieve all services from Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Get a list of services - View service names, memos, and roles
List traces from Mackerel with advanced filtering and search capabilities.
Update a specific dashboard by ID in Mackerel. 🔍 USE THIS TOOL WHEN USERS: - Modify dashboard title, memo, or URL path - Update dashboard widgets configuration
Error handling is absent from all tool definitions. No indication of retryable vs. fatal errors, no recovery guidance. Error responses likely come from the Mackerel client but are not surfaced in tool-level documentation.
Parameter descriptions lack explicit format constraints and ranges. E.g., 'from' and 'to' in metric tools accept unix epoch seconds but descriptions don't clarify if milliseconds are acceptable, what boundary values are valid, or what happens if range is too wide.
Pagination is implemented inconsistently: list_alerts uses nextId cursor, list_dashboards uses limit/offset, list_traces uses page/perPage. LLMs must learn three pagination patterns instead of one unified approach.