项目简介

本项目是一个基于 FastMCP 框架构建的 MCP 服务器,旨在为 LLM 客户端提供与 Prefect 工作流管理系统集成的能力。通过此服务器,LLM 可以调用预定义的工具来查询和操作 Prefect 中的工作流、部署和运行等资源,从而实现基于 LLM 的自动化工作流管理和监控。

主要功能点

  • 工作流管理工具: 提供一系列工具,允许 LLM 客户端查询和操作 Prefect 工作流相关资源。
    • 查询工作流: 允许 LLM 获取 Prefect 中已定义的工作流列表,并支持根据条件过滤。
    • 查询工作流运行: 允许 LLM 获取工作流运行实例列表,并支持根据条件过滤。
    • 查询部署: 允许 LLM 获取 Prefect 部署列表,并支持根据条件过滤。
    • 创建工作流运行: 允许 LLM 基于指定的部署 ID 创建新的工作流运行实例。

安装步骤

  1. 安装 Python 环境: 确保您的系统已安装 Python 3.9 或更高版本。
  2. 创建并激活虚拟环境: 推荐使用 'uv' 或 'venv' 等工具创建虚拟环境,以隔离项目依赖。例如使用 'uv':
    uv venv --python 3.12
    source .venv/bin/activate
  3. 安装 Prefect MCP Server: 在激活的虚拟环境中,使用 'uv pip' 安装 'prefect-mcp-server' 包:
    uv pip install -U prefect-mcp-server

服务器配置

MCP 客户端需要配置以下 JSON 对象以连接到 Prefect MCP Server。 此配置通常在客户端的配置文件中设置(例如 Cursor IDE 的 '.cursor/mcp.json'):

{
  "mcpServers": {
    "prefect": {  // 服务器名称,客户端用以识别和引用
      "command": "uvx", // 启动服务器的命令,这里使用 uvx 运行环境中的可执行文件
      "args": [     // 命令参数,这里指定运行 prefect-mcp-server
        "prefect-mcp-server"
      ],
      "env": {}      // 环境变量,可以为空或根据需要添加
    }
  }
}

配置参数说明:

  • '"prefect"': 服务器的名称,可以自定义,客户端使用此名称来引用该服务器。
  • '"command": "uvx"': 指定用于启动服务器的命令。 'uvx' 是 'uv' 提供的运行器,用于在虚拟环境中执行命令,确保使用正确的 Python 环境和包依赖。
  • '"args": ["prefect-mcp-server"]': 指定传递给 'uvx' 命令的参数。 '"prefect-mcp-server"' 是实际启动 MCP 服务器的命令,它会执行 'prefect_mcp_server_pkg/server.py' 中的 'main_run' 函数。
  • '"env": {}': 允许您为服务器进程设置额外的环境变量。当前配置为空,但您可以根据需要添加,例如 Prefect API 的连接信息(虽然更推荐使用 '.env' 文件)。

环境变量配置:

Prefect MCP Server 依赖于 Prefect API 的连接信息。您可以通过设置环境变量来配置 Prefect API 的 URL 和 API Key。推荐在项目根目录下创建 '.env' 文件,并添加如下内容:

PREFECT_API_URL=http://localhost:4200/api  # 替换为您的 Prefect API 地址
# PREFECT_API_KEY=YOUR_PREFECT_API_KEY      # 如果需要 API Key 认证,请取消注释并替换为您的 API Key

服务器启动时会自动读取这些环境变量。

基本使用方法

  1. 启动 MCP 服务器: 当 MCP 客户端(例如 Cursor IDE)根据上述配置连接 Prefect MCP Server 时,服务器将自动启动。 您也可以在虚拟环境中手动运行 'prefect-mcp-server' 命令来启动服务器。

  2. 在 MCP 客户端中使用工具: 一旦服务器成功启动并连接到客户端,您就可以在客户端中调用预定义的工具,例如 'list_flows'、'list_flow_runs'、'list_deployments' 和 'create_flow_run' 等,来与 Prefect 系统进行交互。 具体的工具调用方式取决于 MCP 客户端的功能和界面。

注意: 此 MCP 服务器依赖于 Prefect API 服务。请确保 Prefect API 服务已正确安装和运行,并且 MCP 服务器可以访问到 Prefect API 服务。

信息

分类

开发者工具