Dremio MCP Server
The Dremio MCP Server is an open-source project that enables AI chat clients or agents to securely interact with your Dremio deployment using natural language. You can deploy it locally to explore and query data, create views, analyze system performance, and generate insights. For best results, use reasoning-capable LLMs, such as Chain of Thought models. Note that data is shared with the AI service, and responses may be affected by LLM hallucination.
The Dremio MCP Server has three different modes:
FOR_DATA_PATTERNS
– Use this mode to explore data, generate SQL queries from natural language, and create views in Dremio.FOR_SELF
– Use this mode to perform system introspection and analyze performance.FOR_PROMETHEUS
– Use this mode and connect to your Prometheus setup, if one exists, to enhance insights with Dremio-related metrics such as the total number of Reflections.
As the Dremio MCP Server is an open-source project, you can review the codebase and contribute enhancements for review. For more education on MCP Server concepts, please enroll in our Dremio MCP Server course on Dremio University.
Prerequisites
Before configuring the Dremio MCP Server, ensure you have satisfied all of the prerequisites:
- You have an MCP-supporting AI chat client on your computer. For example, Claude.
- You have access to a Dremio deployment, either Dremio on Kubernetes or Dremio on Docker.
- You have installed the
uv
Package Manager, which is required for installation and instantiation of the Dremio MCP Server. - You have identified your URI endpoint.
- For Dremio on Kubernetes deployments, use
https://<coordinator‑host>:<9047 or custom port>
. - For Dremio on Docker deployments, use
http://localhost:9047/
.
- For Dremio on Kubernetes deployments, use
- You have generated a personal access token (PAT). The Dremio MCP Server operates based on the permissions associated with the PAT.
- If you are using Dremio on Kubernetes, follow the steps in Creating a PAT.
- If you are using Dremio on Docker, refer to the directions below.
Generating Personal Access Token for Dremio on Docker with python3
If you are using Dremio on Docker and are using python3
in your terminal, follow the directions below to generate your PAT:
-
Create and navigate to a new directory.
-
Create a virtual environment:
Creating a virtual environmentpython3 -m venv venv
-
Activate the virtual environment:
Activating the virtual environmentsource ./venv/bin/activate
-
Install
Installing dremio-simple-querydremio-simple-query
, which is the package that you will import into your script to reveal the PAT:pip install dremio-simple-query
-
Create a file called
print_token.py
in the Dremio directory using your preferred editor or the command line. -
Enter the following Python code into the newly created
Python script to generate PATprint_token.py
file and replace the username and password with the credentials for your Dremio on Docker deployment:from dremio_simple_query.connect import get_token, DremioConnection
## URL to Login Endpoint
login_endpoint = "http://localhost:9047/apiv2/login"
## Payload for Login
payload = {
"userName": "username",
"password": "Password"
}
## Get token from API
token = get_token(uri = login_endpoint, payload=payload)
print(token) -
In your terminal, run the
Running the PAT generation scriptprint_token.py
script from within the directory where you saved the file:python3 print_token.py
-
Your PAT is displayed in your terminal. Copy and paste your PAT into a notepad/text file for the Configuring Dremio MCP Server section.
Generating Personal Access Token for Dremio on Docker with uv
If you are using Dremio on Docker and are using uv
in your terminal, follow the directions below to generate your PAT:
-
Create and navigate to a new directory.
-
Create a virtual environment:
Creating a virtual environment withuv
uv init -q
-
Install
Installing dremio-simple-query withdremio-simple-query
, which is the package that you will import into your script to reveal the PAT:uv
uv add dremio-simple-query
-
Create a file called
print_token.py
in the Dremio directory using your preferred editor or the command line. -
Enter the following Python code into the newly created
Python script to generate PATprint_token.py
file and replace the username and password with the credentials for your Dremio on Docker deployment:from dremio_simple_query.connect import get_token, DremioConnection
## URL to Login Endpoint
login_endpoint = "http://localhost:9047/apiv2/login"
## Payload for Login
payload = {
"userName": "username",
"password": "Password"
}
## Get token from API
token = get_token(uri = login_endpoint, payload=payload)
print(token) -
In your terminal, run the
Running the PAT generation script withprint_token.py
script from within the directory where you saved the file:uv
uv run print_token.py
-
Your PAT is displayed in your terminal. Copy and paste your PAT into a notepad/text file for the Configuring Dremio MCP Server section.
Installing Dremio MCP Server
You can install the Dremio MCP Server by cloning the associated GitHub repository:
-
Open your terminal.
-
Navigate to your preferred directory.
-
Clone the Dremio MCP Server project using the command below:
Cloning the Dremio MCP Server repositorygit clone https://github.com/dremio/dremio-mcp
-
Navigate to the new
Navigating to the project directorydremio-mcp
directory:cd dremio-mcp
-
Validate a successful install by running the command below:
Validating installationuv run dremio-mcp-server --help
Your installation was successful if you see the following output:
Expected output for successful installationUsage: dremio-mcp-server [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy │
│ it or customize the installation. │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────── ─────────────────────────────────────────────╮
│ run Run the DremioAI MCP server │
│ tools Support for testing tools directly │
│ config Configuration management │
╰──────────────────────────────────────────────────────────────────────────────────╯
Configuring Dremio MCP Server
You can configure the Dremio MCP Server by creating a dremioai
config file to provide your URI endpoint and PAT token:
- URI endpoint for the
GET
andPOST
commands submitted by the Dremio MCP Server. - PAT for authentication to Dremio. If you do not want the PAT to leak into your shell history file, we recommend you create a file with your PAT in it and pass it as an argument to the
dremioai
config provided below instead of using the plain text PAT value.
Creating Configuration Files
-
Modify the command template below and replace placeholder text with your URI endpoint and PAT token or path to file with your PAT:
Creating thedremioai
configurationuv run dremio-mcp-server config create dremioai \
--uri <dremio uri> \
--pat <dremio pat> -
Run the command in your terminal. Be sure to watch for spaces that you may have created by accident.
-
Create the Claude configuration file:
Creating the Claude configurationuv run dremio-mcp-server config create claude
-
Validate the creation of the Claude config file by running the following command:
Validating the Claude configurationuv run dremio-mcp-server config list --type claude
Your config file was created successfully if you see the following output:
Expected Claude configuration outputDefault config file: '/Users/..../Library/Application Support/Claude/claude_desktop_config.json' (exists = True)
{
'globalShortcut': '',
'mcpServers': {
'Dremio': {
'command': '/opt/homebrew/Cellar/uv/0.6.14/bin/uv',
'args': [
'run',
'--directory',
'...../dremio-mcp',
'dremio-mcp-server',
'run'
]
}
}
} -
Validate the creation of the
Validating thedremioai
config file by running the following command:dremioai
configurationuv run dremio-mcp-server config list --type dremioai
Your config file was created successfully if you see the following output:
Expecteddremioai
configuration outputDefault config file: /Users/..../.config/dremioai/config.yaml (exists = True)
dremio:
enable_experimental: false
pat: ....
uri: ....
tools:
server_mode: FOR_DATA_PATTERNS
Resources and Tools
MCP Servers define resources and tools that the LLM powering the AI chat client or agent can choose to use.
Resources are data sources that LLMs can access and provide data without performing significant computation. You will see the Dremio MCP Server frequently use the following resources:
GetUsefulSystemTableNames
: Retrieves a dictionary of system tables with descriptions.GetSchemaOfTable
: Retrieves schema information for a table.GetDescriptionOfTableOrSchema
: Retrieves descriptions and tags for a table or schema.GetTableOrViewLineage
: Retrieves lineage information for a table or view.
The LLM uses tools to instruct the MCP Server in Dremio to perform actions, including retrieving data. You will see the Dremio MCP Server frequently use the following tool:
RunSqlQuery
: Run a SQL command and return the result in JSON format.
Exploring Using Claude
You can explore your Dremio data using Claude Desktop:
-
Open Claude Desktop.
-
Start a new chat.
-
Ask the following question:
Example query to explore Dremiowhat tables or views are available in Dremio?
You will see Claude instruct the Dremio MCP Server using resources GetUsefulSystemTableNames and GetSchemaOfTable to explore Dremio. You can observe the JSON responses that the Dremio MCP Server returns. For example:
Example JSON response from Dremio MCP Server{
"entityType": "dataset",
"id": "a0972414-3955-49b8-9c5a-a1dadbf285f0",
"type": "PHYSICAL_DATASET",
"path": ["INFORMATION_SCHEMA", "TABLES"],
"createdAt": "2025-06-11T14:23:44.678Z",
"tag": "9sugkzFYFX0=",
"approximateStatisticsAllowed": false,
"fields": [
{"name": "TABLE_CATALOG", "type": {"name": "VARCHAR"}},
{"name": "TABLE_SCHEMA", "type": {"name": "VARCHAR"}},
{"name": "TABLE_NAME", "type": {"name": "VARCHAR"}},
{"name": "TABLE_TYPE", "type": {"name": "VARCHAR"}}
],
"isMetadataExpired": false,
"lastMetadataRefreshAt": "2025-06-11T14:23:44.940Z",
"tags": [],
"description": ""
}
Querying Using Claude
You can query your data using Claude by asking specific questions about the tables and views you discovered. Your existing Reflections will automatically work with the Dremio MCP server queries.
In your chat, ask Claude the following question:
Example query for sample datafor the first table or view you found, return some sample data and summarize the data perspective this table provides
You will see Claude instruct the Dremio MCP Server using the RunSQLQuery tool to query data in Dremio, and similarly, you will see JSON responses from the Dremio MCP Server back to Claude. You can continue to ask Claude questions about your data and watch Claude continue to submit commands to Dremio via the Dremio MCP Server.
Review Jobs
All MCP server operations appear as regular jobs executed via REST in the Dremio console.
To identify MCP activity:
- Navigate to the Jobs page in the Dremio console.
- Filter by the username associated with your PAT.
- Filter by QUERY TYPE = External Tools.
- Filter by the time frame during which you engaged with the MCP Server.
- Jobs submitted by the MCP Server will show SQL that start with
dremioai:
.
Dremio MCP Server Support
As the Dremio MCP Server is an open-source project, it is not covered by Dremio Support Policies. If you need assistance, please create an issue in the Dremio MCP Server open source project or ask in our Dremio Community Forums.