Skip to main content
Glama
clssck

Dataiku MCP Server

by clssck
IMPORTANT

Sunset — use clssck/dataiku-sdk instead

Dataiku MCP Server is no longer actively maintained. Development has moved to the Dataiku DSS SDK — a schema-first TypeScript SDK and dss CLI 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 dss CLI 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


Dataiku MCP Server

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).

Install MCP Server

Cursor one-click install includes placeholder environment values. Update DATAIKU_URL, DATAIKU_API_KEY, and optionally DATAIKU_PROJECT_KEY after adding the server.

Related MCP server: mcp-fabric-api

What You Get

  • Deterministic normalized flow maps (project.map) with recipe subtypes and connectivity.

  • Summary-first outputs with explicit raw/detail toggles where needed.

  • Broad test coverage (unit + live integration + optional destructive integration suite).

  • Strong error taxonomy in responses: not_found, forbidden, validation, transient, unknown with retry hints.

Tool Coverage

  • project: list, get, metadata, flow, map

  • dataset: list, get, schema, preview, metadata, download, create, update, delete

  • recipe: list, get, create, update, delete, download

  • job: list, get, log, build, buildAndWait, wait, abort

  • scenario: list, run, status, get, create, update, delete

  • managed_folder: list, get, contents, download, upload, delete_file

  • variable: get, set

  • connection: infer

  • code_env: list, get

Prerequisites

  • Node.js 20+

  • npm

  • Dataiku DSS URL + API key

Quick Start

npm 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

Local Build And Testing

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

Repository Layout

  • 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.

Environment Variables

  • DATAIKU_URL: DSS base URL

  • DATAIKU_API_KEY: DSS API key

  • DATAIKU_PROJECT_KEY (optional): default project key

  • DATAIKU_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)

MCP Client Setup Guide

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"
  }
}

Claude Desktop

  1. Open Claude Desktop -> Settings -> Developer -> Edit Config.

  2. Add this under 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

Cursor supports both project-scoped and global MCP config:

  • Project: .cursor/mcp.json

  • Global: ~/.cursor/mcp.json

Example:

{
  "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 (VS Code extension)

  1. Open Cline -> MCP Servers -> Configure MCP Servers.

  2. Add this server block in 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"
      }
    }
  }
}

Codex / project-level MCP config

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.

NPM Release Workflow

This repo includes a manual GitHub Actions release workflow:

  • Workflow file: .github/workflows/release.yml

  • Trigger: Actions -> Release NPM Package -> Run workflow

Inputs:

  • bump: patch | minor | major

  • version: optional exact version (overrides bump)

  • publish: whether to publish to npm

Required repository configuration:

  • GitHub variable: NPM_RELEASE_ENABLED=true

  • Optional variable: NPM_PUBLISH_ACCESS=public

  • Trusted publisher configured on npmjs.com for this package/repo/workflow

The workflow will:

  1. Install dependencies, run checks/tests, and build.

  2. Bump package version and create git tag.

  3. Push commit + tag to main.

  4. Publish to npm with GitHub OIDC trusted publishing (if publish=true).

  5. Create a GitHub Release with generated notes.

Trusted publishing setup (npm):

  1. Open https://www.npmjs.com/package/dataiku-mcp -> Settings -> Trusted Publisher.

  2. Choose GitHub Actions.

  3. Set:

    • Organization or user: clssck

    • Repository: Dataiku_MCP

    • Workflow filename: release.yml

  4. Save.

Official MCP Registry

This repo is configured for MCP Registry publishing:

  • Metadata file: server.json

  • Workflow: .github/workflows/publish-mcp-registry.yml

  • Required package field: mcpName in package.json

Server namespace:

  • io.github.clssck/dataiku-mcp

Publish paths:

  1. Manual: run Publish to MCP Registry in GitHub Actions.

  2. Automatic: run the npm release workflow with 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.

Notes

  • project.map returns a compact text summary; full normalized graph is in structuredContent.map.

  • Arrays in normalized map output are deterministically sorted to reduce diff churn.

  • job.wait and job.buildAndWait include structuredContent.normalizedState with one of terminalSuccess | terminalFailure | timeout | nonTerminal while preserving raw DSS state.

  • With DATAIKU_DEBUG_LATENCY=1, responses include per-tool and per-API-call latency metrics under structuredContent.debug.latency.

  • List-style responses are token-bounded by default; use 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.

Sources

Available Tools

9 tools
code_envB

Code env ops: list/get. get returns package summaries; set full=true for full package lists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses that get returns package summaries and that full=true changes the output to full package lists, but it does not describe list's behavior, output format, or whether operations are read-only. The 'set full=true' instruction implies a parameter not present in the schema, adding subtle confusion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that convey the core operations and a key detail about get. It is front-loaded with the operation list, and no words are wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks both an output schema and annotations, so the description should fully explain return behavior and operation semantics. It covers get's return behavior but omits list entirely, and the empty input schema means the full=true instruction lacks a matching parameter definition, leaving the tool under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so the description is not required to elaborate on parameters. The mention of 'set full=true' is extra context, but given the 0-parameter baseline, the description adds value by explaining a potential toggle even though it isn't officially parameterized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as handling code environment operations (list and get), which distinguishes it from sibling resource tools. However, it lacks a clear verb+resource structure (e.g., 'List code environments') and reads more like a category label than a specific action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers a brief usage tip for get (full=true for full package lists) but does not explain when to use list versus get or when to prefer code_env over sibling tools. There is no explicit guidance on alternatives, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connectionA

Connection discovery (action: infer). Default mode=fast uses DSS connection names; mode=rich scans project datasets for inferred type/schema/managed details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses behavioral differences between modes (e.g., rich mode scans project datasets for inferred details) but omits return format, permissions, or any side effects. It is minimally transparent but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the core purpose and then efficiently explains the modes. Every part contributes useful information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should explain what the agent will receive or how to interpret results. It only mentions what is scanned but not the return value structure, error cases, or further context needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so baseline is 4. The description adds meaning by defining two modes ('mode=fast', 'mode=rich') and their behaviors, going beyond the empty schema. However, it does not clarify how 'mode' is passed given the schema has no properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as 'Connection discovery' with the action 'infer', and further distinguishes two modes (fast and rich). It clearly separates from sibling tools that deal with other DSS entities (project, dataset, etc.), though the exact meaning of 'connection' could be clearer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through mode selection ('default mode=fast', 'mode=rich') but does not explicitly state when to use this tool versus alternatives. No exclusions or comparisons to sibling tools are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

datasetB

Dataset ops: list/get/schema/preview/metadata/download/create/update/delete. get is summary-first; set includeDefinition=true to include full JSON definition.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses one behavioral trait: 'get is summary-first; set includeDefinition=true to include full JSON definition.' However, it provides no information about side effects of create/update/delete, permissions, or other operational nuances. With no annotations provided, the description carries the full burden and falls short, especially since the schema lists 0 parameters while the description references a non-existent includeDefinition parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences that front-load the operation list and then provide a key detail. Every phrase serves a purpose, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool supports 8+ operations, yet the description only lists them and gives a note about get. With no output schema, no annotations, and no formal parameter definitions, the description is incomplete for an agent to understand return values, error cases, preconditions, or operation-specific nuances. The lone behavioral hint is not enough for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so the baseline is 4. The description adds meaningful parameter-related context by mentioning 'includeDefinition' for the get operation, which is not present in the schema. However, it does not describe parameters for other operations, limiting the added value slightly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool handles datasets and enumerates operations (list/get/schema/preview/metadata/download/create/update/delete), distinguishing it from sibling tools like project, recipe, or job. The resource is specific, but the purpose is broad rather than a single verb, so it stops short of the highest clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit usage guidance is provided. There are no instructions on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites. Usage is only implied by the resource name 'dataset', which is insufficient for a multi-operation tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jobB

Job ops: list/get/log/build/buildAndWait/wait/abort. get is summary-first; set includeDefinition=true to include full JSON definition.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It reveals that 'get' is summary-first and can include the full JSON definition with includeDefinition=true, which is useful. However, it does not disclose the behavior or side effects of other operations such as build, buildAndWait, wait, or abort (e.g., whether abort is destructive, whether build triggers execution, what log returns).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences. The first sentence front-loads the full list of operations, and the second adds a key behavior note. There is no wasted text, and the structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 distinct operations), empty schema, no annotations, and no output schema, the description is far too sparse. It does not explain what each operation does, what parameters they accept, or what the agent should expect in return. Only the 'get' nuance is covered, leaving most of the tool's behavior undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so the description must add all parameter meaning. It does add valuable context by mentioning the 'includeDefinition' flag for the get operation, which is not present in the schema. This goes beyond the schema's minimal information, though it only covers one of potentially many hidden parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (jobs) and enumerates the specific operations: list, get, log, build, buildAndWait, wait, abort. This is a specific verb+resource bundle that distinguishes the tool from sibling tools for other resource types (project, dataset, recipe, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It only gives a behavioral note for 'get' (summary-first, includeDefinition parameter), but does not specify when to use 'job' vs sibling tools or when to prefer one operation over another. Usage is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managed_folderC

Managed folder ops: list/get/contents/download/upload/delete_file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It mentions delete_file and download/upload, implying state changes and data transfer, but does not disclose side effects, permission requirements, or reversibility. It is merely a list of actions with no behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single line to list operations. It is not verbose and every element adds some information, but it lacks structure and reads more like a summary than a clear specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, an output schema, and any parameter details, the description is far from complete. It does not explain return values, error handling, or the context in which each operation is valid. A multi-operation tool like this needs more explanation to be usable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is trivially 100%. However, the description does not explain how the tool determines which operation to perform or which folder to act on. This is a significant gap, as the agent cannot infer invocation semantics from the text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists specific operations (list/get/contents/download/upload/delete_file) that clearly indicate this tool manages managed folders. It distinguishes from sibling tools (project, dataset, etc.) by focusing on managed_folder operations. However, it uses the vague term 'ops' and doesn't clarify whether it's a single combined action or separate modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or when to avoid it. The description simply lists operations without any contextual advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projectA

Project ops: list/get/metadata/flow/map. map returns normalized connectivity in structuredContent.map; includeRaw adds original graph payload.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that map returns normalized connectivity in structuredContent.map and that includeRaw adds the original graph payload, offering useful context. However, it says nothing about side effects, permissions, or behavior of the other operations (list/get/metadata/flow).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with the core purpose ('Project ops') followed by a focused detail on map. Every phrase contributes distinct information, and it is appropriately compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description needs to compensate, but it only elaborates on the map operation. List, get, metadata, and flow are left completely unspecified, with no information about return formats, error behavior, or prerequisites. For a multi-operation tool, this is significantly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so baseline is 4. The description adds meaning by mentioning the includeRaw option for map, which is not present in the schema. This goes beyond the schema and provides parameter semantics that would otherwise be entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('Project ops') and enumerates specific operations (list/get/metadata/flow/map), distinguishing it from sibling tools focused on other resources. However, verbs like 'flow' and 'map' are not fully elaborated, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the tool for project operations but provides no explicit guidance on when to use it versus alternatives, nor does it clarify when each sub-operation (list vs. get vs. map) is appropriate. No exclusions or alternative references are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recipeC

Recipe ops: list/get/create/update/delete/download. get is summary-first; set includePayload=true to include payload snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses one behavioral detail: 'get is summary-first; set includePayload=true to include payload snippets.' This is helpful. However, it does not explain create/update/delete side effects, permissions, or output details. Moreover, it references an 'includePayload' parameter that does not appear in the input schema, which is misleading. Given no annotations and only partial behavioral disclosure, a 2 is warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief, two sentences, and front-loads the operation list. It avoids extraneous content. However, it is so compact that some details are missing, and the mention of 'includePayload' could be better structured. It is concise and efficient, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and an empty input schema, the description must compensate by providing ample context. It lists operations and one get behavior, but it does not explain what a recipe is, what the operations return, how download works, or any security/error considerations. The reference to a non-existent parameter further reduces completeness. This is inadequate for a tool with this little structured metadata, so a 2 is given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline would be 4, but the description introduces 'includePayload' as a parameter without it being present in the schema. This creates confusion about the actual parameters. The description adds value by explaining a behavior but contradicts the schema, lowering the score to 2.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Recipe ops: list/get/create/update/delete/download', clearly identifying the resource (recipes) and the supported verbs. This distinguishes it from sibling tools like project or dataset, though it doesn't elaborate on what a recipe is. A score of 4 is appropriate because the core purpose is clear but not maximally specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description simply lists operations without providing context about use cases, prerequisites, or exclusions. It implies that this is the go-to tool for recipe management, but no explicit guidance is given, earning a 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scenarioA

Scenario ops: list/run/status/get/create/update/delete. get is summary-first; use includeScript/includeDefinition for details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. It only reveals that 'get' is summary-first and can be expanded with parameters, but gives no information about side effects, safety, return formats, or what 'run' or 'delete' actually do. The destructive nature of delete is only implied by the verb itself, not disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the operation list and includes one practical usage tip. Every word earns its place, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool appears to support multiple operations, but the input schema has zero properties, and the description does not explain how an agent specifies which operation to execute. The includeScript/includeDefinition tip is helpful for 'get', but the absence of any invocation contract for create/update/delete/run and lack of output schema leave the description incomplete for real use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so the baseline is 4 under the rubric. The description adds meaning by naming includeScript/includeDefinition and explaining they provide details for 'get', which is valuable beyond the empty schema. However, it does not explain how the operation (list/run/etc.) is selected, which is a notable gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb phrase 'Scenario ops' and enumerates the exact operations (list/run/status/get/create/update/delete), making it clear this is the tool for scenario management. It also distinguishes this tool from sibling tools like project, dataset, and recipe by explicitly naming the scenario resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this is the tool for scenario operations and provides an actionable tip for using 'get' with includeScript/includeDefinition to retrieve details. However, it does not explicitly state when to prefer this tool over sibling tools or provide when-not-to-use guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variableB

Project variable ops: get/set. set merges provided standard/local keys with existing values.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses a key behavioral trait: set merges provided standard/local keys with existing values, implying non-destructive updates. However, it omits what get returns, whether there are side effects, and the difference between standard and local keys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the core purpose and adds one essential behavioral nuance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must explain more. It fails to describe what get returns, how to specify which project/target variables, or what 'standard/local' keys mean. An agent would struggle to invoke this correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero properties, so the description is the only source of parameter meaning. It mentions 'standard/local keys' as conceptual categories, which adds some semantic grounding. The baseline for 0 params is 4, and the description partially compensates by indicating the key types involved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as performing get/set operations on project variables, which distinguishes it from sibling tools that handle other resources like datasets or recipes. The phrase 'get/set' provides specific verb+resource clarity, though 'ops' is slightly vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are any prerequisites or exclusions mentioned. The only hint is the set merge behavior, which is operational rather than context-dependent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.1.1
    • First observedcode_env
    • First observedconnection
    • First observeddataset
    • First observedjob
    • First observedmanaged_folder
    • First observedproject
    • First observedrecipe
    • First observedscenario
    • First observedvariable

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation5/5

Each tool maps to a distinct Dataiku resource type (project, dataset, recipe, job, scenario, variable, managed_folder, connection, code_env), with no overlapping responsibilities. The descriptions clearly differentiate the scope of each tool.

Naming Consistency5/5

All tool names are single lowercase nouns or snake_case compound nouns (e.g., managed_folder, code_env), following a predictable resource-based pattern. No mixing of styles or vague verbs.

Tool Count5/5

With 9 tools, the server is well-scoped for Dataiku's domain. Each entity earns its place and the count is comfortably within the ideal 3-15 range.

Completeness4/5

The core workflows (list/inspect datasets, recipes, jobs, scenarios; run builds and scenarios) are well covered. Some gaps exist, such as project creation/deletion and code_env management, but these are secondary for common agent tasks.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers