Solana Metrics MCP Server
# Solana Metrics MCP Server
This MCP server analyzes Solana metrics from InfluxDB and generates Grafana dashboards. It's designed to work with the `sol_metrics` database and provides intelligent categorization and analysis of blockchain metrics.
## Features
- **🔍 Metric Discovery**: Lists all available metrics from the sol_metrics InfluxDB database
- **🏷️ Intelligent Categorization**: Automatically categorizes metrics into logical groups (Consensus, Network, Banking, Accounts, RPC, Performance, Jito/MEV)
- **📊 Metric Analysis**: Provides detailed explanations of what each metric measures and why it's useful
- **📁 Auto-Dashboard Export**: Creates and saves importable Grafana dashboard JSON files to `grafana/` folder
- **🔎 Code Search**: Helps locate metric definitions in the Solana Rust codebase
- **🔄 Dual InfluxDB Support**: Compatible with both InfluxDB v1 and v2
- **🛠️ VS Code Integration**: Works seamlessly as an MCP server in Visual Studio Code
## Installation
```bash
npm install
npm run build
```
## Configuration
Set the following environment variables to connect to your InfluxDB instance:
```bash
export INFLUX_URL="http://your-influxdb-server:8086"
export INFLUX_TOKEN="your_token"
export INFLUX_ORG="your_org"
export INFLUX_BUCKET="sol_metrics"
export INFLUX_VERSION="v1" # or "v2" for InfluxDB v2
```
## Dashboard Export
When you generate dashboards using the `generate_dashboard` tool, the server automatically:
1. **Saves JSON files** to the `grafana/` folder in your project directory
2. **Creates timestamped backups** for version history
3. **Provides ready-to-import** Grafana dashboard configurations
Generated dashboard files:
- `consensus-dashboard.json` - Epoch rewards, slot confirmation, validator voting
- `network-dashboard.json` - Gossip, cluster info, retransmit metrics
- `banking-dashboard.json` - Transaction processing, prioritization fees
- `accounts-dashboard.json` - Account database, cache, hashing metrics
- `rpc-dashboard.json` - RPC service and subscription metrics
- `performance-dashboard.json` - CPU, memory, disk usage metrics
- `jito-mev-dashboard.json` - Block engine, bundle processing, MEV relayer metrics
## Usage with Claude Desktop
Add this server to your Claude Desktop configuration:
```json
{
"mcpServers": {
"solana-metrics": {
"command": "node",
"args": ["/absolute/path/to/solana-metrics-mcp-server/build/index.js"]
}
}
}
```
## Available Tools
### 1. `list_metrics`
Lists all available metrics from the sol_metrics database.
### 2. `analyze_metrics`
Analyzes and categorizes metrics with detailed explanations.
- Parameters:
- `category` (optional): Filter by category (Consensus, Network, Banking, Accounts, RPC, Performance, Jito/MEV, Other, All)
### 3. `generate_dashboard`
Generates a Grafana dashboard JSON for selected metrics.
- Parameters:
- `category`: Category to generate dashboard for
- `dashboard_name`: Name for the generated dashboard
### 4. `search_rust_code`
Searches for metric definitions in the Solana Rust codebase.
- Parameters:
- `metric_name`: Name of the metric to search for
## Metric Categories
The server organizes metrics into the following categories based on Solana's architecture:
- **Consensus**: Validator voting, slots, epochs, leader schedules
- **Network**: Cluster topology, gossip, turbine, TPU/TVU, repairs
- **Banking**: Transaction processing, PoH recording, leader slot utilization
- **Accounts**: Account database operations, hashing, snapshots
- **RPC**: API request handling, subscriptions, WebSocket connections
- **Performance**: System resources, throughput benchmarks
- **Jito/MEV**: MEV tips, bundle processing, block engine metrics
## Development
```bash
# Development mode
npm run dev
# Build only
npm run build
# Start server
npm start
```
## Contributing
This server is designed for Solana metrics analysis. For questions or improvements, please refer to the Solana metrics documentation and codebase.
TDQS
Scored across 4 tools
The tools have mostly distinct purposes, but 'analyze_metrics' and 'generate_dashboard' could be confused as both involve processing metrics. 'list_metrics' and 'search_rust_code' are clearly distinct for data retrieval and code search respectively. The overlap is minor and descriptions help differentiate.
All tool names follow a consistent verb_noun pattern with snake_case throughout: analyze_metrics, generate_dashboard, list_metrics, search_rust_code. This predictability makes it easy for agents to understand and use the toolset.
With only 4 tools, the server feels thin for a metrics domain that typically involves more operations like filtering, aggregating, or updating metrics. While the tools cover key areas, the count is borderline minimal for comprehensive metrics handling.
The toolset covers listing, analyzing, visualizing, and searching metrics, but lacks operations for creating, updating, or deleting metrics, which are common in metrics management. There are notable gaps that agents might need to work around for full lifecycle coverage.