Spice MCP
Spice MCP is an MCP server that provides AI agents with direct access to Dune Analytics blockchain data through a type-safe interface optimized for AI workflows.
Core Capabilities:
Query Execution: Run Dune queries by ID, URL, or raw SQL with support for parameters, limits, offsets, and multiple output formats (preview, raw, metadata, poll)
Query Management: Create, update, fork, archive, and unarchive saved queries with full metadata management (name, parameters, tags, SQL)
Schema Discovery: Search and discover verified tables across Dune schemas using keywords, with filtering by schema and source (Dune API, Spellbook, or both)
Table Analysis: Get detailed column metadata and descriptions for specific tables to understand data structure
Sui Blockchain Analysis: Get compact overviews of Sui package activity with customizable time windows
Health Monitoring: Validate API key configuration and server health status
Key Features:
High-Quality Data: Leverages Dune Spellbook's curated dbt models to surface verified, production-ready tables with rich metadata
Efficient Processing: Uses Polars-first pipeline for lazy data loading and reduced memory usage
Reproducibility: Automatic query history logging and SQL artifact storage (accessible via SHA-256 hash) for traceability
Blockchain Coverage: Access to Ethereum, Solana, Polygon, and other blockchain datasets
Provides tools for exploring Sui blockchain packages, including querying events, transactions, and objects, with package overview and activity analysis capabilities through Dune Analytics.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spice MCPshow me the top 10 NFT collections by volume this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
spice-mcp
An MCP server that provides AI agents with direct access to Dune Analytics data. Execute queries, discover schemas and tables, and manage saved queries—all through a clean, type-safe interface optimized for AI workflows.
Discover High-Quality Tables: Leverages Dune Spellbook, Dune's official GitHub repository of curated dbt models, to surface verified, production-ready tables with rich metadata.
Why spice-mcp?
Agent-friendly: Designed for AI agents using the Model Context Protocol (MCP)
High-Quality Discovery: Leverages Dune Spellbook's GitHub repository to find verified, production-ready tables with rich metadata
Efficient: Polars-first pipeline keeps data lazy until needed, reducing memory usage
Discovery: Built-in tools to explore Dune's extensive blockchain datasets from both Dune API and Spellbook
Type-safe: Fully typed parameters and responses with FastMCP
Reproducible: Automatic query history logging and SQL artifact storage
Related MCP server: dune-mcp
Quick Start
Install:
uv pip install spice-mcpSet API key (choose one method):
Option A: Create a
.envfile in your project root:echo "DUNE_API_KEY=your-api-key-here" > .envOption B: Export in your shell:
export DUNE_API_KEY=your-api-key-here
Use with Cursor IDE: Add to Cursor Settings → MCP Servers:
{ "name": "spice-mcp", "command": "spice-mcp", "env": { "DUNE_API_KEY": "your-dune-api-key-here" } }
Note: Query history logging is enabled by default. Logs are saved to logs/queries.jsonl (or ~/.spice_mcp/logs/queries.jsonl if not in a project directory). To customize paths, set SPICE_QUERY_HISTORY and SPICE_ARTIFACT_ROOT environment variables.
Admin operations (create/update/fork/archive/unarchive) are logged with action_type="admin_action" and include query_id for traceability.
Core Tools
Tool | Description | Key Parameters |
| Execute queries by ID, URL, or raw SQL |
|
| Get metadata for a saved query |
|
| Unified discovery across Dune API and Spellbook (returns verified tables only). Leverages Dune Spellbook GitHub repository for high-quality, curated tables. |
|
| Get column metadata for a table |
|
| Verify API key and configuration | (no parameters) |
| Create a new saved query |
|
| Update an existing saved query |
|
| Fork an existing saved query |
|
| Archive a saved query |
|
| Unarchive a saved query |
|
Resources
spice:history/tail/{n}— View last N lines of query history (1-1000)spice:artifact/{sha}— Retrieve stored SQL by SHA-256 hash
What is Dune?
Dune is a crypto data platform providing curated blockchain datasets and a public API. It aggregates on-chain data from Ethereum, Solana, Polygon, and other chains into queryable SQL tables. See the Dune Docs for more information.
What is Dune Spellbook?
Dune Spellbook is Dune's official GitHub repository containing thousands of curated dbt models. These models represent high-quality, production-ready tables that are:
Verified: All tables are verified to exist in Dune before being returned
Well-documented: Rich metadata including column descriptions and types
Maintained: Regularly updated by the Dune community and team
Production-ready: Used by analysts and dashboards across the ecosystem
spice-mcp automatically clones and parses the Spellbook repository to discover these high-quality tables, parsing dbt config blocks to resolve actual Dune table names and verifying their existence before returning them to you.
Installation
From PyPI (recommended):
uv pip install spice-mcpFrom source:
git clone https://github.com/Evan-Kim2028/spice-mcp.git
cd spice-mcp
uv sync
uv pip install -e .Requirements: Python 3.13+
Documentation
Tool Reference — Complete tool documentation with parameters
Architecture — Code structure and design patterns
Discovery Guide — How to explore Dune schemas and tables
Dune API Guide — Understanding Dune's data structure
Configuration — Environment variables and settings
License
See LICENSE file for details.
Available Tools
10 toolsdune_describe_tableDescribe TableC
Describe columns for a schema.table on Dune.
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes | ||
| table | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation ('describe') but does not explicitly state safety, authentication requirements, or side effects. Behavioral traits like idempotency or rate limits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence with no superfluous words. It is front-loaded with the core purpose and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and only two simple string parameters, the description covers the basic purpose. However, with no annotations and minimal parameter guidance, it falls short of fully informing usage. The presence of an output schema reduces the need to describe return values, so a score of 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only mentions 'schema.table' format without explaining individual parameters. The phrase 'for a schema.table' provides minimal context (e.g., that schema and table are parts of a fully qualified name), but does not define allowed values or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: describing columns for a schema.table. It uses a specific verb 'describe' and identifies the resource as columns, which differentiates it from siblings like dune_discover (which may list tables) and dune_query (which runs queries). However, it lacks detail on what exactly is returned (e.g., column names, types).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No hints on prerequisites, context, or scenarios where another sibling tool would be more appropriate. The agent must infer usage solely from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_discoverDiscover TablesA
Unified tool to discover tables/models from Dune API and/or Spellbook repository. Search by keyword(s) or list tables in a schema.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | ||
| schema | No | ||
| limit | No | ||
| source | No | both | |
| include_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lacks details on read-only behavior, authentication, rate limits, or default behavior when both keyword and schema are null. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundancy. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be elaborated. However, the description omits edge cases (e.g., no parameters provided) and pagination. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description adds meaning: keyword search, schema listing, limit, source selection, and include columns. This compensates well for the schema gap, though it does not detail value formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool discovers tables/models from Dune API and/or Spellbook, with two modes: keyword search and listing tables in a schema. It is distinct from sibling tools like dune_describe_table (describe a specific table) and dune_query (run queries).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for table discovery, but does not explicitly differentiate from alternatives like dune_describe_table. However, the purpose is clear enough for an agent to infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_health_checkHealth CheckA
Validate Dune API key presence and logging setup.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only says 'validate' without details on network calls, return value, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. However, lack of detail on logging setup and validation scope makes it somewhat incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, schema coverage 100%. Baseline 4 per rules as description adds no further meaning to empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it validates Dune API key presence and logging setup, which distinguishes it from sibling tools that focus on querying data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives given, but the name 'health check' implies use before other operations. Lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_queryRun Dune QueryC
Execute Dune queries and return agent-optimized preview.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| parameters | No | ||
| refresh | No | ||
| max_age | No | ||
| limit | No | ||
| offset | No | ||
| sample_count | No | ||
| sort_by | No | ||
| columns | No | ||
| format | No | preview | |
| extras | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It says 'Execute' but does not disclose whether the tool is read-only, can cause side effects, requires authentication, or has rate limits. The presence of a 'refresh' parameter implies caching behavior, but this is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly terse given the tool's complexity. There is no structure (e.g., bullet points or sections) to aid readability, and it omits necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters, 0% schema coverage, no annotations, and a minimal description, the tool definition is severely inadequate. The agent lacks essential information to use the tool correctly, despite the existence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 12 parameters have descriptions in the schema. The tool description adds no parameter semantics—it only says 'Execute Dune queries' and 'return preview', leaving the agent without any understanding of parameters like query, parameters, refresh, limit, offset, etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Execute Dune queries' and 'return agent-optimized preview', providing a distinct verb and resource. Among siblings like dune_describe_table or dune_query_archive, this tool's role as the execution tool is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., dune_query_create, dune_query_archive). The agent receives no context about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_archiveArchive Saved QueryC
Archive a saved Dune query.
| Name | Required | Description | Default |
|---|---|---|---|
| query_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the bare action 'archive' without explaining effects (e.g., what happens to the query, permissions needed, reversibility).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words), but it is under-specified. While there is no wasted text, it omits necessary context, making it merely adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and low schema coverage, the description lacks essential context. It does not describe return values (despite an output schema), side effects, or usage conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the single parameter `query_id`, which is undocumented in the schema (0% coverage). It fails to explain what the parameter represents or its expected value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool archives a saved Dune query, with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like `dune_query_unarchive` or `dune_query_update`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_createCreate Saved QueryB
Create a new saved Dune query (name + SQL). Requires SPICE_DUNE_ALLOW_SAVES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| query_sql | Yes | ||
| description | No | ||
| tags | No | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It reveals a required environment variable, which is a critical constraint. However, it does not describe other behaviors such as whether existing queries are overwritten, if SQL validation occurs, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no unnecessary words. Every part adds value—action, required fields, and a prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, 0% schema coverage, and presence of an output schema, the description is incomplete. It does not explain the return value, the effect of optional parameters, or the implications of the environment variable beyond being required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should compensate. It mentions 'name + SQL' (covering the two required parameters), but fails to describe the three optional parameters (description, tags, parameters). The agent lacks information on their purpose or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a new saved Dune query, specifying 'name + SQL'. While it doesn't explicitly differentiate from siblings like dune_query_update or dune_query_fork, the verb 'create' and mention of saving indicate a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite (SPICE_DUNE_ALLOW_SAVES=true), which helps the agent know when it can be used. However, it lacks guidance on when to use this tool vs. alternatives like dune_query_update or dune_query, and does not mention any context for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_forkFork Saved QueryC
Fork an existing saved Dune query. Requires SPICE_DUNE_ALLOW_SAVES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| source_query_id | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It only mentions a prerequisite but does not disclose behavioral traits like whether the fork is a deep copy, side effects, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with one sentence and a condition. However, it sacrifices essential information at the cost of brevity, making it borderline under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of annotations, the description should cover return values, parameter details, and side effects. It fails to do so, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond parameter names. It does not explain the 'name' parameter or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Fork an existing saved Dune query,' which is a specific verb+resource. However, it does not distinguish from similar tools like dune_query_create, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only one usage condition is provided (environment variable requirement). No guidance on when to use this tool versus alternatives like creating a new query or updating an existing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_infoQuery InfoC
Fetch Dune query metadata (name, parameters, tags, SQL).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral aspects like idempotency, side effects, or authentication needs; it only describes the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action, but it is too minimal and could include more detail (e.g., parameter clarification) without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though the tool is simple and has an output schema, the description does not mention return values or complement the schema, leaving the agent underinformed about the operation's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not explain the 'query' parameter (e.g., expected format like ID), leaving it ambiguous despite being the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'Dune query metadata' with specific fields (name, parameters, tags, SQL), distinguishing it from siblings like dune_query which executes queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or alternatives are mentioned; the description only states the function without guiding selection among siblings like dune_query or dune_describe_table.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_unarchiveUnarchive Saved QueryC
Unarchive a saved Dune query.
| Name | Required | Description | Default |
|---|---|---|---|
| query_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It does not state any side effects (e.g., whether the query becomes queryable again), idempotency, or authentication requirements. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 6 words. It is front-loaded with the verb 'Unarchive', but the brevity sacrifices useful information without being overly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description is still insufficient. It omits the effect of unarchiving, prerequisites, and any differences from sibling tools beyond the verb.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (query_id) with 0% schema description coverage. The description does not add any meaning beyond the schema, failing to clarify the role or format of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Unarchive' and resource 'saved Dune query', distinguishing it from the sibling 'dune_query_archive' which performs the opposite action. However, it lacks specificity on what unarchiving entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not mention when to use this tool (e.g., to restore an archived query) or when to avoid it (e.g., if the query is already active). No alternatives are discussed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dune_query_updateUpdate Saved QueryC
Update fields of a saved Dune query (name/SQL/description/tags/parameters). Requires SPICE_DUNE_ALLOW_SAVES=true.
| Name | Required | Description | Default |
|---|---|---|---|
| query_id | Yes | ||
| name | No | ||
| query_sql | No | ||
| description | No | ||
| tags | No | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states 'Update fields' but does not disclose whether updates are full replacements or merges, if the tool is destructive, or what permissions are needed beyond the environment variable. The presence of an output schema is mentioned but not described, leaving the return behavior unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a prerequisite note, both front-loaded. It is efficient with no wasted words, though it could be slightly expanded to include behavioral details without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, 0% schema coverage, no annotations, and an output schema), the description is insufficient. It fails to explain the effect on the query after update, does not mention alternative scenarios, and omits details that would help an agent use the tool correctly. The presence of an output schema is acknowledged but not leveraged to reduce description burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage. The description lists the updatable fields (name, SQL, description, tags, parameters) but adds no detail on format, constraints, or behavior (e.g., whether query_sql must be a full SQL statement, how tags are handled, or the structure of parameters). This is minimal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update fields') and the resource ('saved Dune query'), with a specific list of updateable fields (name, SQL, description, tags, parameters). It distinguishes itself from sibling tools like dune_query_create, dune_query_fork, and dune_query_archive by implying modification of an existing query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a necessary precondition ('Requires SPICE_DUNE_ALLOW_SAVES=true') but provides no guidance on when to use this tool versus alternatives (e.g., dune_query_create for new queries, dune_query_fork for copies). It lacks exclusions or context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- Added
dune_discover - Removed
dune_find_tables - Added
dune_query_archive - Added
dune_query_unarchive - Removed
sui_package_overview
9 tool updates
- First observed
dune_describe_table - First observed
dune_find_tables - First observed
dune_health_check - First observed
dune_query - First observed
dune_query_create - First observed
dune_query_fork - First observed
dune_query_info - First observed
dune_query_update - First observed
sui_package_overview
TDQS
Scored across 10 tools
Each tool has a clear, distinct purpose: describe table columns, discover tables/models, health check, execute query, and manage saved queries (create, info, update, archive, unarchive, fork). No overlap.
All tools follow the 'dune_' prefix with a verb_noun pattern (e.g., dune_describe_table, dune_query_create). The naming is uniform and predictable.
10 tools is well-scoped for a Dune analytics server, covering core table inspection, query execution, and saved query lifecycle without unnecessary bloat.
Covers essential operations: describing/discovering tables, health, query execution, and saved query CRUD (except delete). Missing a list saved queries tool and explicit deletion, but core workflows are supported.
Maintenance
Related MCP Connectors
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Query cryptocurrency on-chain data, OHLCV prices, market data, and Research & QuickTake insights.
Search, access, and get insights on your Amplitude data
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAllows LLM agents and MCP clients to analyze blockchain data including wallet balances, token information, and transaction history across EVM and Solana chains through the Dune API.14 npm4MIT
- AlicenseBqualityCmaintenanceSecurely query Dune Analytics with LLMs. Features budget protection, query reuse, and optimized data summaries172MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query and analyze blockchain data from Dune Analytics, supporting execution of saved queries, ad-hoc DuneSQL queries, and access to cached results with parameter support.MIT
- AlicenseAqualityDmaintenanceDune MCP Server connects your AI assistant to Dune Analytics, the leading platform for blockchain data. Execute SQL queries across Ethereum, Solana, and 20+ chains to analyze DEX trades, token transfers, NFT sales, and wallet activity. Manage saved queries, upload custom datasets, and access curate19MIT