A Model Context Protocol server for querying Dune Analytics data, specifically focused on Pumpfun dashboard queries
Two tools with minimal descriptions and incomplete schemas. get_query_data has a basic schema with one required parameter but lacks output documentation. get_dashboard_queries has an empty input schema (no parameters) and a trivial 8-character description. Neither tool documents return types, error conditions, or recovery guidance. Parameter descriptions are minimal. No tool annotations present. Naming follows verb_noun convention but descriptions fail to explain WHEN to use each tool or what data structure is returned.
get pumpfun Dune dashboard query_ids
Get data from a specific query_id
get_dashboard_queries description is 8 characters ('get pumpfun Dune dashboard query_ids'), below 20-char minimum.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract fields without knowing return structure. get_query_data returns JSON but structure is undocumented; get_dashboard_queries returns array of objects with query_id and description but this is inferred, not declared.
query_id parameter in get_query_data lacks format/constraint documentation. Description says 'Query Id identifier' (redundant) but does not explain format, valid range, or how to discover valid IDs. Should reference get_dashboard_queries as discovery tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No error handling guidance. Code throws McpError for missing query_id but does not document what errors are possible (invalid query_id, API rate limit, network timeout) or how LLM should recover. Catch block logs error but returns nothing actionable.
Hardcoded Dune API key exposed in source code (line: const DUNE_API_KEY = 's9idurdqgmDm1uaYOwkozgtZzA560JXF'). Credentials must never appear in tool parameters or source, use environment variables only. This key is now compromised.