Skip to main content
Glama
nkrimmel

mcp-duckdb-analyst

by nkrimmel

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
dbNoExisting DuckDB database file, attached read-only as catalog db
dataYesDirectory scanned recursively for .csv .parquet .json .jsonl .ndjson (required)
hostNoBind address for streamable HTTP127.0.0.1
portNoBind port for streamable HTTP; the endpoint is /mcp8000
checkNoRegister the files, print the catalog and exitfalse
max-rowsNoHard cap on rows per result; query(limit=...) can only lower it500
log-levelNoServer log level; logs go to stderrWARNING
max-cellsNoCap on rows x columns per result20000
timeout-sNoPer-query timeout; the query is interrupted30
transportNoMCP transportstdio
allow-extensionsNoAccept INSTALL/LOAD and extension autoloading (relaxes the DuckDB sandbox)false
allow-saved-queriesNoEnable save_query / list_saved_queries (writes saved_queries.json into the data directory)false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_tablesA

List all queryable tables and views with source file, kind and row count.

describe_tableB

Columns of a table with DuckDB type, nullability, null count and sample values.

profile_tableA

Per-column statistics: count, null %, distinct, min, max, mean/stddev (numeric), top-5 values for low-cardinality columns. Optionally restrict to some columns.

sample_rowsA

A reproducible random sample of n rows from a table (n is capped at max rows).

queryA

Run one read-only SQL statement (SELECT / WITH / DESCRIBE / SHOW / SUMMARIZE / EXPLAIN). Returns columns, JSON rows, a Markdown table, a truncated flag and the elapsed time. The row limit is min(limit, server max rows).

explain_queryA

Show DuckDB's physical query plan for a SELECT without running it.

search_columnsA

Find columns across all tables by case-insensitive substring or * / ? glob.

table_relationshipsA

Heuristic foreign-key candidates: *_id columns whose sampled values are contained in a matching column of another table.

Prompts

Interactive templates invoked by user choice

NameDescription
analyze_tableStep-by-step instructions for a first structured analysis of a table.

Resources

Contextual data attached and managed by the client

NameDescription
schemaAll tables with their columns and types.

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct purposes: table listing, column search, profiling, sampling, relationships, and query execution. The main ambiguity is that `query` supports DESCRIBE, SUMMARIZE, and EXPLAIN, which overlaps semantically with `describe_table`, `profile_table`, and `explain_query`, though the specialized tools return richer structures.

Naming Consistency4/5

Tool names generally follow a clear snake_case verb_noun pattern like list_tables, describe_table, profile_table, and explain_query. Two deviations exist: `query` has no object and `table_relationships` is noun_noun rather than verb_noun, but the overall naming style remains coherent.

Tool Count5/5

Eight tools is well within the ideal range for a read-only DuckDB analyst server. Each tool covers a meaningful part of the analytical workflow without unnecessary redundancy or bloat.

Completeness5/5

The tool surface covers the core read-only analysis lifecycle: discovering tables, exploring schemas, profiling columns, sampling rows, searching columns, understanding relationships, and running arbitrary queries. There are no obvious dead ends for a typical data-analysis workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues