Skip to content
This repository was archived by the owner on May 7, 2026. It is now read-only.

Commit a754ded

Browse files
goldmedalclaude
andauthored
fix(mcp-server): fix DuckDB connection info and Dockerfile caching (#1461)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 926cedc commit a754ded

3 files changed

Lines changed: 12 additions & 5 deletions

File tree

ibis-server/Dockerfile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,8 @@ RUN apt-get update && apt-get -y install libpq-dev && rm -rf /var/lib/apt/lists/
4646

4747
ENV PYTHONUNBUFFERED=1 \
4848
PYTHONDONTWRITEBYTECODE=1 \
49-
# pip
50-
PIP_NO_CACHE_DIR=off \
5149
PIP_DISABLE_PIP_VERSION_CHECK=on \
5250
PIP_DEFAULT_TIMEOUT=100 \
53-
# poetry
5451
POETRY_NO_INTERACTION=1 \
5552
POETRY_VIRTUALENVS_IN_PROJECT=1 \
5653
POETRY_VIRTUALENVS_CREATE=1
@@ -61,7 +58,9 @@ WORKDIR /app
6158

6259
# Copy dependency files first so this layer is cached when only source changes
6360
COPY pyproject.toml poetry.lock ./
64-
RUN poetry install --without dev --with jupyter --no-root
61+
RUN --mount=type=cache,target=/root/.cache/pypoetry/cache \
62+
--mount=type=cache,target=/root/.cache/pypoetry/artifacts \
63+
poetry install --without dev --with jupyter --no-root
6564

6665
# Install wheel (either from host or from wheel-docker stage)
6766
COPY --from=wheel-final /wheel/ /tmp/wheels/

mcp-server/app/templates/_fields.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{% set fields = datasource_fields.get(datasource, []) %}
22
{% if fields %}
33
{% for field in fields %}
4+
{% if field.type == 'hidden' %}
5+
<input type="hidden" name="{{ field.name }}" value="{{ field.get('value', '') }}">
6+
{% else %}
47
<label>
58
{{ field.label }}
69
<input
@@ -9,10 +12,14 @@
912
placeholder="{{ field.placeholder }}"
1013
{% if field.type != 'password' %}value="{{ connection_info.get(field.name, '') }}"{% endif %}
1114
>
15+
{% if field.get('hint') %}
16+
<small style="color:var(--pico-muted-color)">{{ field.hint }}</small>
17+
{% endif %}
1218
{% if is_docker and field.name == 'host' %}
1319
<small style="color:var(--pico-muted-color)">Running in Docker? Use <code>host.docker.internal</code> instead of <code>localhost</code>.</small>
1420
{% endif %}
1521
</label>
22+
{% endif %}
1623
{% endfor %}
1724
{% elif datasource %}
1825
<label>

mcp-server/app/web.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
{"name": "password", "label": "Password", "type": "password", "placeholder": ""},
3939
],
4040
"DUCKDB": [
41-
{"name": "path", "label": "File Path", "type": "text", "placeholder": "/path/to/db.duckdb"},
41+
{"name": "url", "label": "Directory Path", "type": "text", "placeholder": "/data", "hint": "Path to a directory containing .duckdb files, not the .duckdb file itself."},
42+
{"name": "format", "label": "Format", "type": "hidden", "value": "duckdb"},
4243
],
4344
"BIGQUERY": [
4445
{"name": "project", "label": "Project ID", "type": "text", "placeholder": "my-gcp-project"},

0 commit comments

Comments
 (0)