The documentation tools are why the SQL comes out right: a timestamp format or a primary-key optimisation gets looked up rather than guessed. The write block is doubled — CrateDB's own advice is a user created with GRANT DQL, and the server refuses non-SELECT statements on top of that unless you deliberately turn the guard off.
CrateDB's own server for its clusters. Six tools split three ways: SQL against the cluster, lookups against the CrateDB documentation, and one cluster-health read.
- A SQL statement run against the cluster — query_sql
- A table's columns and its metadata — get_table_columns, get_table_metadata
- The CrateDB documentation index, and one topic fetched from it — get_cratedb_documentation_index, fetch_cratedb_docs
- Cluster health derived from CrateDB's system tables — get_cluster_health
- Stdio, sse or http transports, chosen with --transport or CRATEDB_MCP_TRANSPORT
- The system prompt extended with your own conventions, or replaced outright, from a file, a URL or standard input
CRATEDB_CLUSTER_URL carrying the credentials, for example http://crate:crate@localhost:4200/. Install cratedb-mcp with pipx or uv, or run the ghcr.io/crate/cratedb-mcp image. Non-SELECT statements are refused at the application level unless CRATEDB_MCP_PERMIT_ALL_STATEMENTS is set. CRATEDB_MCP_HTTP_TIMEOUT defaults to 30.0 and CRATEDB_MCP_DOCS_CACHE_TTL to 3600.
One command plus a key — uv tool install --upgrade cratedb-mcp, then supply credentials
