From a40e4e511bdc87f26bf7b8969b1785910e0508e3 Mon Sep 17 00:00:00 2001 From: yjouini Date: Wed, 26 Aug 2026 15:30:00 +0100 Subject: [PATCH 1/3] feat(setup): warm the uv runtime before first server launch The host gives up on an MCP server that is still downloading dependencies on its first launch, which is the most common cause of a plugin that never becomes available after install. Warm the runtime during setup instead. Measured on a throwaway UV_CACHE_DIR, time to answer MCP initialize: no warm-up 6.36s after `uv sync --locked --script` 2.80s after one run with stdin closed 0.65s `uv sync --script` caches the downloads but leaves the environment to be created on first launch, so the skill uses a single run-and-exit instead and says explicitly not to substitute sync. Co-Authored-By: Claude Opus 5 --- skills/dataiku-headless-setup/SKILL.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/skills/dataiku-headless-setup/SKILL.md b/skills/dataiku-headless-setup/SKILL.md index 9d9a77c8..ce159609 100644 --- a/skills/dataiku-headless-setup/SKILL.md +++ b/skills/dataiku-headless-setup/SKILL.md @@ -1,6 +1,6 @@ --- name: dataiku-headless-setup -description: Set up Dataiku Headless after plugin installation. Use when the user asks to install, set up, connect, configure, or repair Dataiku Headless; when its MCP tools are unavailable; or when uv may be missing. Check the runtime, offer the official platform installer with explicit approval, then configure and verify a Dataiku instance. +description: Set up Dataiku Headless after plugin installation. Use when the user asks to install, set up, connect, configure, or repair Dataiku Headless; when its MCP tools are unavailable; or when uv may be missing. Check the runtime, offer the official platform installer with explicit approval, warm the runtime, then configure and verify a Dataiku instance. --- # Set Up Dataiku Headless @@ -15,8 +15,13 @@ Bring a new or broken plugin installation to a verified Dataiku connection. A re - Windows PowerShell: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"` 3. Obtain explicit approval, run only the selected installer, and verify with `uv --version`. Do not substitute a third-party package manager or edit shell startup files unless the user asks. 4. If the current agent process cannot see the newly installed executable, use the installer's reported location to confirm it exists, then ask the user to fully restart or reload the agent. Stop and resume setup in the new session; the already-running MCP process cannot repair its own launch environment. -5. Once uv is suitable, check whether the Dataiku MCP tools are available. If they are not, allow an initial dependency download to finish, then reload the plugin or restart the agent once before diagnosing a Dataiku connection problem. -6. When the MCP tools are available, run `list_instances`. If no instance is configured, run `configure_instance` and have the user complete the local setup page. If multiple instances exist without an active one, ask which to use and run `switch_instance`. -7. Verify the active profile with `get_current_instance`, then make a lightweight read-only Dataiku call such as `list_projects` to validate the saved connection. Never request or repeat the API key in chat. +5. Once uv is suitable, warm the runtime before the host first launches the server. The host gives up on an MCP server that is still downloading dependencies on its first launch, which is the most common cause of a plugin that never becomes available. Run the server once so it exits immediately on end of input. The script is `../../bin/run_mcp.py` relative to this skill file; resolve it in the plugin root before running. + - macOS or Linux: `uv run --quiet --locked --script bin/run_mcp.py < /dev/null` + - Windows PowerShell: `$null | uv run --quiet --locked --script bin\run_mcp.py` + + The command prints a startup line on stderr and exits with status 0 once the runtime is cached; that is success, not a failure. Do not substitute `uv sync --locked --script`: it caches the downloads but leaves the environment to be created on first launch, so the host still sees a slow first start. +6. Check whether the Dataiku MCP tools are available. If they are not, reload the plugin or restart the agent once before diagnosing a Dataiku connection problem. +7. When the MCP tools are available, run `list_instances`. If no instance is configured, run `configure_instance` and have the user complete the local setup page. If multiple instances exist without an active one, ask which to use and run `switch_instance`. +8. Verify the active profile with `get_current_instance`, then make a lightweight read-only Dataiku call such as `list_projects` to validate the saved connection. Never request or repeat the API key in chat. Report completion with the uv version, active instance name and URL, Dataiku version when available, and whether the Dataiku read succeeded. If a restart is required, say that setup is incomplete and give the single next action. From 4477a73d71d8f0e87e02aaca1b3afa9d9bee3d6c Mon Sep 17 00:00:00 2001 From: yjouini Date: Thu, 27 Aug 2026 12:06:57 +0100 Subject: [PATCH 2/3] docs(setup): tighten runtime warm-up guidance --- skills/dataiku-headless-setup/SKILL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/skills/dataiku-headless-setup/SKILL.md b/skills/dataiku-headless-setup/SKILL.md index ce159609..92288e41 100644 --- a/skills/dataiku-headless-setup/SKILL.md +++ b/skills/dataiku-headless-setup/SKILL.md @@ -1,6 +1,6 @@ --- name: dataiku-headless-setup -description: Set up Dataiku Headless after plugin installation. Use when the user asks to install, set up, connect, configure, or repair Dataiku Headless; when its MCP tools are unavailable; or when uv may be missing. Check the runtime, offer the official platform installer with explicit approval, warm the runtime, then configure and verify a Dataiku instance. +description: Set up Dataiku Headless after plugin installation. Use when the user asks to install, set up, connect, configure, or repair Dataiku Headless; when its MCP tools are unavailable; or when uv may be missing. Check the runtime, offer the official platform installer with explicit approval, then configure and verify a Dataiku instance. --- # Set Up Dataiku Headless @@ -15,11 +15,11 @@ Bring a new or broken plugin installation to a verified Dataiku connection. A re - Windows PowerShell: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"` 3. Obtain explicit approval, run only the selected installer, and verify with `uv --version`. Do not substitute a third-party package manager or edit shell startup files unless the user asks. 4. If the current agent process cannot see the newly installed executable, use the installer's reported location to confirm it exists, then ask the user to fully restart or reload the agent. Stop and resume setup in the new session; the already-running MCP process cannot repair its own launch environment. -5. Once uv is suitable, warm the runtime before the host first launches the server. The host gives up on an MCP server that is still downloading dependencies on its first launch, which is the most common cause of a plugin that never becomes available. Run the server once so it exits immediately on end of input. The script is `../../bin/run_mcp.py` relative to this skill file; resolve it in the plugin root before running. +5. Once uv is suitable, warm the runtime from the plugin root by running the server once with stdin closed. The script is `../../bin/run_mcp.py` relative to this skill file. - macOS or Linux: `uv run --quiet --locked --script bin/run_mcp.py < /dev/null` - Windows PowerShell: `$null | uv run --quiet --locked --script bin\run_mcp.py` - The command prints a startup line on stderr and exits with status 0 once the runtime is cached; that is success, not a failure. Do not substitute `uv sync --locked --script`: it caches the downloads but leaves the environment to be created on first launch, so the host still sees a slow first start. + A startup line on stderr followed by exit status 0 is expected. Do not substitute `uv sync --locked --script`: it caches downloads but leaves environment creation for the first server launch. 6. Check whether the Dataiku MCP tools are available. If they are not, reload the plugin or restart the agent once before diagnosing a Dataiku connection problem. 7. When the MCP tools are available, run `list_instances`. If no instance is configured, run `configure_instance` and have the user complete the local setup page. If multiple instances exist without an active one, ask which to use and run `switch_instance`. 8. Verify the active profile with `get_current_instance`, then make a lightweight read-only Dataiku call such as `list_projects` to validate the saved connection. Never request or repeat the API key in chat. From 67ec438cc5c65b1427966dfe5f99ed30631fb4a2 Mon Sep 17 00:00:00 2001 From: pmasiphelps Date: Thu, 3 Sep 2026 18:17:56 -0400 Subject: [PATCH 3/3] docs(setup): clarify runtime warm-up path --- skills/dataiku-headless-setup/SKILL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/skills/dataiku-headless-setup/SKILL.md b/skills/dataiku-headless-setup/SKILL.md index 92288e41..47a804a2 100644 --- a/skills/dataiku-headless-setup/SKILL.md +++ b/skills/dataiku-headless-setup/SKILL.md @@ -15,9 +15,9 @@ Bring a new or broken plugin installation to a verified Dataiku connection. A re - Windows PowerShell: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"` 3. Obtain explicit approval, run only the selected installer, and verify with `uv --version`. Do not substitute a third-party package manager or edit shell startup files unless the user asks. 4. If the current agent process cannot see the newly installed executable, use the installer's reported location to confirm it exists, then ask the user to fully restart or reload the agent. Stop and resume setup in the new session; the already-running MCP process cannot repair its own launch environment. -5. Once uv is suitable, warm the runtime from the plugin root by running the server once with stdin closed. The script is `../../bin/run_mcp.py` relative to this skill file. - - macOS or Linux: `uv run --quiet --locked --script bin/run_mcp.py < /dev/null` - - Windows PowerShell: `$null | uv run --quiet --locked --script bin\run_mcp.py` +5. Once uv is suitable, warm the runtime by running the server once with stdin closed. Locate the absolute path of this `SKILL.md`; the plugin root is its ancestor containing both `skills/` and `bin/` (this file is at `/skills/dataiku-headless-setup/SKILL.md`). Do not assume the current working directory is the plugin root. + - macOS or Linux: `uv run --quiet --locked --script "/bin/run_mcp.py" < /dev/null` + - Windows PowerShell: `$null | uv run --quiet --locked --script "\bin\run_mcp.py"` A startup line on stderr followed by exit status 0 is expected. Do not substitute `uv sync --locked --script`: it caches downloads but leaves environment creation for the first server launch. 6. Check whether the Dataiku MCP tools are available. If they are not, reload the plugin or restart the agent once before diagnosing a Dataiku connection problem.