Skip to content

Commit b96e2d8

Browse files
[DX-110047] Helm Chart for Dremio MCP Server Kubernetes Deployment (#72)
* Helm chart for SW deployment and documentation. * Helm chart for SW deployment and documentation. * Helm chart for SW deployment and documentation. * Helm chart for SW deployment and documentation. * removing unneeded file * Helm setting for unit tests * Review comments * Fixing unit tests
1 parent f5ce4ae commit b96e2d8

19 files changed

Lines changed: 1823 additions & 18 deletions

.github/workflows/pytest.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ jobs:
2424
with:
2525
python-version: '3.13'
2626

27+
- name: Install Helm
28+
uses: azure/setup-helm@v4.3.0
29+
2730
- name: Run tests
2831
run: |
2932
uv run pytest tests

README.md

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,54 @@ architecture-beta
5151

5252
# Installation
5353

54-
The MCP server runs locally on the machine that runs the LLM frontend (eg Claude). The installation steps are simple
54+
The Dremio MCP server can be deployed in two ways:
55+
56+
## Remote / Streaming HTTP Deployment
57+
58+
For production deployments in Kubernetes environments, use the Helm chart:
59+
60+
📦 **[Helm Chart Documentation](helm/dremio-mcp/README.md)**
61+
62+
### Quick Start with Helm
63+
64+
```bash
65+
# Build Docker image
66+
docker build -t dremio-mcp:0.1.0 .
67+
68+
# Production deployment with OAuth (Recommended)
69+
helm install my-dremio-mcp ./helm/dremio-mcp \
70+
--set dremio.uri=https://dremio.example.com:9047
71+
72+
# Development/Testing with PAT (Not for production)
73+
helm install my-dremio-mcp ./helm/dremio-mcp \
74+
--set dremio.uri=https://dremio.example.com:9047 \
75+
--set dremio.pat=<your-pat>
76+
```
77+
78+
### Key Features
79+
80+
-**OAuth + External Token Provider** authentication (recommended for production)
81+
-**Streaming HTTP mode** for web-based deployments
82+
-**Horizontal Pod Autoscaling** for scalability
83+
-**Prometheus metrics** integration
84+
-**Ingress support** with TLS/SSL
85+
-**Security best practices** (non-root, read-only filesystem)
86+
87+
### Documentation
88+
89+
- **[Helm Chart README](helm/dremio-mcp/README.md)** - Complete installation and configuration guide
90+
- **[Authentication Guide](helm/dremio-mcp/AUTHENTICATION.md)** - OAuth + External Token Provider implementation
91+
- **[Example Configurations](helm/dremio-mcp/examples/)** - Production and development examples
92+
93+
---
94+
95+
## Local Installation (Desktop/Development)
96+
97+
The MCP server runs locally on the machine that runs the LLM frontend (eg Claude). The installation steps are simple:
5598

5699
1. Clone or download this repository.
57100
2. Install the [uv](https://docs.astral.sh/uv/getting-started/installation/) package manager (note that the MCP server requires python 3.11 or later)
58-
- If you install this for the first time, restart your terminal at the end of the install
101+
- If you install this for the first time, restart your terminal at the end of the install
59102
3. 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](https://docs.astral.sh/uv/guides/install-python/) OR simply run `uv python install`)
60103
```shell
61104
$ uv python find
@@ -83,14 +126,15 @@ $ uv run dremio-mcp-server --help
83126
╰──────────────────────────────────────────────────────────────────────────────────╯
84127
```
85128

86-
# Initial setup
129+
130+
### Initial setup
87131

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

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

93-
## Quick start
137+
#### Quick start
94138

95139
The quickest way to do this setup is -
96140

@@ -100,17 +144,13 @@ The quickest way to do this setup is -
100144
$ uv run dremio-mcp-server config create dremioai \
101145
--uri <dremio uri> \
102146
# the endpoint portion of the URL for your environment
103-
--pat <dremio pat> \
147+
--pat <dremio pat>
104148
# https://docs.dremio.com/current/security/authentication/personal-access-tokens/#using-a-pat
105-
# required for cloud: add your project ID if setting up for dremio cloud
106-
# --project-id <dremio project id>
107149
```
108150

109-
Note: the uri is api endpoint associated with your environment:
151+
Note: the uri is the API endpoint for your Dremio Software instance:
110152

111-
- For Dremio cloud based in the US region (https://app.dremio.cloud) use `https://api.dremio.cloud` or use the short hand `prod`
112-
- 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`
113-
- For SW/K8S deployments use https://<coordinator‑host>:<9047 or custom port>
153+
- For Dremio Software deployments use `https://<coordinator-host>:<9047 or custom port>`
114154

115155
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.
116156

@@ -166,11 +206,13 @@ tools:
166206

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

169-
### Demo
209+
### Demo (Local install)
170210
![Demo](assets/demo.gif)
171211

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

214+
---
215+
174216
## Configuration details
175217

176218
### MCP server config file
@@ -180,13 +222,10 @@ This file is located by default at `$HOME/.config/dremioai/config.yaml` but can
180222
#### Format
181223

182224
```yaml
183-
# The dremio section contains 3 main things - the URI to connect, PAT to use
184-
# and optionally the project_id if using with Dremio Cloud
225+
# The dremio section contains the URI to connect and PAT to use
185226
dremio:
186-
uri: https://.... # the Dremio URI
227+
uri: https://.... # the Dremio Software URI
187228
pat: "@~/ws/tokens/idl.token" # PAT can be put in a file and used here with @ prefix
188-
project_id: <string> Project ID required for Dremio Cloud
189-
enable_search: <bool> # Optional: Enable semantic search
190229
allow_dml: <bool> # Optional: Allow MCP Server to create views in Dremio
191230
tools:
192231
server_mode: FOR_DATA_PATTERNS # the serverm
@@ -210,6 +249,8 @@ Multiple modes can be specified with separated by `,`
210249

211250
### The LLM (Claude) config file
212251

252+
**Note**: This is applicable only for local installs
253+
213254
To setup the Claude config file (refer to [this as an example](https://modelcontextprotocol.io/quickstart/user#2-add-the-filesystem-mcp-server)) edit the Claude desktop config file
214255

215256
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
@@ -295,7 +336,7 @@ The log directory is automatically created if it doesn't exist, so no manual set
295336
- Framework integrations
296337
- Environment variables
297338

298-
4. Other frameworks: (Experimental) Integrate the same MCP tools with other agentic frameworks like LangChain or BeeAI without modifying the code base.
339+
4. [Remote HTTP streaming / Helm Chart](helm/dremio-mcp/QUICKSTART.md)
299340

300341
# Additional Information
301342

0 commit comments

Comments
 (0)