Catalog Discovery
Summary
- There is no public REST endpoint to browse the full catalog. Discovery is best achieved using Dune SQL primitives and fallback probes.
Approach
- Schemas
- SHOW SCHEMAS
- SHOW SCHEMAS LIKE '%keyword%'
- Tables
- SHOW TABLES FROM <schema>
- If SHOW is blocked, probe candidate names via SELECT 1 FROM <schema>.<table> LIMIT 1
- Columns
- SHOW COLUMNS FROM <schema>.<table>
- Fallback: SELECT * FROM <schema>.<table> LIMIT 1, infer columns and Polars dtypes client-side
- INFORMATION_SCHEMA
- Some deployments allow: information_schema.schemata/tables/columns
- If blocked, use SHOW + probes
Sui Examples
- Find Sui schemas: SHOW SCHEMAS LIKE '%sui%'
- Confirm core tables: SELECT * FROM sui.events/transactions/checkpoints/objects LIMIT 1
- SHOW TABLES works on some Sui-related schemas (e.g., sui_base), but not all
Helpers in this repo
- `src/spice_mcp/service_layer/discovery_service.py` provides service wrappers around the Dune adapter:
- `find_schemas(keyword)`, `list_tables(schema, limit)`, `describe_table(schema, table)`
MCP Tools
- dune_find_tables: search schemas and list tables
- dune_describe_table: describe columns with SHOW + fallback