Grafana MCP
by izaitsevfb
README.md
# Grafana MCP
This project provides [MCP](https://modelcontextprotocol.io/) server for Grafana, including MCP tools to interact with Grafana dashboards, data sources, alerts, and more.
The package includes a dashboard template resource that is properly bundled with the package for use when installed.
## Usage
### Installation
1. Create a virtual environment (recommended)
```bash
python -m venv venv
source venv/bin/activate
```
2. Install this package directly from GitHub using pip:
```bash
pip install -e git+https://github.com/izaitsevfb/grafana-mcp.git#egg=grafana_mcp
```
(Alternatively, you can install it locally with `pip install -e .`)
3. Configure Grafana authentication
Create a `.env` file with your Grafana URL and API token:
```bash
cp .env.example .env
```
Then edit the `.env` file to add your actual Grafana URL and API token:
```
GRAFANA_URL=http://your-grafana-server:3000
GRAFANA_API_TOKEN=your-api-token-here
```
You can generate an API token in Grafana by navigating to: Configuration → API Keys → New API key.
4. After installation, the MCP server can be run as:
```bash
python -m grafana_mcp
```
5. Add this MCP server to Claude Code:
```bash
claude mcp add-json grafana '{ "type": "stdio", "command": "python", "args": [ "-m", "grafana_mcp" ], "env": {} }'
```
Note: By default, MCP config applies only to the current directory. If you want to use it globally, add `--scope user` to the command above:
```bash
claude mcp add-json --scope user grafana '{ "type": "stdio", "command": "python", "args": [ "-m", "grafana_mcp" ], "env": {} }'
```
6. Run Claude Code as usual:
```bash
claude
```
## Development
### Development Installation
1. Clone the repository
2. Install in development mode:
```bash
pip install -e .
```
The package uses Python's package resource management system to include the dashboard template. The dashboard.json file is stored in the src/grafana_mcp/ directory and is accessed using importlib.resources when the package is installed.
### Testing
Run unit tests:
```bash
python -m unittest discover tests
```
For testing with token authentication, ensure you have created a `.env` file with your Grafana credentials as described above. The test suite includes mocked tests that don't require an actual Grafana instance.
## Tools
The Grafana MCP provides the following tools:
### Available Tools
#### Dashboard Management
- `get_grafana_info()`: Get information about the connected Grafana instance including version and connection status
- `list_dashboards()`: List all dashboards from the connected Grafana instance
- `get_dashboard(uid)`: Get details about a specific dashboard by UID
#### Organization Management
- `get_organization()`: Get information about the current organization
#### Data Source Management
- `list_datasources()`: List all available data sources
### Requirements
- `grafana-client`: Python client for Grafana API
- `python-dotenv`: For loading environment variables from `.env` file
- `mcp`: Model Context Protocol server implementation
## Authentication
This package uses token authentication with the Grafana API. To configure authentication:
1. In your Grafana instance, create an API key with appropriate permissions
2. Create a `.env` file with the following variables:
```
GRAFANA_URL=http://your-grafana-url:3000
GRAFANA_API_TOKEN=your-api-token-here
```
3. The MCP server will automatically load these credentials when started
More tools and features will be added in future versions.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues