项目简介

Workflows MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在将复杂的自动化流程转化为易于管理和执行的工作流定义。它允许用户(或LLM客户端如Claude)通过简单的工具调用来执行预定义的YAML工作流,实现如持续集成/持续部署 (CI/CD) 流水线、Python开发任务、Git操作或任何多步骤自动化任务。

主要功能点

  • DAG工作流执行: 支持基于有向无环图 (DAG) 的工作流定义,自动处理任务依赖并实现并行执行,提高效率。
  • 安全凭证管理: 提供服务器端机密管理机制,确保API密钥、密码等敏感信息不会直接暴露给LLM上下文,增强安全性。
  • LLM原生集成: 允许工作流直接调用多种大型语言模型(LLM)的API,包括OpenAI、Anthropic、Gemini和Ollama。支持JSON Schema验证和自动重试,确保结构化输出。
  • 工作流组合与条件执行: 支持工作流之间相互调用(实现复杂逻辑的模块化),以及基于条件判断动态控制任务流程。
  • 互动式工作流: 内置“Prompt”模块,允许工作流在执行过程中暂停,等待LLM或用户提供输入,之后可继续恢复执行。
  • 丰富的内置工具: 提供一套完整的MCP工具,包括:
    • 'execute_workflow': 运行已注册的工作流。
    • 'execute_inline_workflow': 直接执行YAML字符串定义的工作流。
    • 'list_workflows': 列出所有可用工作流,支持标签过滤。
    • 'get_workflow_info': 获取工作流的详细信息(如描述、输入、输出、结构)。
    • 'validate_workflow_yaml': 验证工作流YAML定义的语法和结构。
    • 'resume_workflow': 恢复暂停的工作流。
    • 'list_checkpoints': 列出所有保存的检查点。
    • 'get_checkpoint_info': 获取检查点的详细信息。
    • 'delete_checkpoint': 删除指定的检查点。

安装步骤

要安装 Workflows MCP 服务器,您可以使用 'uv'(推荐)或 'pip':

# 推荐使用 uv
uv pip install workflows-mcp

# 或者使用 pip
pip install workflows-mcp

服务器配置

MCP客户端(如Claude Desktop或Gemini CLI)需要配置 Workflows MCP 服务器的启动命令和参数才能与之建立连接。以下是一个标准的JSON配置示例及其参数说明:

{
  "mcpServers": {
    "workflows": {
      "command": "uvx",
      "args": [
        "workflows-mcp",
        "--refresh"
      ],
      "env": {
        "WORKFLOWS_TEMPLATE_PATHS": "~/.workflows,./.workflows",
        "WORKFLOWS_LOG_LEVEL": "INFO",
        "WORKFLOWS_MAX_RECURSION_DEPTH": "50",
        "WORKFLOW_SECRET_GITHUB_TOKEN": "ghp_xxx",
        "WORKFLOW_SECRET_OPENAI_API_KEY": "sk-xxx"
      }
    }
  }
}
  • 'mcpServers': 这是MCP客户端配置文件的根对象,用于定义一个或多个MCP服务器。
  • 'workflows': 这是您为该MCP服务器定义的名称,可自定义。MCP客户端将通过此名称来引用此服务器。
  • 'command': 指定启动Workflows MCP服务器的可执行命令。通常推荐使用'uvx'来确保依赖管理,或者直接使用'python -m workflows_mcp'。
  • 'args': 传递给启动命令的参数列表。例如,'--refresh'可以确保'uvx'总是获取最新版本的Workflows MCP。
  • 'env': 这是一个可选的环境变量对象,用于为Workflows MCP服务器设置运行时配置。
    • 'WORKFLOWS_TEMPLATE_PATHS': 一个逗号分隔的路径列表,指定额外的工作流YAML文件目录。例如,'~/.workflows,./.workflows' 会让服务器加载用户主目录和当前项目目录下的工作流。
    • 'WORKFLOWS_LOG_LEVEL': 服务器的日志级别,可选值包括 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'。
    • 'WORKFLOWS_MAX_RECURSION_DEPTH': 工作流递归调用的最大深度(默认50,范围1-10000),防止无限循环。
    • 'WORKFLOW_SECRET_GITHUB_TOKEN', 'WORKFLOW_SECRET_OPENAI_API_KEY': 这是配置服务器端安全凭证的示例。所有以 'WORKFLOW_SECRET_' 开头的环境变量都会被服务器识别为秘密信息,并可在工作流中通过 '{{secrets.YOUR_KEY}}' 安全地引用。

基本使用方法

配置并重启您的LLM客户端后,AI助手将能够直接与 Workflows MCP 服务器交互:

  • 运行工作流: 您可以请求LLM运行特定的工作流,并提供必要的输入。
    • 例如:'运行Python CI流水线,项目路径设置为./my-project'
  • 查找工作流: LLM可以查询所有可用的工作流,或按标签进行筛选。
    • 例如:'列出所有与Git操作相关的工作流'
  • 了解工作流: 获取特定工作流的详细信息,包括其功能、所需输入和预期输出。
    • 例如:'告诉我python-ci-pipeline工作流的具体功能是什么'
  • 管理互动: 对于需要用户输入的互动式工作流,LLM会收到提示并可以提供响应以继续执行。
    • 例如:当工作流暂停并提示“是否确认部署?”时,LLM可以回复 'resume_workflow(checkpoint_id="...", response="yes")'

信息

分类

开发者工具