home / mcp / kestra mcp server

Kestra MCP Server

Python MCP Server for Kestra — you can use it as a tool in Kestra's AI Agents

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "kestra-io-mcp-server-python": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e",
        "KESTRA_BASE_URL",
        "-e",
        "KESTRA_API_TOKEN",
        "-e",
        "KESTRA_TENANT_ID",
        "-e",
        "KESTRA_USERNAME",
        "-e",
        "KESTRA_PASSWORD",
        "-e",
        "KESTRA_MCP_DISABLED_TOOLS",
        "-e",
        "KESTRA_MCP_LOG_LEVEL",
        "ghcr.io/kestra-io/mcp-server-python:latest"
      ],
      "env": {
        "KESTRA_BASE_URL": "http://host.docker.internal:8080/api/v1",
        "KESTRA_PASSWORD": "admin",
        "KESTRA_USERNAME": "admin",
        "KESTRA_API_TOKEN": "<your_kestra_api_token>",
        "KESTRA_TENANT_ID": "main",
        "KESTRA_MCP_LOG_LEVEL": "ERROR",
        "KESTRA_MCP_DISABLED_TOOLS": "ee"
      }
    }
  }
}

You run the Kestra Python MCP Server inside a Docker container to provide a modular, programmable interface for your Kestra ecosystem. This server lets you access and control MCP-enabled tools from your preferred IDE or editor, without managing Python environments locally. It supports OSS and Enterprise configurations, allowing you to enable or disable specific tools and to tune logging for debugging or quiet operation.

How to use

Use the MCP Server with your MCP client (Cur sor, Windsurf, VS Code, Claude Desktop, or other compatible IDEs). The server runs as a subprocess inside Docker, exposing tools like backfill, execution, files, flow, kv, namespace, replay, restart, and resume. You interact with the MCP through the client’s standard commands and UI, enabling workflows across your Kestra namespace.

How to install

Prerequisites: install Docker on your host machine. You will run the MCP Server as a Docker container to avoid local Python environment setup.

1) Create a minimal configuration for OSS users (paste into your MCP client’s settings):

{
  "mcpServers": {
    "kestra": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e",
        "KESTRA_BASE_URL",
        "-e",
        "KESTRA_TENANT_ID",
        "-e",
        "KESTRA_MCP_DISABLED_TOOLS",
        "-e",
        "KESTRA_MCP_LOG_LEVEL",
        "-e",
        "KESTRA_USERNAME",
        "-e",
        "KESTRA_PASSWORD",
        "ghcr.io/kestra-io/mcp-server-python:latest"
      ],
      "env": {
        "KESTRA_BASE_URL": "http://host.docker.internal:8080/api/v1",
        "KESTRA_TENANT_ID": "main",
        "KESTRA_MCP_DISABLED_TOOLS": "ee",
        "KESTRA_MCP_LOG_LEVEL": "ERROR",
        "KESTRA_USERNAME": "[email protected]",
        "KESTRA_PASSWORD": "your_password"
      }
    }
  }
}

How to install

2) Create a minimal configuration for EE users (paste into your MCP client’s settings):

{
  "mcpServers": {
    "kestra": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e", "KESTRA_BASE_URL",
        "-e", "KESTRA_API_TOKEN",
        "-e", "KESTRA_TENANT_ID",
        "-e", "KESTRA_MCP_LOG_LEVEL",
        "ghcr.io/kestra-io/mcp-server-python:latest"
      ],
      "env": {
        "KESTRA_BASE_URL": "http://host.docker.internal:8080/api/v1",
        "KESTRA_API_TOKEN": "<your_kestra_api_token>",
        "KESTRA_TENANT_ID": "main",
        "KESTRA_MCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}

How to install

3) Detailed Docker configuration with environment variables (paste into your MCP client’s settings):

{
  "mcpServers": {
    "kestra": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e", "KESTRA_BASE_URL",
        "-e", "KESTRA_API_TOKEN",
        "-e", "KESTRA_TENANT_ID",
        "-e", "KESTRA_USERNAME",
        "-e", "KESTRA_PASSWORD",
        "-e", "KESTRA_MCP_DISABLED_TOOLS",
        "-e", "KESTRA_MCP_LOG_LEVEL",
        "ghcr.io/kestra-io/mcp-server-python:latest"
      ],
      "env": {
        "KESTRA_BASE_URL": "http://host.docker.internal:8080/api/v1",
        "KESTRA_API_TOKEN": "<your_kestra_api_token>",
        "KESTRA_TENANT_ID": "main",
        "KESTRA_USERNAME": "admin",
        "KESTRA_PASSWORD": "admin",
        "KESTRA_MCP_DISABLED_TOOLS": "ee",
        "KESTRA_MCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}

Available tools

backfill

Backfill missing data or run historical operations across flows; supports selective namespaces and flows.

ee

Enterprise Edition tools that provide advanced features and capabilities beyond the OSS bundle.

execution

Execute and monitor individual tasks or entire flows, including error handling and retries.

files

Access, upload, and manage files stored within the MCP environment.

flow

Manage, inspect, and manipulate flows, including creation, updates, and execution control.

kv

Key-value storage and retrieval within the MCP context.

namespace

Organize and isolate resources by namespace; manage namespace-level settings and tools.

replay

Replay past executions or restore state for debugging and testing.

restart

Restart MCP components or specific services to recover from failures.

resume

Resume paused or interrupted workflows and tasks.