dte-pentaho
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dte-pentahoSummarize the main job in the ETL repo and list its steps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pentaho MCP
Production-grade Model Context Protocol (MCP) for Pentaho Kettle (
.kjb/.ktr) artifacts: Lossless span-based XML inspection and editing, embedded Pentaho knowledge catalog, static structural validation, file repository management, and optional phase-gated local PDI runtime execution.π Language / NgΓ΄n ngα»―: English | TiαΊΏng Viα»t
π Table of Contents
Related MCP server: LogicMap MCP Server
π‘ Overview
Pentaho MCP (advertised as kettle-mcp-dte on stdio) is a specialized Model Context Protocol (MCP) tool suite that enables AI coding assistants (such as Claude Code, Cursor, Windsurf, Kiro, and Codex) to safely inspect, create, edit, validate, and execute Pentaho Data Integration (PDI / Kettle) Jobs (.kjb) and Transformations (.ktr).
The system follows a strict architectural separation: Deterministic Primitives + External Reasoning:
Pentaho MCP: Provides deterministic, lossless primitives: byte-exact XML span editing, hop coordinate calculations, schema-compliant step insertion, static graph validation, and repository reference migration.
The AI Client / Superpowers Workflow: Performs the high-level reasoning: requirement analysis, design brainstorming, formal specification, and execution planning.
β¨ Key Features
π― Lossless Span-Based XML Editing: Uses
fast-xml-parserto pinpoint element byte offsets and only modifies the targeted byte spans. Preserves 100% of the original tag ordering, formatting, XML comments, whitespace, and CRLF/LF line endings expected by Pentaho Spoon.π§ Embedded Knowledge-First Catalog: Bundles a rich knowledge catalog (
catalog.yamland Markdown specifications insrc/knowledge/pentaho/). AI agents never hallucinate Pentaho XML tags; they inspect canonical templates viakettle_knowledge_getbefore creating or updating steps/entries.β‘ Zero-PDI Core Dependency: All read, create, edit, hop wiring, parameter modification, repository tracking, and static validation operations run on pure Node.js β no Java, PDI, or Spoon installation required for core features.
π‘οΈ Canonical Workspace Boundary Containment: Enforces strict directory boundaries via
src/workspace/boundary.js. Rejects path traversals (..), sibling-prefix escapes, and symlink/junction escapes outside the resolved workspace root.ποΈ Full Repository & Database Connection Support: Native handling for Pentaho File Repositories, internal path resolution (
${Internal.Entry.Current.Directory}),.kdbshared database connection files, and automatic Spoonrepositories.xmldetection.π¦ Phase-Gated Runtime Execution: Optional local PDI execution (
Kitchen.bat/Pan.bat) protected by dual safeguards: environment opt-in (PENTAHO_ENABLE_EXECUTE=1), invocation-level confirmation (confirmed: true), and mandatory pre-run static validation.
π οΈ 41 Production Tools Surface
The production surface exposes exactly 41 tools (strictly enforced via set-equality check in verify:profile), categorized into 8 functional groups:
Group | Count | Representative Tools | Primary Purpose |
Read | 4 |
| List workspace artifacts, summarize elements & hop graphs, inspect step details (including full SQL), and perform bounded full-workspace searches. |
Edit | 9 |
| Create empty |
Artifact | 2 |
| Manage artifact-level parameters and safely copy |
Removal | 2 |
| Safely remove steps/entries (blocks if references exist unless |
Connections | 6 |
| Manage lifecycle and track usages of shared database connections ( |
Repository | 9 |
| Pentaho File Repository operations: move/rename files with automatic cross-reference updates, detect Spoon registries, and register workspaces into |
Validate | 1 |
| Static structural validation of single artifacts or entire workspace trees (detects orphaned hops, cycles, missing START entries, unresolved parameters). |
Knowledge | 4 |
| Query the embedded component catalog, fetch canonical step/job templates, analyze external sample XML, and evaluate catalog coverage. |
Runtime | 4 |
| Probe local PDI installation, run non-executing loadchecks, execute pipelines via Kitchen/Pan, and retrieve redacted tail-buffered runtime logs. |
π For full parameters, input schemas, and call examples, see the 41 Tools Reference Guide (docs/tools-reference.md).
ποΈ System Architecture
flowchart LR
subgraph Client_Layer[Client & Reasoning Layer]
AI[AI Assistant: Claude Code / Cursor / Codex]
SP[Superpowers / Companion Skill] -. guides .-> AI
end
subgraph MCP_Layer[Pentaho MCP / kettle-mcp-dte]
STDIO[Stdio Transport JSON-RPC]
SRV[Protocol Core: src/server.js]
REG[Registry: 9 Tool Factories]
BND[Boundary Policy: src/workspace/boundary.js]
STDIO --> SRV --> REG
REG --> BND
CORE[Core Engine: Span-Based XML & Graph]
KNOW[Knowledge Base: catalog.yaml + Markdown]
REPO[Repository Engine: Paths & References]
RT[Runtime Engine: Kitchen / Pan Process Runner]
REG --> CORE
REG --> KNOW
REG --> REPO
REG --> RT
end
subgraph Storage[Workspace & Local Environment]
WS[(Workspace: .kjb / .ktr / .kdb)]
PDI[(Local PDI: Kitchen.bat / Pan.bat)]
SPOON[(Spoon: ~/.kettle/repositories.xml)]
end
CORE --> WS
REPO --> WS
REPO -. sync .-> SPOON
RT -. phase-gated execution .-> PDIπ Recommended 5-Phase Workflow
To ensure reliable, error-free ETL artifacts, development is structured into a 5-phase lifecycle guarded by a Dual Mutation Gate:
flowchart TD
P1[Phase 1: BA Requirement & Brainstorming] -->|Design Approval| P2[Phase 2: Formal Specification]
P2 -->|Spec Approval| P3[Phase 3: Implementation Planning]
P3 -->|Plan Approval| GATE{DUAL MUTATION GATE<br>Both Spec & Plan approved?}
GATE -->|Yes| P4[Phase 4: Knowledge-First XML Execution]
GATE -->|No| P3
P4 --> P5[Phase 5: Static Validation & Phase-Gated Runtime]
P5 --> Handoff[Final Handoff & Review]Phase 1 β Requirements & Design: Clarify sources, targets, parameters, and failure strategies. Only read-only tools (
kettle_list,kettle_summary,kettle_knowledge_*) may be invoked.Phase 2 β Specification: Draft a formal specification covering boundaries, artifact inventory, variables, job/transformation definitions, and acceptance criteria.
Phase 3 β Planning: Produce an artifact-by-artifact execution plan: leaf
.ktrtransformations first -> dependent.ktr-> orchestrating.kjbjobs last.Phase 4 β Execution: The mutation gate opens only after both Spec and Plan are approved. Before configuring any step or entry, inspect its canonical schema with
kettle_knowledge_get.Phase 5 β Verification & Handoff: Run
kettle_validateacross individual files and the entire workspace tree. Only when zero structural errors remain can optional runtime verification (loadcheck,execute) be performed.
π Read the complete playbook in the 5-Phase Workflow Guide (docs/workflow-guide.md).
π Quickstart
1. Source Mode (For Developers)
Prerequisites: Node.js >= 20.
# 1. Clone repository and install dependencies
git clone https://github.com/TumRoyal/pentaho-mcp-server.git
cd pentaho-mcp-server
npm install
# 2. Run full test suite and verify production tool profile
npm test
npm run verify:profile
# 3. Run on stdio
node src/index.js2. Self-Contained Windows Executable (.exe, For End Users)
No local Node.js or npm install needed. Pentaho MCP, all runtime dependencies, and the full knowledge base are bundled into a single binary.
# 1. Build release package
npm run build:release -- --version 1.0.0
# 2. Verify health and dependencies with the doctor script
.\build\release\doctor.ps1 -PentahoHome C:\Pentaho\data-integrationExtract the release ZIP from dist/ into a stable path (e.g. C:\Tools\dte-pentaho-mcp\) to configure with your AI clients.
π Client Configuration
Workspace root: no environment variable sets the workspace root. The server auto-detects it on startup, mirroring Spoon: a file repository declared in
~/.kettle/repositories.xml(the default repository wins, otherwise the first repository whosebase_directoryexists), else arepositories.xmlinsidePENTAHO_HOME, else the server process's working directory. Because there is no env override, the only ways to pin a project are to register it in~/.kettle/repositories.xml, or to start the client with the project as its working directory. All paths passed to tools are still validated against the resolved root by the workspace boundary.
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"dte-pentaho": {
"command": "node",
"args": ["C:/path/to/pentaho-mcp-server/src/index.js"],
"env": {
"PENTAHO_HOME": "C:/Pentaho/data-integration",
"PENTAHO_ENABLE_EXECUTE": "0"
}
}
}
}(For the standalone .exe, set command to C:/Tools/dte-pentaho-mcp/dte-pentaho-mcp.exe and args to [])
Cursor
Add to .cursor/mcp.json (or via Settings -> MCP Servers):
{
"mcpServers": {
"dte-pentaho": {
"command": "C:/Tools/dte-pentaho-mcp/dte-pentaho-mcp.exe",
"args": [],
"env": {
"PENTAHO_HOME": "C:/Pentaho/data-integration"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"dte-pentaho": {
"command": "node",
"args": ["C:/path/to/pentaho-mcp-server/src/index.js"],
"env": {
"PENTAHO_HOME": "C:/Pentaho/data-integration"
}
}
}
}Kiro
Configure in .kiro/settings/mcp.json (workspace) or %USERPROFILE%/.kiro/settings/mcp.json (global):
{
"mcpServers": {
"dte-pentaho": {
"command": "C:/Tools/dte-pentaho-mcp/dte-pentaho-mcp.exe",
"args": [],
"env": {
"PENTAHO_HOME": "C:/Pentaho/data-integration"
}
}
}
}Codex CLI
Add to .codex/config.toml:
[mcp_servers.dte-pentaho]
command = "C:/Tools/dte-pentaho-mcp/dte-pentaho-mcp.exe"
args = []
[mcp_servers.dte-pentaho.env]
PENTAHO_HOME = "C:/Pentaho/data-integration"βοΈ Configuration & Environment Variables
Variable | Description | Default | Required |
| Path to local Pentaho Data Integration directory containing | Unset | Only for Runtime |
| Optional repository name override. Falls back to the repository name detected from | Detected from | Optional |
| Opt-in gate for executing pipelines. Only |
| Optional |
| Custom override path for the embedded knowledge base directory. |
| Optional |
The workspace root is auto-detected per start-up and cannot be set by an environment variable β see Client Configuration. All tool paths stay confined to that root by the workspace boundary; relative paths resolve against it, and absolute paths are valid only when contained within it.
π For containment rules and security details, see the Configuration Guide (docs/configuration.md).
π§© Companion Skill
This repository includes a specialized companion skill located at skills/developing-pentaho-jobs/:
SKILL.md: 5-phase lifecycle orchestration, mutation gating, knowledge lookups, and static acceptance criteria.references/pentaho-spec-template.md: Formal Pentaho specification template.references/pentaho-plan-template.md: Artifact-by-artifact implementation plan template.
Note: Skills are not automatically activated by being present in the repository; copy the skill directory into your client's designated skills path (see Installation Guide).
π« Non-Goals & Safety Invariants
To keep Pentaho MCP deterministic, robust, and safe:
β No Automated Deployments or Git Mutations: Pentaho MCP never commits, pushes, or alters Git branches.
β No Runtime Knowledge Mutation: The embedded knowledge catalog is immutable and read-only.
β No Business Data Validation:
kettle_validateverifies structural XML correctness for Spoon/Kitchen execution; it does not audit ETL data business logic.β No MCP Prompts or Resources: Pentaho MCP advertises
capabilities = { tools: {} }only, with no prompts or resources.
π Documentation Hub
Detailed documentation is available in the docs/ directory:
πΊοΈ Documentation Hub (docs/README.md): Role-based reading paths and navigation map.
ποΈ System Architecture: Deep dive into the span-based XML engine, module map, and containment policy.
βοΈ Configuration & Boundaries: Workspace confinement, environment variables, and process limits.
π οΈ 41 Tools Reference Guide: Complete parameter and schema documentation for all 41 tools.
π 5-Phase Workflow Playbook: Step-by-step guide for turning BA requirements into validated Kettle artifacts.
π» Development & Contribution: Repository setup, testing conventions, and Windows release packaging.
π Installation Manual: Detailed setup instructions for source and packaged modes.
π©Ί Operations & Troubleshooting: Health checks via
doctor.ps1, log retention, and diagnostic procedures.π Documentation Facts: Single Source of Truth reference table.
π PDI 9.4 Compatibility Evidence & File Repository Evidence: Verified test evidence on Pentaho 9.4.
π€ Contributing & License
Contributions: Please read CONTRIBUTING.md for development workflows, testing guidelines, and PR checklists.
License: Distributed under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query Allen-Bradley and Siemens PLC projects, live tag values, and analyses in plain English.
Knowledge graph ingestion, entity search, ontology analysis, and CoSync scoring.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Read, analyze, and safely edit Microsoft Project MPP files.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.2MIT
- AlicenseAqualityDmaintenanceEnables creating and querying semantic knowledge graphs to model business logic, code relationships, and project structure across multiple projects.111MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying and exploring a bundled knowledge base through tools for manifest, table of contents, node retrieval, and full-text search.10 npm1MIT
- AlicenseCqualityCmaintenanceEnables reading, analysis, and safe modification of DipTrace PCB designs via natural language, with live integration and offline XML support.16722Apache 2.0