create_query
Save a new SQL query to Dune Analytics for execution and analysis. Returns a unique Query ID for reference.
Instructions
Save a new query to Dune. Returns Query ID. (Requires Paid Plan)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| sql | Yes | ||
| description | No |
Implementation Reference
- src/main.py:154-163 (handler)MCP tool handler: Creates a new Dune query by calling DuneService.create_query and returns success message with query ID and URL.@mcp.tool() def create_query(name: str, sql: str, description: str = "") -> str: """ Save a new query to Dune. Returns Query ID. (Requires Paid Plan) """ try: query_id = dune_service.create_query(name, sql, description) return f"Successfully created Query {query_id}: '{name}'\nURL: https://dune.com/queries/{query_id}" except Exception as e: return f"Error creating query: {str(e)}"
- src/services/dune_client.py:396-407 (helper)DuneService helper method: Uses DuneClient to create a query object and returns its ID.def create_query(self, name: str, sql: str, description: str = "") -> int: """ Creates a new query in Dune. Returns the new Query ID. """ try: # client.create_query returns a Query object, we need its ID # Removed 'description' arg as it's not supported in current SDK version query = self.client.create_query(name=name, query_sql=sql) return query.base.query_id except Exception as e: logger.error(f"Error creating query '{name}': {e}") raise