dune-analytics-mcp
by kukapay
# Dune Analytics MCP Server
A mcp server that bridges Dune Analytics data to AI agents.
## Features
- **Tools**:
- `get_latest_result`: Fetch the latest results of a Dune query by ID.
- `run_query`: Execute a Dune query by ID and retrieve results.
- **CSV Output**: All results are returned as CSV-formatted strings for easy processing.
## Prerequisites
- Python 3.10+
- A valid Dune Analytics API key (get one from [Dune Analytics](https://dune.com/settings/api))
## Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/kukapay/dune-analytics-mcp.git
cd dune-analytics-mcp
```
2. **Set Up Environment Variables**:
Create a `.env` file in the project root:
```
DUNE_API_KEY=your_api_key_here
```
Alternatively, set it as a system environment variable:
```bash
export DUNE_API_KEY="your_api_key_here"
```
## Usage
### Running the Server
- **Development Mode**:
```bash
mcp dev main.py
```
This starts the server with hot reloading for development.
- **Install for Claude Desktop**:
```bash
mcp install main.py --name "Dune Analytics"
```
Installs the server as a service for use with Claude Desktop.
### Tool Usage
1. **`get_latest_result(query_id)`**
- **Description**: Retrieves the latest results of a specified Dune query.
- **Input**: `query_id` (int) - The ID of the Dune query.
- **Output**: CSV-formatted string of the query results.
- **Example**:
```
get_latest_result(query_id=4853921)
```
2. **`run_query(query_id)`**
- **Description**: Executes a Dune query and returns the results.
- **Input**: `query_id` (int) - The ID of the Dune query to run.
- **Output**: CSV-formatted string of the query results.
- **Example**:
```
run_query(query_id=1215383)
```
### Example Commands in Claude Desktop
- "Get latest results for dune query 1215383"
- "Run dune query 1215383"
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.