Overview - Middleware MCP Server
Middleware MCP Server is a Model Context Protocol (MCP) server that enables AI assistants (for example, Claude) to interact with Middleware's observability platform across monitoring, dashboards, widgets, metrics, alerts and error listing.
In MCP terms, this server exposes a set of tools that a model can call to perform actions against external systems. In MCP, a tool is uniquely identified by a name and includes metadata that describes its input schema, so calls stay structured and predictable.
When an MCP client invokes one of these tools, the server:
- Handles tool invocations
- Maps tool calls to the Middleware API
- Returns a structured response back to the client
This gives you a clean "tool boundary" between the assistant and Middleware, instead of relying on UI steps or unstructured requests.
How tool calls work in practice
From a user perspective, you ask your MCP client to do something like "list dashboards" or "fetch widget data".
From a technical perspective, the important part is that each request becomes a typed tool invocation. The server routes that invocation to the corresponding tool handler, then translates it into Middleware API calls and returns the results back to the MCP client.
This keeps the integration:
- Structured (tool name + schema-driven input)
- Composable (tools can be chained for multi-step workflows)
- Easier to debug (clear separation between tool call and API response)
Available tools
Middleware MCP Server provides 21 tools, grouped by product area so it is clear what an assistant can access and modify.
Dashboard management (7 tools)
Use these tools to manage the full dashboard lifecycle, including cloning and favourites.
| Tool | Description |
|---|---|
list_dashboards | List all dashboards with filtering and pagination |
get_dashboard | Get a specific dashboard by key |
create_dashboard | Create a new dashboard |
update_dashboard | Update an existing dashboard |
delete_dashboard | Delete a dashboard |
clone_dashboard | Clone an existing dashboard |
set_dashboard_favorite | Mark dashboard as favorite or unfavorite |
Widget management
Widget tools cover CRUD operations plus data retrieval and layout updates. This is useful when you want an assistant to build or adjust dashboards programmatically, then validate the outcome by pulling widget data.
| Tool | Description |
|---|---|
list_widgets | List widgets for a report or display scope |
create_widget | Create or update a widget |
delete_widget | Delete a widget |
get_widget_data | Get data for a specific widget |
get_multi_widget_data | Get data for multiple widgets at once |
update_widget_layouts | Update widget layout positions |
Metrics and resources
This set is designed for discovery plus querying. Typically, you first identify what is available (metrics, resources), then run a query.
| Tool | Description |
|---|---|
get_metrics | Get metrics, filters, or groupby tags |
get_resources | Get available resources for queries |
query | Execute flexible queries to retrieve logs, metrics, traces, and other data |
Alerts
These tools help an assistant explore and create alerting configuration, plus inspect alert performance using stats.
| Tool | Description |
|---|---|
list_alerts | List alerts for a specific rule |
create_alert | Create a new alert |
get_alert_stats | Get alert statistics |
Error and incident management
Use these tools for incident triage workflows. The list endpoint includes a clickable issue_url, then you can drill into a specific issue using a fingerprint.
| Tool | Description |
|---|---|
list_errors | List all errors and incidents with filtering and pagination (includes clickable issue_url for each incident) |
get_error_details | Get detailed information about a specific error or incident by fingerprint |
Transport modes
The server supports three transport modes, depending on how your MCP client connects:
- stdio (default): standard input/output transport for command-line style usage
- http: streamable HTTP transport for web-based clients
- sse: Server-Sent Events transport for real-time streaming
Safer deployments with tool exclusion
If you want a more controlled deployment (for example, read-only or non-destructive), you can exclude tools using EXCLUDED_TOOLS. This is explicitly called out as useful for creating read-only instances or restricting destructive operations.
Example:
| EXCLUDED_TOOLS=delete_dashboard,delete_widget,create_alert |
|---|
Need assistance or want to learn more about Middleware? Contact our support team at [email protected] or join our Slack channel.