Skip to main content
Version: current [26.x]

Dremio MCP Server

You can deploy the Dremio MCP Server open source project on your local machine to connect any MCP-supporting AI chat client such as Claude. You can then use natural language in your AI chat client to interact with the data and create views in your Dremio deployment. The LLM that is connected to the AI chat client will need to write SQL and interpret results; therefore, we recommend using Chain of Thought reasoning models for the best experience. Working with AI chat clients backed by LLM models means you are sharing data with the service, and the output is subject to LLM hallucination.

You can explore three modes with the Dremio MCP Server. For this guide, we have focused on FOR_DATA_PATTERNS; you can explore the other modes by updating your configuration files.

  • FOR_DATA_PATTERNS – the normal mode where the MCP server will allow LLM to look at tables and data to allow pattern discovery and other use cases
  • FOR_SELF – a mode which allows the MCP server to introspect the Dremio system, including workload analysis and so on
  • FOR_PROMETHEUS – a mode that allows the MCP server to connect to your Prometheus setup, if one exists, to enhance insights with Dremio-related metrics

The Dremio MCP Server open source project has additional architecture, settings, and configuration details. As this is an open-source project, you are welcome to contribute enhancements for review. For more education on MCP Server concepts, please visit our Dremio MCP Server course on Dremio University.

Prerequisites

Before configuring the Dremio MCP Server, ensure you have satisfied all of the prerequisites:

  1. You have an MCP-supporting AI chat client on your computer. For example, Claude.
  2. You have access to a Dremio deployment, either Dremio on Kubernetes or Dremio on Docker.
  3. You have installed the uv Package Manager, which is required for installation and instantiation of the Dremio MCP Server.
  4. You have identified your URI endpoint.
  5. You have generated a personal access token (PAT).

Generating Personal Access Token

If you are using Dremio on Kubernetes, follow the directions in Creating a PAT to generate your PAT.

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:

  1. Create and navigate to a new directory.

  2. Create a virtual environment:

    Creating a virtual environment
    python3 -m venv venv
  3. Activate the virtual environment:

    Activating the virtual environment
    source ./venv/bin/activate
  4. Install dremio-simple-query, which is the package that you will import into your script to reveal the PAT:

    Installing dremio-simple-query
    pip install dremio-simple-query
  5. Create a file called print_token.py in the Dremio directory using your preferred editor or the command line.

  6. Enter the following Python code into the newly created print_token.py file and replace the username and password with the credentials for your Dremio on Docker deployment:

    Python script to generate PAT
    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)
  7. In your terminal, run the print_token.py script from within the directory where you saved the file:

    Running the PAT generation script
    python3 print_token.py
  8. 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:

  1. Create and navigate to a new directory.

  2. Create a virtual environment:

    Creating a virtual environment with uv
    uv init -q
  3. Install dremio-simple-query, which is the package that you will import into your script to reveal the PAT:

    Installing dremio-simple-query with uv
    uv add dremio-simple-query
  4. Create a file called print_token.py in the Dremio directory using your preferred editor or the command line.

  5. Enter the following Python code into the newly created print_token.py file and replace the username and password with the credentials for your Dremio on Docker deployment:

    Python script to generate PAT
    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)
  6. In your terminal, run the print_token.py script from within the directory where you saved the file:

    Running the PAT generation script with uv
    uv run print_token.py
  7. 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:

  1. Open your terminal.

  2. Navigate to your preferred directory.

  3. Clone the Dremio MCP Server project using the command below:

    Cloning the Dremio MCP Server repository
    git clone https://github.com/dremio/dremio-mcp
  4. Navigate to the new dremio-mcp directory:

    Navigating to the project directory
    cd dremio-mcp
  5. Validate a successful install by running the command below:

    Validating installation
    uv run dremio-mcp-server --help

    Your installation was successful if you see the following output:

    Expected output for successful installation
    Usage: 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 and POST commands submitted by the Dremio MCP Server
    • For Dremio on Kubernetes deployments, use https://<coordinator‑host>:<9047 or custom port>
    • For Dremio on Docker deployments, use http://localhost:9047/
  • PAT token 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

  1. Modify the command template below and replace placeholder text with your URI endpoint and PAT token or path to file with your PAT:

    Creating the dremioai configuration
    uv run dremio-mcp-server config create dremioai \
    --uri <dremio uri> \
    --pat <dremio pat>
  2. Run the command in your terminal. Be sure to watch for spaces that you may have created by accident.

  3. Create the Claude configuration file:

    Creating the Claude configuration
    uv run dremio-mcp-server config create claude
  4. Validate the creation of the Claude config file by running the following command:

    Validating the Claude configuration
    uv run dremio-mcp-server config list --type claude

    Your config file was created successfully if you see the following output:

    Expected Claude configuration output
    Default 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'
    ]
    }
    }
    }
  5. Validate the creation of the dremioai config file by running the following command:

    Validating the dremioai configuration
    uv run dremio-mcp-server config list --type dremioai

    Your config file was created successfully if you see the following output:

    Expected dremioai configuration output
    Default config file: /Users/..../.config/dremioai/config.yaml (exists = True)
    dremio:
    enable_experimental: false
    pat: ....
    uri: ....
    tools:
    server_mode: FOR_DATA_PATTERNS

Exploring Using Claude

You can explore your Dremio data using Claude Desktop:

  1. Open Claude Desktop.

  2. Start a new chat.

  3. Ask the following question:

    Example query to explore Dremio
    what 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:

In your chat, ask Claude the following question:

Example query for sample data
for 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.

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.