dune-mcp-skill
Dune MCP Skill
Use this skill to run Dune MCP operations through uxc.
Reuse the uxc skill for shared protocol discovery, output parsing, and generic auth/binding flows.
Prerequisites
uxcis installed and available inPATH.- Network access to
https://api.dune.com/mcp/v1. - Dune API key is available for authenticated calls.
Core Workflow
- Confirm endpoint and protocol with help-first probing:
uxc https://api.dune.com/mcp/v1 -h
- Configure credential/binding for repeatable auth:
uxc auth credential set dune-mcp --auth-type api_key --header "x-dune-api-key={{secret}}" --secret-env DUNE_API_KEYuxc auth credential set dune-mcp --auth-type api_key --header "x-dune-api-key={{secret}}" --secret-op op://Engineering/dune/api-keyuxc auth binding add --id dune-mcp --host api.dune.com --path-prefix /mcp/v1 --scheme https --credential dune-mcp --priority 100
- Use fixed link command by default:
command -v dune-mcp-cli- If missing, create it:
uxc link dune-mcp-cli https://api.dune.com/mcp/v1 dune-mcp-cli -h
- Inspect operation schema before execution:
dune-mcp-cli searchTables -hdune-mcp-cli searchTablesByContractAddress -hdune-mcp-cli createDuneQuery -hdune-mcp-cli executeQueryById -hdune-mcp-cli getExecutionResults -h
- Prefer read/discovery operations first, then query creation or credit-consuming execution.
Capability Map
- Discovery:
searchDocssearchTableslistBlockchainssearchTablesByContractAddress
- Query lifecycle:
createDuneQuerygetDuneQueryupdateDuneQueryexecuteQueryByIdgetExecutionResults
- Analysis helpers:
generateVisualizationgetTableSizegetUsage
Recommended Usage Pattern
- Find the right table first:
dune-mcp-cli searchTables query='uniswap swaps'dune-mcp-cli searchTablesByContractAddress contractAddress=0x...
- Prefer higher-level
spelltables when they already expose the metrics you need. - Keep SQL partition-aware:
- use
block_date,evt_block_date, or another partition/date column inWHERE
- use
- Create a temporary query only after confirming table choice and date range.
- Execute and fetch results by execution ID.
Guardrails
- Keep automation on JSON output envelope; do not rely on
--text. - Parse stable fields first:
ok,kind,protocol,data,error. - Use
dune-mcp-clias default command path. dune-mcp-cli <operation> ...is equivalent touxc https://api.dune.com/mcp/v1 <operation> ....- Discovery operations are read-only:
searchDocssearchTableslistBlockchainssearchTablesByContractAddressgetDuneQuerygetExecutionResultsgetTableSizegetUsage
- Require explicit user confirmation before credit-consuming or state-changing operations:
createDuneQueryupdateDuneQueryexecuteQueryByIdgenerateVisualization
- Be careful with privacy:
- confirm before switching a query from private to public
- temporary queries can still be visible; inspect
is_privateandis_temp
key=valueinput now supports automatic type conversion for numeric MCP arguments.- Numeric IDs can be passed directly with
key=value, for example:query_id=6794106queryId=6794106
- Positional JSON is still useful for nested objects or when mixing string and numeric fields precisely:
{"executionId":"01...","timeout":90,"limit":20}
- For SQL passed via
key=value, wrap the whole SQL string in double quotes so inner SQL single quotes survive shell parsing. - If
listBlockchainsreturns a Dune-side schema/facet error, fall back tosearchTableswithblockchainsfilters.
Tested Real Scenario
The following flow was exercised successfully through uxc:
- discover table:
uniswap.uniswapx_trades - create temporary query for Base daily volume
- execute query
- fetch results
The successful SQL shape was:
SELECT block_date,
ROUND(SUM(amount_usd), 2) AS daily_volume_usd,
COUNT(*) AS trades
FROM uniswap.uniswapx_trades
WHERE blockchain = 'base'
AND block_date >= date_add('day', -7, CURRENT_DATE)
GROUP BY 1
ORDER BY 1 DESC
LIMIT 7
References
- Invocation patterns:
references/usage-patterns.md
More from holon-run/uxc
chrome-devtools-mcp-skill
Use Chrome DevTools MCP through UXC over local stdio for page navigation, DOM/a11y snapshots, network inspection, console inspection, and performance tooling, with a live-browser autoConnect default and optional browserUrl or isolated fallback modes.
53playwright-mcp-skill
Run browser automation through @playwright/mcp over UXC stdio MCP, with daemon-friendly session reuse and safe action guardrails. Use when tasks need deterministic page navigation, DOM snapshots, and scripted browser interaction from CLI.
49uxc
Discover and call remote schema-exposed interfaces with UXC. Use when an agent or skill needs to list operations, inspect operation schemas, and execute OpenAPI, GraphQL, gRPC, MCP, or JSON-RPC calls via one CLI contract.
44context7-mcp-skill
Query up-to-date library documentation and code examples using Context7 MCP. Use when you need current, version-specific documentation for npm packages, Python libraries, or other programming languages.
26etherscan-mcp-skill
Use Etherscan MCP through UXC for address balance checks, token holder analysis, transaction inspection, and contract lookup tasks. Use when tasks need Etherscan MCP tools for onchain investigation with help-first schema inspection, bearer-key auth, and tier-aware read-first handling.
25linear-graphql-skill
Operate Linear workspace issues, projects, and teams through Linear GraphQL API using UXC. Use when tasks require querying or creating issues, managing projects, or interacting with Linear workflow. Supports both Personal API Key and OAuth authentication.
25