dune_query_info
Retrieve Dune Analytics query metadata including name, parameters, tags, and SQL code to understand query structure and requirements.
Instructions
Fetch Dune query metadata (name, parameters, tags, SQL).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Implementation Reference
- src/spice_mcp/mcp/server.py:179-211 (handler)Handler function that fetches Dune query metadata (name, parameters, tags, SQL) using Dune API.def dune_query_info(query: str) -> dict[str, Any]: _ensure_initialized() try: qid = dune_urls.get_query_id(query) url = dune_urls.url_templates["query"].format(query_id=qid) from ..adapters.dune.user_agent import get_user_agent as get_dune_user_agent headers = { "X-Dune-API-Key": dune_urls.get_api_key(), "User-Agent": get_dune_user_agent(), } client = HTTP_CLIENT or HttpClient(Config.from_env().http) resp = client.request("GET", url, headers=headers, timeout=10.0) data = resp.json() if resp.headers.get("content-type", "").startswith("application/json") else {} # Select useful fields; fall back gracefully if missing payload = { "ok": resp.ok, "status": resp.status_code, "query_id": qid, "name": data.get("name"), "description": data.get("description"), "tags": data.get("tags"), "parameters": data.get("parameters"), "version": data.get("version"), "query_sql": data.get("query_sql"), "query_url": f"https://dune.com/queries/{qid}", } return payload except Exception as e: return error_response(e, context={ "tool": "dune_query_info", "query": query, })
- src/spice_mcp/mcp/server.py:173-178 (registration)FastMCP tool registration decorator for dune_query_info.@app.tool( name="dune_query_info", title="Query Info", description="Fetch Dune query metadata (name, parameters, tags, SQL).", tags={"dune", "query"}, )