Skip to main content
Glama
SAK1337

Dune Analytics MCP Server

by SAK1337
spec.md2.82 kB
# Capability: MCP Resources ## ADDED Requirements ### Requirement: Latest Cached Result Resource The system SHALL provide a resource at URI `dune://query/{query_id}/latest` that returns the cached result of the last successful query execution without consuming execution credits. #### Scenario: Read cached result - **WHEN** client reads dune://query/{query_id}/latest - **AND** a cached result exists for the query - **THEN** result rows are returned as JSON - **AND** no execution credits are consumed #### Scenario: No cached result available - **WHEN** client reads dune://query/{query_id}/latest - **AND** no cached result exists (never executed or cache expired) - **THEN** appropriate error message is returned #### Scenario: Query not found - **WHEN** client reads dune://query/{query_id}/latest - **AND** query_id does not exist - **THEN** error message "Query ID {id} not found" is returned #### Scenario: Resource MIME type - **WHEN** client reads dune://query/{query_id}/latest - **THEN** content type is application/json ### Requirement: Query SQL Definition Resource The system SHALL provide a resource at URI `dune://query/{query_id}/sql` that returns the raw SQL text of a query for inspection. #### Scenario: Read query SQL - **WHEN** client reads dune://query/{query_id}/sql - **THEN** the query's SQL code is returned as plain text #### Scenario: Query not found - **WHEN** client reads dune://query/{query_id}/sql - **AND** query_id does not exist - **THEN** error message "Query ID {id} not found" is returned #### Scenario: Resource MIME type - **WHEN** client reads dune://query/{query_id}/sql - **THEN** content type is text/plain ### Requirement: Execution Status Resource The system SHALL provide a resource at URI `dune://execution/{execution_id}/status` that returns the current state of an execution job. #### Scenario: Read pending status - **WHEN** client reads dune://execution/{execution_id}/status - **AND** execution is still running - **THEN** JSON object with state field is returned - **AND** state is "QUERY_STATE_EXECUTING" or "QUERY_STATE_PENDING" #### Scenario: Read completed status - **WHEN** client reads dune://execution/{execution_id}/status - **AND** execution has completed - **THEN** JSON object with state "QUERY_STATE_COMPLETED" is returned #### Scenario: Read failed status - **WHEN** client reads dune://execution/{execution_id}/status - **AND** execution has failed - **THEN** JSON object with state "QUERY_STATE_FAILED" is returned #### Scenario: Execution not found - **WHEN** client reads dune://execution/{execution_id}/status - **AND** execution_id does not exist - **THEN** error message is returned #### Scenario: Resource MIME type - **WHEN** client reads dune://execution/{execution_id}/status - **THEN** content type is application/json

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SAK1337/dune-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server