Kestra MCPサーバー
コミット 2026年11月12日AIクライアントからツール呼び出しを通じて、Kestraのワークフロー、実行、名前空間、ファイル、およびKVデータを管理できます。
別名 kestra-io/mcp-server-python
- スター
- 35
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年11月12日
- ライセンス
- Apache-2.0
Kestra MCPとは
KestraはMCPサーバーです。 AIクライアントからツール呼び出しを通じて、Kestraのワークフロー、実行、名前空間、ファイル、およびKVデータを管理できます。.
プロジェクトのREADMEから生成された概要
Kestra MCP server について
このサーバーは、データエンジニアや自動化スペシャリストが、AIクライアントから直接Kestraのワークフローやデータを管理することを可能にします。Kestraインスタンスに接続することで、ユーザーはAIエージェントに対して、専用のツール呼び出しを通じて実行の制御、名前空間の管理、ファイル操作、およびキーバリューデータの操作を指示できます。このサーバーはKestra 1.xと2.xの両方のバージョンをサポートしており、互換性のあるAPIリクエストを確実にするためにメジャーバージョンを自動的に検出します。
デプロイ方法は柔軟で、ローカルの依存関係管理を避けるためにDockerコンテナ内でサーバーを実行することも、uvを使用してローカルのPython環境で実行することも可能です。Open Source Softwareユーザーはユーザー名とパスワードによる認証を行い、Enterprise EditionまたはCloudユーザーはAPIトークンを使用します。また、環境変数を通じて詳細な制御が可能であり、例えばKESTRA_MCP_DISABLED_TOOLSを使用して、Enterprise Editionのツールや名前空間のファイルをAIクライアントから隠すことができます。
できること
- 1履歴データの処理をトリガーする特定のワークフロートリガーに対してバックフィルを開始するようAIに依頼します。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
設定
KESTRA_API_TOKENKESTRA_API_VERSIONKESTRA_BASE_URLKESTRA_MCP_DISABLED_TOOLSKESTRA_MCP_LOG_LEVELKESTRA_PASSWORDKESTRA_TENANT_IDKESTRA_USERNAME
| 名前 | 説明 | 種類 |
|---|---|---|
| KESTRA_API_TOKEN | — | |
| KESTRA_API_VERSION | — | |
| KESTRA_BASE_URL | — | |
| KESTRA_MCP_DISABLED_TOOLS | — | |
| KESTRA_MCP_LOG_LEVEL | — | |
| KESTRA_PASSWORD | — | |
| KESTRA_TENANT_ID | — | |
| KESTRA_USERNAME | — |
自動チェック
実行日 2026年11月14日完全なレポート →まだ検証されていません。サーバーには80点のスコア、重大な問題がないこと、および検証に必要な十分なデータが必要です。 チェックの仕組み · 点数を上げるための改善点
- ソースリポジトリがリンクされており、アクセス可能kestra-io/mcp-server-python is public and reachablegithub.com/kestra-io/mcp-server-python ↗合格
- パッケージがこのリポジトリをソースとして指定未チェック
- ビルドの来歴 (Sigstore 証明)未チェック
- オープンソースライセンス (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-11-12github.com/kestra-io/mcp-server-python ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していない未チェック
- パッケージおよびその依存関係に重大な勧告なし未チェック
- モデルへの隠れた指示がない0 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされている未チェック
- リモートエンドポイントが MCP ハンドシェイクに応答未チェック
README
GitHubで見るKestra Python MCP Server
You can run the MCP Server in a Docker container. This is useful if you want to avoid managing Python environments or dependencies on your local machine.
Using Kestra AI Agent
See kestra_mcp_docker.
Minimal configuration for OSS users
Paste the following configuration into your MCP settings (e.g., Cursor, Claude, or VS Code):
{
"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": "admin@kestra.io",
"KESTRA_PASSWORD": "your_password"
}
}
}
}
Minimal configuration for EE users
{
"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"
}
}
}
}
Detailed Configuration using Docker
{
"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"
}
}
}
}
Notes:
- Replace
<your_kestra_api_token>,<your_google_api_key>, and<your_helicone_api_key>with your actual credentials. - For OSS installations, you can use
KESTRA_USERNAMEandKESTRA_PASSWORDinstead ofKESTRA_API_TOKEN. - To disable Enterprise Edition tools in OSS, set
KESTRA_MCP_DISABLED_TOOLS=ee. - The
host.docker.internalhostname allows the Docker container to access services running on your host machine (such as the Kestra API server on port 8080). This works on macOS and Windows. On Linux, you may need to use the host network mode or set up a custom bridge. - The
-eflags pass environment variables from your MCP configuration into the Docker container.
Kestra version support
Both Kestra 1.x and Kestra 2.x are supported by the same image, and nothing has to be configured for either.
Several endpoints were changed in Kestra 2.0. The execution actions were moved under /actions/, the per-endpoint search parameters were replaced by the unified filters[field][OPERATION] model, backfill creation was moved to /triggers/backfill/create, and KV listing was moved to GET /kv. A 1.x query parameter sent to a 2.x server is ignored rather than rejected, so a request can appear to succeed while the results come back unfiltered.
The server version is read once from GET /api/v1/configs on the first tool call and every request is then built for that major. Where that endpoint is unreachable, behind a proxy that does not forward it for instance, the major can be set explicitly:
# 1, 2, or a full version such as 1.3.3 or 2.0.1
KESTRA_API_VERSION=2
Two differences between the majors remain visible in the tool output:
- Dashboards - from 2.0 on, dashboards can only be created over the API in the Enterprise Edition, so
generate_dashboardwithauto_createreturns the generated YAML together with a warning on OSS 2.x. - Namespace file moves - on Kestra 2.x, a file written to a path that was previously moved away is stored under a versioned name, and a later move of that path fails with a 500. The error is reported with the suggestion to delete and re-upload instead.
Available Tools
- 🔄 backfill
- ⚙️ ee (Enterprise Edition tools)
- ▶️ execution
- 📁 files
- 🔀 flow
- 🗝️ kv
- 📋 logs
- 🌐 namespace
- 🔁 replay
- ♻️ restart
- ⏸️ resume
Note: The ee tool group contains Enterprise Edition specific functionality and is only available in EE/Cloud editions. For OSS users, you can disable EE tools by adding KESTRA_MCP_DISABLED_TOOLS=ee to your .env file.
Optionally, you can include KESTRA_MCP_DISABLED_TOOLS in your .env file listing the tools that you prefer to disable. For example, if you want to disable Namespace Files tools, add this to your .env file:
KESTRA_MCP_DISABLED_TOOLS=files
To disable multiple tools, separate them with comma:
KESTRA_MCP_DISABLED_TOOLS=ee
Logging Configuration
By default, the MCP server only logs ERROR level messages to minimize noise. You can control the logging level using the KESTRA_MCP_LOG_LEVEL environment variable:
# Only show ERROR messages (default)
KESTRA_MCP_LOG_LEVEL=ERROR
# Show WARNING and ERROR messages
KESTRA_MCP_LOG_LEVEL=WARNING
# Show INFO, WARNING, and ERROR messages
KESTRA_MCP_LOG_LEVEL=INFO
# Show all messages including DEBUG
KESTRA_MCP_LOG_LEVEL=DEBUG
When using Docker, add the environment variable to your MCP configuration:
{
"mcpServers": {
"kestra": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--pull",
"always",
"-e", "KESTRA_BASE_URL",
"-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_MCP_LOG_LEVEL": "ERROR"
}
}
}
}
Local development
To run the MCP Server for Kestra locally (e.g. if you want to extend it with new tools), make sure to create a virtual environment first:
uv venv --python 3.13
uv pip install -r requirements.txt
Create an .env file in the root directory of the project similar to the .env_example file. For OSS installations, you can use basic authentication with KESTRA_USERNAME and KESTRA_PASSWORD. For EE/Cloud installations, use KESTRA_API_TOKEN. To disable Enterprise Edition tools in OSS, add KESTRA_MCP_DISABLED_TOOLS=ee to your .env file.
Then, follow the instructions below explaining how to test your local server in Cursor, Windsurf, VS Code or Claude Desktop.
Usage in Cursor, Windsurf, VS Code or Claude Desktop
To use the Python MCP Server with Claude or modern IDEs, first check what is the path to uv on your machine:
which uv
Copy the path returned by which uv and paste it into the command section.
Then, replace the --directory by the path where you cloned the Kestra MCP Server repository. For example:
{
"mcpServers": {
"kestra": {
"command": "/Users/annageller/.local/bin/uv",
"args": [
"--directory",
"/Users/annageller/gh/mcp-server-python/src",
"run",
"server.py"
]
}
}
}
You can paste that in the Cursor MCP settings or Claud Developer settings.
VS Code setup
In your VS Code project directory, add a folder .vscode and within that folder, create a file called mcp.json. Paste your MCP configuration into that file (note that in VS Code, the key is servers instead of mcpServers):
{
"servers": {
"kestra": {
"command": "/Users/annageller/.local/bin/uv",
"args": [
"--directory",
"/Users/annageller/gh/mcp-server-python/src",
"run",
"server.py"
]
}
}
}
A small Start button should show up, click on it to start the server.

If you now navigate to the GitHub Copilot tab and switch to the Agent mode, you will be able to directly interact with the Kestra MCP Server tools. For example, try typing the prompt: "List all flows in the tutorial namespace".

If you click on continue, you will see the result of the command in the output window.

FAQ
Question: Do I have to manually start the server as an always-on process?
No, you don't have to run the server manually, as when using the stdio transport, the AI IDEs/chat-interfaces (Cursor, Windsurf, VS Code or Claude Desktop) launch the MCP server as a subprocess. This subprocess communicates with AI IDEs via JSON-RPC messages over standard input and output streams. The server receives messages through stdin and sends responses through stdout.
Question: Do I have to manually activate the virtual environment for the MCP Server?
No, because we use uv. Unlike traditional Python package managers, where virtual environment activation modifies shell variables like PATH, uv directly uses the Python interpreter and packages from the .venv directory without requiring environment variables to be set first. Just make sure you have created a uv virtual environment with uv venv and installed the required packages with uv pip install as described in the previous section.
Kestra MCPのよくある質問
Kestra MCP serverをCursorやClaudeに接続するにはどうすればよいですか?
MCP設定にkestraのエントリを追加し、KESTRA_BASE_URLとtenant環境変数とともにDockerイメージghcr.io/kestra-io/mcp-server-pythonを実行するように設定してください。
OSS版でKestra MCP serverを認証するにはどうすればよいですか?
OSS版の場合は、APIトークンの代わりにKESTRA_USERNAMEとKESTRA_PASSWORDを使用した基本認証を使用してください。
OSS版でEnterprise Editionのツールを無効にするにはどうすればよいですか?
環境変数KESTRA_MCP_DISABLED_TOOLSをeeに設定してください。カンマ区切りで複数のツールグループを指定できます。
MCP serverはどのKestraバージョンをサポートしていますか?
同じイメージでKestra 1.xと2.xの両方をサポートしています。API configsエンドポイントまたはKESTRA_API_VERSIONからメジャーバージョンを自動的に検出します。
サーバーのログの出力レベルを変更できますか?
はい、KESTRA_MCP_LOG_LEVELをERROR(デフォルト)、WARNING、INFO、またはDEBUGに設定してください。