Dataiku Headless: Agentic Analytics, Data Science, and AI Development powered by Dataiku Cobuild
SUPERVISE · DELEGATE · VERIFY
Dataiku Headless is an MCP server with tools for working in Dataiku, plus skills that teach AI assistants how to use them. Connect it to a Dataiku instance, and your AI assistant can build data pipelines, models, dashboards, agents, and more.
Install the plugin from the Claude Code or Codex plugin marketplace, or install it as an agent plugin from this GitHub repository for Cursor, Snowflake CoCo, AWS Kiro, OpenCode, and more.
Dataiku Headless uses uv 0.12.0 or later to provide its isolated Python runtime and pinned dependencies. You do not need to install it before installing the plugin: the setup skill checks for uv and, with your approval, can run the official installer for your platform.
Install the plugin, then select or ask Set up Dataiku Headless. In Claude Code, you can explicitly run /dataiku-headless:dataiku-headless-setup. The setup skill checks the local runtime, helps install uv when needed, and securely saves your Dataiku URL and personal API key on your local machine.
Here's how to do it in the Codex app; Claude has a similar plugin-install flow.
Once connected, you can build in Dataiku.
Here, we use the Claude Code CLI to build a visual pipeline to clean up hospital admissions data, train a model to predict readmission within 30 days, then make predictions for new patients:
dataiku-headless also works with Snowflake CoCo (Cortex Code), Cursor, OpenCode, and custom MCP-compatible agents. Each plugin starts the same local MCP server; after installation, use the same setup flow above.
First launch: If Dataiku Headless tools are unavailable, first check that
uvis installed and on yourPATH:uv --versionIf the command is not found (or reports a version below 0.12.0), install uv using the official installation guide, then fully restart your agent app. If uv is available, the first launch may still take a little longer; wait a minute and restart the app once. An agent with local-command access can perform this check and, with your approval, run the appropriate installer for your platform.
codex plugin marketplace add https://github.com/dataiku/dataiku-headless.git
codex plugin add dataiku-headless@dataikuclaude plugin marketplace add https://github.com/dataiku/dataiku-headless.git
claude plugin install dataiku-headless@dataikugrok plugin install dataiku/dataiku-headless --trustcursor agent plugin marketplace add github.com/dataiku/dataiku-headless
# Tip: use /plugins in interactive mode to install `dataiku-headless` plugin from this marketplace.cortex plugin install dataiku/dataiku-headlessAdd the following to your .mcp.json from a checkout of this repository:
{
"mcp": {
"dataiku": {
"type": "local",
"command": ["uv", "run", "--quiet", "--locked", "--script", "./runtime/run_mcp.py", "--transport", "stdio"],
"enabled": true
}
}
}The skills/*/SKILL.md files follow the universal skill format:
npx skills add dataiku/dataiku-headlessDataiku Headless is an MCP server and agent skill library for operating Dataiku from an AI agent. Connect it to a Dataiku instance to inspect projects, gather context, and use Cobuild—Dataiku's agent for building data pipelines, analytics, machine learning models, multi-agent workflows, applications, and automation pipelines.
Cobuild runs as a retained conversation through MCP tools. This repository intentionally keeps its own tool surface small: inspection tools, three deterministic executions of existing assets (build_datasets, run_recipe, and run_scenario), narrow configuration actions such as selecting which container an existing object runs in, and a few bootstrap actions that Cobuild cannot perform, such as creating a project or uploading a local file.
For a quick reference to what Headless can inspect, what Cobuild builds, and the limited direct actions Headless supports, see the Headless capability matrix.
dataiku_mcp is a FastMCP server that exposes Dataiku operations as typed, async MCP tools. Tools are organized by domain: projects, project folders, flow, connections, datasets, data quality, managed folders, recipes, machine learning, insights, dashboards, scenarios, WebApps, wikis, agents, LLMs and knowledge banks, instance plugins, job management, administrative tasks, and Cobuild conversations.
- Async execution for all Dataiku API calls
- Progress notifications for long-running operations
- Server-side authentication for the local stdio plugin (API key, Code Studio API ticket, or
.dataiku/stdio-config.json) - Modular architecture by functional domain
- Cobuild conversation tools (
start_cobuild_conversation,send_cobuild_message,answer_cobuild_confirmation,list_cobuild_conversations) as the default path for project-level asset creation
In local stdio mode, tools do not accept API keys as arguments — authentication is resolved server-side from environment variables or a config file. Code Studios provide their hosting instance URL and API ticket automatically.
skills exposes two prompt-based entrypoints: dataiku-headless-setup for first-time installation, runtime recovery, and instance configuration; and dataiku-headless for Dataiku work. The main entry skill decides which reference guide to read next, carries the shared operating rules, routes in-project asset changes through Cobuild by default, and documents the narrow direct-write exceptions for bootstrap, cross-project, instance-level, or administrative operations that Cobuild does not handle.
The reference library covers the main Dataiku object areas and workflows, including projects, project folders, datasets, recipes, jobs, connections, code environments, plugins, managed folders, project libraries, data quality, machine learning, agents, agent reviews, scenarios, semantic models, webapps, wikis, dashboards, insights, data collections, cross-project sharing, and migrations.
Outside a Code Studio, configure a connection using a personal API key:
- Ask the agent to Set up Dataiku Headless (or run
/dataiku-headless:dataiku-headless-setupin Claude Code). - Approve the MCP URL prompt.
- Enter an instance name, choose its type, and supply its Dataiku URL and personal API key.
- Repeat to add more instances; use
list_instancesandswitch_instancewhile working.
Inside a Code Studio, the hosting DSS instance is discovered automatically using its injected API ticket. No personal API key or setup popup is needed.
API keys and tickets never appear in MCP tool arguments or instance responses.
Saved profiles. The setup page stores named instances and a default_instance
in a JSON file with user-only (0600) permissions. Credentials are stored in
plaintext. Use --settings-path PATH to select the file; otherwise, the server uses:
- An existing
./.dataiku/stdio-config.jsonin the server's working directory. ~/.dataiku/stdio-config.jsonotherwise.
Add multiple instances through the setup page or edit the file using
.dataiku/stdio-config.json.example.
Each profile requires instance_type: design, automation, deployer, govern, or
agent-management. Existing stdio profiles missing this field are automatically
assigned design and rewritten on disk before loading. This temporary migration
is scheduled for deprecation by 0.9.0; existing values are preserved and validated.
The type metadata does not change client selection or tool availability.
Selecting Govern records its type; Govern-specific API tools are not yet implemented.
Environment override. To select an explicit target, including inside a Code
Studio, set these three variables in your environment or copy
.env.example to the repository-root .env:
DKU_DSS_URL=https://your-instance.dataiku.com
DKU_INSTANCE_TYPE=design
DKU_API_KEY=your-api-keyDKU_INSTANCE_NAME optionally names this target (default dataiku-from-env).
DKU_NO_CHECK_CERTIFICATE=true optionally disables its TLS verification.
The launcher loads .env without replacing existing environment values, even
empty ones. Direct package imports do not load .env.
Startup selection. The active instance is the first available source below:
- The explicit environment target above.
dataiku-from-code-studio, discovered whenDKU_IS_CODE_STUDIOis set, usingDKU_BACKEND_PROTOCOL,DKU_BACKEND_HOST,DKU_BACKEND_PORT,DKU_API_TICKET, and the lowercase node type inDKU_NODE_TYPE.- The saved profiles'
default_instance.
All sources remain available through list_instances and switch_instance;
use get_current_instance to verify the active connection. Environment instances
take precedence over profiles with the same name. The explicit target must have
a different name from dataiku-from-code-studio when both exist. Missing required
credentials or environment types, unsupported types, and duplicate environment names fail startup.
Settings load at startup. Changes through the setup page or instance tools refresh the saved profiles immediately; manual file edits and environment changes require a restart.
Every install path above has your harness launch the server itself. Run it standalone only if you're testing it directly — from a clone of this repo:
uv run --quiet --locked --script ./runtime/run_mcp.py --transport stdioDataiku Headless supports two connection modes:
| Mode | MCP server | Authentication | Installation |
|---|---|---|---|
| Local stdio | Runs on the user's workstation | Personal Dataiku API key | Install the local plugin |
| Customer-managed HTTP | Runs as an organization-managed service | Enterprise OAuth and delegated Dataiku identity | Install the customer-specific remote plugin distributed by the administrator |
Do not enable both Dataiku MCP definitions in the same client. They expose the same tools with different credential ownership and can cause the agent to target the wrong server.
The Dataiku Headless marketplace plugin uses stdio transport. For customer-managed HTTP installation, endpoint distribution, OAuth login, and end-user verification, see Streamable HTTP deployment.
.
├── dataiku_mcp/
│ ├── auth.py # Dataiku client creation and HTTP token exchange
│ ├── executors.py # Shared blocking and Cobuild executors
│ ├── tools/
│ │ ├── agents.py # Agent/agent-version/agent-tool inspection tools
│ │ ├── agent_reviews.py # Agent review/test/run inspection tools
│ │ ├── cobuild.py # Cobuild conversation tools (start/send/confirm/list)
│ │ ├── insights.py # Insight inspection tools, especially chart insights
│ │ ├── connections.py # Dataiku connection discovery/test tools
│ │ ├── container_exec.py # Container execution placement write, by object type
│ │ ├── cross_project_sharing.py # Cross-project sharing inspection tools
│ │ ├── data_collections.py # Data Collection listing/inspection tools
│ │ ├── data_quality.py # Dataset Data Quality rule inspection tools
│ │ ├── dashboards.py # Dashboard inspection tools
│ │ ├── datasets.py # Dataset inspection tools + local-file upload writes
│ │ ├── evaluation_stores.py # Evaluation Store inspection tools
│ │ ├── flow.py # Flow inspection tools
│ │ ├── instances.py # Multi-instance switching tools
│ │ ├── jobs.py # Async job status/log/wait/abort tools
│ │ ├── llms_and_knowledge_banks.py # LLM, Knowledge Bank, and RAG inspection tools
│ │ ├── managed_folders.py # Managed folder inspection tools + local-file upload write
│ │ ├── plugins.py # Instance plugin listing, updates, and deletion
│ │ ├── project_folders.py # Project folder hierarchy inspection and organization tools
│ │ ├── projects.py # Project inspection, creation, variables, and settings
│ │ ├── scenarios.py # Scenario/run-history/messaging-channel inspection tools
│ │ ├── semantic_models.py # Semantic model inspection tools
│ │ ├── groups.py # Instance group administration tools
│ │ ├── licensing.py # Instance licensing status inspection tool
│ │ ├── users.py # Instance user administration tools
│ │ ├── webapps.py # WebApp/backend-state inspection tools
│ │ ├── wikis.py # Wiki article inspection tools
│ │ ├── project_libraries.py # Project library inspection/search + local-file write
│ │ ├── recipes.py # Recipe inspection tools
│ │ ├── machine_learning/ # ML analysis/saved-model inspection tools
│ │ └── utils/ # Tool validation and response-shaping utilities
│ ├── config/ # Models, stdio/HTTP configuration, and request routing
│ ├── server.py # FastMCP construction, middleware, and transport startup
│ ├── setup_server.py # Temporary loopback page used by URL elicitation
│ └── __init__.py # Public API and tool-registration composition root
├── skills/
│ └── dataiku-headless/
│ ├── SKILL.md # Single `dataiku-headless` entry skill: route, inspect, delegate, verify
│ └── references/
│ ├── administration.md # Route instance-level user, group, and licensing tasks
│ ├── cobuild.md # Default in-project write path via Cobuild
│ ├── project-folders.md # Project folder hierarchy inspection and organization
│ ├── projects.md # Project discovery, metadata, variables, and flow orientation
│ ├── datasets.md # Dataset inspection/profiling + Uploaded Files direct-write exception
│ ├── recipes.md # Recipe inspection and recipe-family routing
│ ├── container-execution.md # Container execution placement for one existing object
│ ├── jobs.md # Dataiku job tracking, waiting, aborting, and log inspection
│ ├── connections.md # Connection discovery and capability inspection
│ ├── machine-learning.md # ML analysis, trained-model, and saved-model inspection
│ ├── agents.md # Agent and agent-tool inspection
│ ├── ... # Additional references for dashboards, insights, scenarios, wikis, migrations, and more
│ └── recipes/ # Nested recipe-family and shared recipe references
├── runtime/
│ ├── launcher.sh # Inactive legacy fallback retained for possible future use
│ ├── run_mcp.py # Server entry point: PEP 723 script pinning the runtime deps inline
│ └── run_mcp.py.lock # Committed, full dependency resolution for the entry point
├── .claude-plugin/
│ ├── plugin.json # Claude Code plugin manifest (skills + stdio MCP)
│ └── marketplace.json # Marketplace catalog (single-plugin, source: "./")
├── .cursor-plugin/
│ └── plugin.json # Cursor-native plugin manifest
├── .codex-plugin/
│ └── plugin.json # Codex plugin manifest
├── .mcp.json # Bundled Codex/ChatGPT MCP config
├── CODING_STANDARDS_AND_STRUCTURE.md # Contributor guide
└── pyproject.toml
Start with CONTRIBUTING.md to report an issue or open a pull request. CODING_STANDARDS_AND_STRUCTURE.md has local setup, coding standards, guardrails, and the PR checklist; RELEASE.md covers collecting changes on release/X.Y.Z, finalizing the batch, and publishing its reviewed merge into main.
Licensed under the Apache License 2.0. Copyright 2026 Dataiku.

