返回市场
麦克佩斯-python服务器

麦克佩斯-python服务器

作者:kestra-io16 星标更新:2025-10-29

项目介绍

Kestra Python MCP Server

您可以在Docker容器中运行MCP服务器。这在您希望避免管理本地机器上的Python环境或依赖项时非常有用。

使用Kestra AI代理

参见kestra_mcp_docker

OSS用户最小配置

将以下配置粘贴到您的MCP设置(例如Cursor、Claude或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"
      }
    }
  }
}

EE用户最小配置

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

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

注意:

  • <your_kestra_api_token><your_google_api_key><your_helicone_api_key>替换为您实际的凭证。
  • 对于OSS安装,您可以使用KESTRA_USERNAMEKESTRA_PASSWORD而不是KESTRA_API_TOKEN
  • 要在OSS中禁用企业版工具,请设置KESTRA_MCP_DISABLED_TOOLS=ee
  • host.docker.internal主机名允许Docker容器访问主机上运行的服务(如端口8080上的Kestra API服务器)。这在macOS和Windows上有效。在Linux上,您可能需要使用主机网络模式或设置自定义桥接。
  • -e标志将您的MCP配置中的环境变量传递给Docker容器。

可用工具

  • 🔄 数据回填
  • ⚙️ ee(企业版工具)
  • ▶️ 执行
  • 📁 文件
  • 🔀 流程
  • 🗝️ 键值
  • 🌐 命名空间
  • 🔁 重放
  • ♻️ 重启
  • ⏸️ 恢复

注意: ee工具组包含特定于企业版的功能,并且仅在EE/云版本中可用。对于OSS用户,您可以通过在.env文件中添加KESTRA_MCP_DISABLED_TOOLS=ee来禁用EE工具。

可选地,您可以在.env文件中包含KESTRA_MCP_DISABLED_TOOLS列出您希望禁用的工具。例如,如果您想禁用命名空间文件工具,可以将以下内容添加到您的.env文件中:

KESTRA_MCP_DISABLED_TOOLS=files

要禁用多个工具,请用逗号分隔它们:

KESTRA_MCP_DISABLED_TOOLS=ee

日志配置

默认情况下,MCP服务器仅记录错误级别的消息以减少噪音。您可以使用KESTRA_MCP_LOG_LEVEL环境变量控制日志级别:

# 仅显示错误消息(默认)
KESTRA_MCP_LOG_LEVEL=ERROR

# 显示警告和错误消息
KESTRA_MCP_LOG_LEVEL=WARNING

# 显示信息、警告和错误消息
KESTRA_MCP_LOG_LEVEL=INFO

# 显示所有消息,包括调试
KESTRA_MCP_LOG_LEVEL=DEBUG

当使用Docker时,将环境变量添加到您的MCP配置中:

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

本地开发

要在本地运行Kestra的MCP服务器(例如,如果您想要通过添加新工具进行扩展),首先确保创建一个虚拟环境:

uv venv --python 3.13
uv pip install -r requirements.txt

在项目根目录下创建一个.env文件,类似于.env_example文件。对于OSS安装,您可以使用基本认证与KESTRA_USERNAMEKESTRA_PASSWORD。对于EE/云安装,使用KESTRA_API_TOKEN。要在OSS中禁用企业版工具,请在.env文件中添加KESTRA_MCP_DISABLED_TOOLS=ee

然后,按照以下说明操作,了解如何在Cursor、Windsurf、VS Code或Claude Desktop中测试您的本地服务器。


在Cursor、Windsurf、VS Code或Claude Desktop中的使用

要使用Python MCP服务器与Claude或现代IDE,首先检查您的机器上uv的路径:

which uv

复制which uv返回的路径并将其粘贴到command部分。 然后,将--directory替换为您克隆Kestra MCP服务器存储库的位置。例如:

{
  "mcpServers": {
    "kestra": {
      "command": "/Users/annageller/.local/bin/uv",
      "args": [
        "--directory",
        "/Users/annageller/gh/mcp-server-python/src",
        "run",
        "server.py"
      ]
    }
  }
}

您可以将此内容粘贴到Cursor MCP设置或Claude开发者设置中。

VS Code设置

在您的VS Code项目目录中,添加一个名为.vscode的文件夹,在该文件夹内创建一个名为mcp.json的文件。将您的MCP配置粘贴到该文件中(请注意,在VS Code中,键是servers而不是mcpServers):

{
  "servers": {
    "kestra": {
      "command": "/Users/annageller/.local/bin/uv",
      "args": [
        "--directory",
        "/Users/annageller/gh/mcp-server-python/src",
        "run",
        "server.py"
      ]
    }
  }
}

一个小的“开始”按钮应该会出现,点击它启动服务器。

img.png

现在,如果您导航到GitHub Copilot标签并切换到代理模式,您将能够直接与Kestra MCP服务器工具交互。例如,尝试输入提示:“列出教程命名空间中的所有流程”。

img_1.png

如果您点击继续,您将在输出窗口中看到命令的结果。

img_2.png

常见问题

问题:我必须手动启动服务器作为持续运行的过程吗?

不,您不需要手动运行服务器,因为当使用stdio传输时,AI IDEs/聊天界面(如Cursor、Windsurf、VS Code或Claude Desktop)会作为子进程启动MCP服务器。这个子进程通过标准输入和输出流上的JSON-RPC消息与AI IDEs通信。服务器通过stdin接收消息并通过stdout发送响应。

问题:我必须手动激活MCP服务器的虚拟环境吗?

不,因为我们使用了uv。与传统的Python包管理器不同,传统的虚拟环境激活会修改shell变量如PATH,而uv直接使用.venv目录中的Python解释器和包,无需先设置环境变量。只需确保您已使用uv venv创建了一个uv虚拟环境,并使用uv pip install安装了所需的包,如前一节所述。