MCP server for Dataiku DSS project, flow, and operations APIs.
[!IMPORTANT]
Sunset — use
clssck/dataiku-sdkinsteadDataiku MCP Server is no longer actively maintained. Development has moved to the Dataiku DSS SDK — a schema-first TypeScript SDK and
dssCLI that is more actively maintained and covers far more of the DSS API:
- Broader coverage — 30+ DSS resources vs this server's narrow tool set.
- A scriptable
dssCLI with a machine-readable command contract for agents.- One-command agent skill install for Claude, Codex, Cursor, Pi, and OMP.
Migrate here → https://github.com/clssck/dataiku-sdk
MCP server for Dataiku DSS REST APIs, focused on flow analysis and reliable day-to-day operations (projects, datasets, recipes, jobs, scenarios, folders, variables, connections, and code environments).
Cursor one-click install includes placeholder environment values. Update
DATAIKU_URL,DATAIKU_API_KEY, and optionallyDATAIKU_PROJECT_KEYafter adding the server.
project.map) with recipe subtypes and connectivity.not_found, forbidden, validation, transient, unknown with retry hints.project: list, get, metadata, flow, mapdataset: list, get, schema, preview, metadata, download, create, update, deleterecipe: list, get, create, update, delete, downloadjob: list, get, log, build, buildAndWait, wait, abortscenario: list, run, status, get, create, update, deletemanaged_folder: list, get, contents, download, upload, delete_filevariable: get, setconnection: infercode_env: list, getnpm ci
npm run build
Run as a local CLI after build:
node dist/index.js
Use directly from npm (after publish):
npx -y dataiku-mcp
Recommended local workflow from repo root:
# install deps
npm ci
# static checks
npm run check
# unit tests
npm test
# build distribution
npm run build
# run MCP server locally (dev)
npm start
Optional live DSS integration tests:
# requires DATAIKU_URL, DATAIKU_API_KEY, DATAIKU_PROJECT_KEY in .env
npm run test:integration
# includes destructive actions (create/update/delete)
DATAIKU_MCP_DESTRUCTIVE_TESTS=1 npm run test:integration
src/: MCP server and tool implementations.tests/: unit + integration test suites.examples/: demos, fixtures, artifacts, and ad-hoc local scripts.bin/: package executable entrypoint.dist/: compiled output (generated).Create a local env file:
cp .env.example .env
# then edit .env
Run directly in dev:
npm start
Example scripts and sample outputs are kept under examples/ to avoid root-level clutter.
DATAIKU_URL: DSS base URLDATAIKU_API_KEY: DSS API keyDATAIKU_PROJECT_KEY (optional): default project keyDATAIKU_REQUEST_TIMEOUT_MS (optional): per-attempt request timeout in milliseconds (default: 30000)DATAIKU_RETRY_MAX_ATTEMPTS (optional): max attempts for retry-enabled requests (GET only, default: 4, cap: 10)DATAIKU_DEBUG_LATENCY (optional): set to 1/true to include per-tool timing diagnostics in structuredContent.debug.latency (off by default)Use this server command in clients (npm package):
{
"command": "npx",
"args": ["-y", "dataiku-mcp"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
Windows note: if your MCP client launches commands without a shell, use npx.cmd:
{
"command": "npx.cmd",
"args": ["-y", "dataiku-mcp"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
You can also run TypeScript directly during development:
{
"command": "npx",
"args": ["tsx", "/absolute/path/to/Dataiku_MCP/src/index.ts"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
Settings -> Developer -> Edit Config.mcpServers in claude_desktop_config.json:{
"mcpServers": {
"dataiku": {
"command": "npx",
"args": ["-y", "dataiku-mcp"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
}
}
Cursor supports both project-scoped and global MCP config:
.cursor/mcp.json~/.cursor/mcp.jsonExample:
{
"mcpServers": {
"dataiku": {
"command": "npx",
"args": ["-y", "dataiku-mcp"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
}
}
cline_mcp_settings.json:{
"mcpServers": {
"dataiku": {
"command": "npx",
"args": ["-y", "dataiku-mcp"],
"env": {
"DATAIKU_URL": "https://your-dss-instance.app.dataiku.io",
"DATAIKU_API_KEY": "your_api_key",
"DATAIKU_PROJECT_KEY": "YOUR_PROJECT_KEY"
}
}
}
}
This repo already includes a project-scoped MCP file at .mcp.json.
The checked-in .mcp.json uses node node_modules/tsx/dist/cli.mjs src/index.ts for cross-platform startup (including Windows); run npm ci first.
This repo includes a manual GitHub Actions release workflow:
.github/workflows/release.ymlActions -> Release NPM Package -> Run workflowInputs:
bump: patch | minor | majorversion: optional exact version (overrides bump)publish: whether to publish to npmRequired repository configuration:
NPM_RELEASE_ENABLED=trueNPM_PUBLISH_ACCESS=publicThe workflow will:
main.publish=true).Trusted publishing setup (npm):
https://www.npmjs.com/package/dataiku-mcp -> Settings -> Trusted Publisher.GitHub Actions.clssckDataiku_MCPrelease.ymlThis repo is configured for MCP Registry publishing:
server.json.github/workflows/publish-mcp-registry.ymlmcpName in package.jsonServer namespace:
io.github.clssck/dataiku-mcpPublish paths:
Publish to MCP Registry in GitHub Actions.publish=true (it triggers MCP Registry publish).Validation notes:
server.json.name must match package.json.mcpName.server.json.packages[].identifier + version must reference a real npm publish.After adding the server in a client, run:
project with { "action": "map", "projectKey": "YOUR_PROJECT_KEY" } (defaults to maxNodes=300, maxEdges=600; override as needed)You should receive a flow summary in text and normalized nodes, edges, stats, roots, and leaves under structuredContent.map.
When truncation limits are applied (default maxNodes=300, maxEdges=600), structuredContent.truncation reports before/after node+edge counts and whether truncation occurred.
project.map returns a compact text summary; full normalized graph is in structuredContent.map.job.wait and job.buildAndWait include structuredContent.normalizedState with one of terminalSuccess | terminalFailure | timeout | nonTerminal while preserving raw DSS state.DATAIKU_DEBUG_LATENCY=1, responses include per-tool and per-API-call latency metrics under structuredContent.debug.latency.limit/offset (and action-specific caps like maxNodes, maxEdges, maxKeys, maxPackages) to page or expand results when needed.dataset.get and job.get are summary-first by default; pass includeDefinition=true to include full DSS JSON in structuredContent.definition.Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y dataiku-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-clssck-dataiku-mcp": {
"command": "npx",
"args": [
"-y",
"dataiku-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencedataiku-mcpnpmDataiku MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.