Dremio MCP Server

Dremio MCP Server

Enables LLMs to interact with Dremio data platforms for querying, analyzing data patterns, and exploring metadata through natural language, with support for both local and production Kubernetes deployments.

Category
访问服务器

README

Dremio MCP server

Table of Contents

Introduction

This repo provides an Model Context Protocol (MCP) server for easing LLM integration with Dremio. If you are new to MCP and MCP Servers take our Dremio MCP Server course on Dremio University (DremioU). If you are familiar with these concepts already please proceed below.

%%{init:
{
    "themeVariables": {
        "fontFamily": "Inter"
    }
}
}%%

architecture-beta
    group ws(cloud)[Workstation]

    service cf(database)[Config] in ws
    service mcp(server)[Dremio MCP Server] in ws
    service claude(cloud)[Claude Desktop] in ws

    mcp:B <-- T:cf
    claude:R <--> L:mcp


    group dremio(cloud)[Dremio]
    service de(server)[Dremio Engine] in dremio

    mcp:R <--> L:de

Installation

The Dremio MCP server can be deployed in two ways:

Remote / Streaming HTTP Deployment

For production deployments in Kubernetes environments, use the Helm chart:

📦 Helm Chart Documentation

Quick Start with Helm

# Build Docker image
docker build -t dremio-mcp:0.1.0 .

# Production deployment with OAuth (Recommended)
helm install my-dremio-mcp ./helm/dremio-mcp \
  --set dremio.uri=https://dremio.example.com:9047

# Development/Testing with PAT (Not for production)
helm install my-dremio-mcp ./helm/dremio-mcp \
  --set dremio.uri=https://dremio.example.com:9047 \
  --set dremio.pat=<your-pat>

Key Features

  • OAuth + External Token Provider authentication (recommended for production)
  • Streaming HTTP mode for web-based deployments
  • Horizontal Pod Autoscaling for scalability
  • Prometheus metrics integration
  • Ingress support with TLS/SSL
  • Security best practices (non-root, read-only filesystem)

Documentation


Local Installation (Desktop/Development)

The MCP server runs locally on the machine that runs the LLM frontend (eg Claude). The installation steps are simple:

  1. Clone or download this repository.
  2. Install the uv package manager (note that the MCP server requires python 3.11 or later)
  • If you install this for the first time, restart your terminal at the end of the install
  1. Ensure that you have python installed by running the command below. It should show python 3.11 or later (If you don't have python installed, follow the instructions here OR simply run uv python install)
$ uv python find
  1. Do a sanity check by running the command and validating the output as shown below.
# cd <toplevel git dir> or add `--directory <toplevel git dir>`
# to the command below

$ uv run dremio-mcp-server --help

 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                                                │
╰──────────────────────────────────────────────────────────────────────────────────╯

Initial setup

There are two configurations necessary before the MCP server can be invoked.

  1. The server config file: This will cover the details of connecting and communicating with Dremio
  2. The LLM config file: This covers configuring the LLM desktop app (Claude for now) to make it aware of the MCP server

Quick start

The quickest way to do this setup is -

  1. Create the dremio config file as outlined below and be prepared with these values
$ uv run dremio-mcp-server config create dremioai \
    --uri <dremio uri> \
    # the endpoint portion of the URL for your environment
    --pat <dremio pat> \
    # https://docs.dremio.com/current/security/authentication/personal-access-tokens/#using-a-pat
    # required for cloud: add your project ID if setting up for dremio cloud
    # --project-id <dremio project id>

Note: the uri is api endpoint associated with your environment:

  • For Dremio cloud based in the US region (https://app.dremio.cloud) use https://api.dremio.cloud or use the short hand prod
  • For Dremio cloud based in the EMEA region (https://app.eu.dremio.cloud) use https://api.eu.dremio.cloud or use the short hand prodemea
  • For SW/K8S deployments use https://<coordinator‑host>:<9047 or custom port>

Note: For security purposes, if you don't want the PAT to leak into your shell history file, create a file with your PAT in it and give it as an argument to the dremio config.

Example:

$ uv run dremio-mcp-server config create dremioai \
    --uri <dremio uri> \
    --pat @/path/to/tokenfile \
  1. Download and install Claude Desktop (Claude)

Note: Claude has system requirements, such as node.js, please validate your system requirements with Claude official documentation.

  1. Create the Claude config file using
$ uv run dremio-mcp-server config create claude
  1. Validate the config files using
$ uv run dremio-mcp-server config list --type claude

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'
            ]
        }
    }
}

$ uv run dremio-mcp-server config list --type dremioai
Default config file: /Users/..../.config/dremioai/config.yaml (exists = True)
dremio:
  enable_search: false
  pat: ....
  uri: ....
tools:
  server_mode: FOR_DATA_PATTERNS

You are done!. You can start Claude and start using the MCP server

Demo (Local install)

Demo

The rest of the documentation below provides details of the config files


Configuration details

MCP server config file

This file is located by default at $HOME/.config/dremioai/config.yaml but can be overriden using the --cfg option at runtime for dremio-mcp-server

Format

# The dremio section contains 3 main things - the URI to connect, PAT to use
# and optionally the project_id if using with Dremio Cloud
dremio:
    uri: https://.... # the Dremio URI
    pat: "@~/ws/tokens/idl.token" # PAT can be put in a file and used here with @ prefix
    project_id: <string> Project ID required for Dremio Cloud
    enable_search: <bool> # Optional: Enable semantic search
    allow_dml: <bool> # Optional: Allow MCP Server to create views in Dremio
tools:
    server_mode: FOR_DATA_PATTERNS # the serverm

# Optionally the MCP server can also connect and use a prometheus configuration if it
# has been enabled for your Dremio cluster (typically useful for SW installations)
#prometheus:
#uri: ...
#token: ...

Modes

There are 3 modes

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

Multiple modes can be specified with separated by ,

The LLM (Claude) config file

Note: This is applicable only for local installs

To setup the Claude config file (refer to this as an example) edit the Claude desktop config file

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

And then add this section

{
  "globalShortcut": "",
  "mcpServers": {
    "Dremio": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "<toplevel git directory>"
        "dremio-mcp-server",
        "run"
      ]
    }
  }
}

This will pickup the default location of MCP server config file. It can also be passed in the args section above as "--config-file", "<custom config file>" after run

Logging

The Dremio MCP server automatically writes log files to platform-specific directories following operating system conventions. This helps with troubleshooting and monitoring the server's operation.

Log File Locations

The log files are stored in the following locations based on your operating system:

Linux

  • Directory: ~/.local/share/dremioai/logs/
  • Full path: ~/.local/share/dremioai/logs/dremioai.log
  • XDG compliance: Respects $XDG_DATA_HOME environment variable if set

macOS

  • Directory: ~/Library/Logs/dremioai/
  • Full path: ~/Library/Logs/dremioai/dremioai.log

Windows

  • Directory: %LOCALAPPDATA%\dremioai\logs\
  • Full path: %LOCALAPPDATA%\dremioai\logs\dremioai.log
  • Typical location: C:\Users\<username>\AppData\Local\dremioai\logs\dremioai.log

Controlling File Logging

By default, the MCP server logs to the logfile mentioned above. To control it further, you can use the following environment variables and command line options:

  1. Use JSON format: JSON_LOGGING=1 or pass --enable-json-logging for structured JSON logs
  2. Disable file logging: pass --no-log-to-file to disable writing logs to file

Example:

$ uv run dremio-mcp-server run --no-log-to-file --enable-json-logging

# OR 

$ uv run dremio-mcp-server run --enable-json-logging

The log directory is automatically created if it doesn't exist, so no manual setup is required.

Further Documentation

  1. Architecture: Detailed overview of the Dremio MCP server architecture, including component interactions and data flows.

  2. Tools: Comprehensive guide to available tools, including:

    • Tool categories and types
    • Usage examples
    • Development guidelines
    • Integration support
  3. Settings: Complete configuration reference covering:

    • Dremio connection settings
    • Tool configurations
    • Framework integrations
    • Environment variables
  4. Remote HTTP streaming / Helm Chart

Additional Information

This repository is intended to be open source software that encourages contributions of any kind, like adding features, reporting issues and contributing fixes. This is not a part of Dremio product support.

Testing

The project uses pytest for testing. To run the tests:

# Run all tests
$ uv run pytest tests

GitHub Actions automatically runs tests on pull requests and pushes to the main branch.

Contributing

Please see our Contributing Guide for details on:

  • Setting up your development environment
  • Making contributions
  • Code style guidelines
  • Documentation requirements
  • Running tests

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选