You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A comprehensive Model Context Protocol (MCP) tool suite for Dataiku DSS integration. This project provides Claude Code with direct access to Dataiku DSS for managing recipes, datasets, and scenarios.
π Quick Start
Prerequisites
Python 3.11+
Dataiku DSS instance with API access
Valid DSS API key
Installation
# Clone and setup
git clone <repository-url>cd dataiku_factory
# Run installation script
./install.sh
# Or install manually:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .
Configuration
Copy environment template:
cp .env.sample .env
Configure your DSS connection in .env:
DSS_HOST=https://your-dss-instance.com:10000
DSS_API_KEY=your-api-key-here
DSS_INSECURE_TLS=true # Only if using self-signed certificates
# Via Claude Code chat:"""Create a python recipe called "data_cleaner" that takes "raw_data" as input and outputs "clean_data" in project "ANALYTICS_PROJECT""""# This translates to:create_recipe(
project_key="ANALYTICS_PROJECT",
recipe_type="python",
recipe_name="data_cleaner",
inputs=["raw_data"],
outputs=[{"name": "clean_data", "new": True, "connection": "filesystem_managed"}],
code="""import pandas as pddf = dataiku.Dataset("raw_data").get_dataframe()# Add your cleaning logic heredf_clean = df.dropna()dataiku.Dataset("clean_data").write_with_schema(df_clean)"""
)
Building a Dataset
# Via Claude Code chat:"""Build the dataset "user_analytics" in project "BI" with recursive build mode"""# This translates to:build_dataset(
project_key="BI",
dataset_name="user_analytics",
mode="RECURSIVE_BUILD"
)
Adding a Daily Scenario Trigger
# Via Claude Code chat:"""Add a daily trigger to scenario "daily_etl" that runs at 6:00 AM UTC"""# This translates to:add_scenario_trigger(
project_key="DATA_PIPELINE",
scenario_id="daily_etl",
trigger_type="daily",
hour=6,
minute=0,
timezone="UTC"
)
Advanced Operations
Getting Scenario Logs for Failed Runs
# Via Claude Code chat:"""Show me the logs for the latest failed run of scenario "data_processing""""# This translates to:get_scenario_logs(
project_key="ANALYTICS_PROJECT",
scenario_id="data_processing"
)
Extracting and Validating Recipe Code
# Via Claude Code chat:"""Extract the code from recipe "customer_segmentation" and validate its syntax"""# This translates to:get_recipe_code(
project_key="ML_PROJECT",
recipe_name="customer_segmentation"
)
validate_recipe_syntax(
project_key="ML_PROJECT",
recipe_name="customer_segmentation"
)
Exploring Project Structure
# Via Claude Code chat:"""Show me the complete data flow for project "SALES_ANALYTICS" and find all datasets containing "customer""""# This translates to:get_project_flow(
project_key="SALES_ANALYTICS"
)
search_project_objects(
project_key="SALES_ANALYTICS",
search_term="customer",
object_types=["datasets", "recipes", "scenarios"]
)
Getting Sample Data
# Via Claude Code chat:"""Get a sample of 500 rows from dataset "transactions" showing only customer_id and amount columns"""# This translates to:get_dataset_sample(
project_key="FINANCE_PROJECT",
dataset_name="transactions",
rows=500,
columns=["customer_id", "amount"]
)
Monitoring and Debugging
# Via Claude Code chat:"""Show me the recent failed runs in project "DATA_PIPELINE" and get details for any failed jobs"""# This translates to:get_recent_runs(
project_key="DATA_PIPELINE",
limit=20,
status_filter="FAILED"
)
get_job_details(
project_key="DATA_PIPELINE",
job_id="job_12345"
)
Productivity Operations
# Via Claude Code chat:"""Export the configuration of project "TEMPLATE_PROJECT" as YAML and duplicate its structure to "NEW_PROJECT""""# This translates to:export_project_config(
project_key="TEMPLATE_PROJECT",
format="yaml"
)
duplicate_project_structure(
source_project_key="TEMPLATE_PROJECT",
target_project_key="NEW_PROJECT",
include_data=False
)