server_mode decides which family of tools loads: FOR_DATA_PATTERNS gives the agent tables and data for exploration, FOR_SELF turns it inward onto job history and workload analysis, and FOR_PROMETHEUS adds cluster metrics. That is a useful boundary — an analyst and a platform engineer want different halves of this and should not both get everything. Writes are off until you set allow_dml, so the default posture is read-only.
Dremio's own MCP server. It connects to a Dremio Cloud project or a software cluster and exposes two different jobs: querying the semantic layer, and introspecting the cluster's own workload. Which of those an agent can see is decided by a server mode you set in the config, not by the agent.
- Run SELECT statements against the cluster and read the rows back — RunSqlQuery
- Understand a dataset before querying it — GetSchemaOfTable and GetTableOrViewLineage
- Find the right dataset by describing it, when semantic search is switched on — SemanticSearch
- Investigate failures: GetFailedJobDetails covers failed and canceled jobs over the past seven days
- Report on usage grouped by engine or project — BuildUsageReport
- Get at Dremio's own system tables — GetUsefulSystemTableNames and GetNameOfJobsRecentTable
- Pull cluster metrics from an attached Prometheus — GetRelevantMetrics, GetMetricSchema and RunPromQL
A Dremio deployment and a personal access token. Running it locally needs Python 3.11 or later and the uv package manager; dremio-mcp-server config create dremioai writes ~/.config/dremioai/config.yaml, which holds the API URI, the PAT — readable from a file with an @ prefix so it stays out of shell history — and, for Dremio Cloud, the project id. Two switches decide how much the server can do: enable_search turns on SemanticSearch, and allow_dml is what lets it create views. For a shared deployment there is a Helm chart that runs it in streaming HTTP mode with OAuth instead of a PAT.
Build from source — clone the repository and build it, then point your client at the binary
