dune-analytics-mcp

# 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.