mcp-grafana
by: grafana
MCP server for Grafana
📌Overview
Purpose: The MCP server for Grafana facilitates access to Grafana instances and enhances interaction with its ecosystem.
Overview: This framework allows users to interact with Grafana's features by providing tools for searching dashboards, managing data sources, querying metrics, and handling incidents. The server is designed to be configurable, catering to specific user needs and optimizing the context window.
Key Features:
-
Search Dashboards: Enables users to search for and retrieve dashboards, enhancing discoverability and accessibility.
-
Datasource Management: Lists and fetches information on various data sources, allowing users to manage connections effectively.
-
Querying Capabilities: Supports querying of Prometheus and Loki for both metrics and logs, enabling detailed analysis and insights.
-
Incident Management: Facilitates search, creation, update, and closure of incidents, improving operational response times.
-
Alerting System: Offers features to manage alert rules, including listing and fetching alert rule information, which helps maintain system reliability.
Grafana MCP Server
A Model Context Protocol (MCP) server for Grafana, providing access to your Grafana instance and the surrounding ecosystem.
Features
- Search for dashboards
- Get dashboard by UID
- List and fetch datasource information
- Query datasources (Prometheus and Loki)
- Log queries
- Metric queries
- Query Prometheus metadata
- Metric metadata
- Metric names
- Label names
- Label values
- Query Loki metadata
- Label names
- Label values
- Stats
- Manage incidents (search, create, update, close)
- Alerting functionality (list, fetch, and manage alert rule information)
Tools
Tool | Category | Description |
---|---|---|
search_dashboards | Search | Search for dashboards |
get_dashboard_by_uid | Dashboard | Get a dashboard by UID |
list_datasources | Datasources | List datasources |
get_datasource_by_uid | Datasources | Get a datasource by UID |
get_datasource_by_name | Datasources | Get a datasource by name |
query_prometheus | Prometheus | Execute a query against a Prometheus datasource |
list_prometheus_metric_metadata | Prometheus | List metric metadata |
list_prometheus_metric_names | Prometheus | List available metric names |
list_prometheus_label_names | Prometheus | List label names matching a selector |
list_prometheus_label_values | Prometheus | List values for a specific label |
list_incidents | Incident | List incidents in Grafana Incident |
create_incident | Incident | Create an incident in Grafana Incident |
resolve_incident | Incident | Resolve an incident in Grafana Incident |
query_loki_logs | Loki | Query and retrieve logs using LogQL (log or metric queries) |
list_alert_rules | Alerting | List alert rules |
Usage
-
Create a service account in Grafana with the necessary permissions and generate a token.
-
Download the latest release of
mcp-grafana
and place it in your$PATH
, or build it from source:GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
-
Add the server configuration to your client configuration file (example for Claude Desktop):
{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }
Note: Specify the full path to
mcp-grafana
if you encounter an error.
Development
Contributions are welcome! This project is written in Go. Install Go following the instructions for your platform.
To run the server, use:
make run
You can also run the server inside Docker:
make build-image
docker run -it --rm -p 8000:8000 mcp-grafana:latest
Testing
To run unit tests:
make test
For integration tests, ensure a Grafana instance is running on port 3000, which you can start with Docker Compose:
docker-compose up -d
make test-all
Linting
To lint the code:
make lint
License
This project is licensed under the Apache License, Version 2.0.