🤖 与 Claude Code 共同编写 - 构建工作流,让LLMs终于可以按照食谱执行任务而不会烧毁厨房!🔥
一个强大的模型上下文协议(MCP)实现,使LLMs能够执行包含认知操作和工具集成的复杂多步骤工作流。
workflows-mcp 转变了AI助手处理复杂任务的方式,通过提供结构化、可重用的工作流,结合工具使用和认知推理。不再是临时任务执行,而是提供了确定性、可重复的多步过程路径。
npx @fiveohhwon/workflows-mcp
npm install -g @fiveohhwon/workflows-mcp
git clone https://github.com/FiveOhhWon/workflows-mcp.git
cd workflows-mcp
npm install
npm run build
在您的Claude Desktop配置文件中添加此配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"workflows": {
"command": "npx",
"args": ["-y", "@fiveohhwon/workflows-mcp"]
}
}
}
{
"mcpServers": {
"workflows": {
"command": "workflows-mcp"
}
}
}
{
"mcpServers": {
"workflows": {
"command": "node",
"args": ["/绝对路径/to/workflows-mcp/dist/index.js"]
}
}
}
用于热重载开发:
npm run dev
工作流是JSON文档,定义了一系列供LLM执行的步骤:
{
"name": "代码审查工作流",
"description": "带有行动建议的自动化代码审查",
"goal": "进行全面的代码审查",
"version": "1.0.0",
"inputs": {
"file_path": {
"type": "string",
"description": "代码文件路径",
"required": true
}
},
"steps": [
{
"id": 1,
"action": "tool_call",
"tool_name": "read_file",
"parameters": {"path": "{{file_path}}"},
"save_result_as": "code_content"
},
{
"id": 2,
"action": "analyze",
"description": "分析代码质量",
"input_from": ["code_content"],
"save_result_as": "analysis"
}
]
}
create_workflow - 创建新的工作流
{
"workflow": {
"name": "我的工作流",
"description": "它做什么",
"goal": "期望的结果",
"steps": [...]
}
}
list_workflows - 列出所有工作流并进行过滤
{
"filter": {
"tags": ["自动化"],
"name_contains": "审查"
},
"sort": {
"field": "创建时间",
"order": "降序"
}
}
get_workflow - 获取特定工作流
{
"id": "工作流UUID"
}
update_workflow - 修改现有工作流
{
"id": "工作流UUID",
"updates": {
"description": "更新描述"
},
"increment_version": true
}
delete_workflow - 软删除(可恢复)
{
"id": "工作流UUID"
}
start_workflow - 启动工作流执行会话
{
"id": "工作流UUID",
"inputs": {
"param1": "值1"
}
}
返回第一个步骤的执行指令和执行ID。
run_workflow_step - 执行工作流中的下一步
{
"execution_id": "执行UUID",
"step_result": "来自上一步的结果",
"next_step_needed": true
}
在完成每个步骤后调用此方法以继续执行工作流。
get_workflow_versions - 列出工作流的所有可用版本
{
"workflow_id": "工作流UUID"
}
返回所有已保存版本的列表,用于版本历史记录追踪。
rollback_workflow - 将工作流回滚到之前的版本
{
"workflow_id": "工作流UUID",
"target_version": "1.0.0",
"reason": "撤销破坏性更改"
}
恢复之前的版本作为活动工作流。
工作流系统支持类似于顺序思考工具的交互式、逐步执行:
start_workflow - 返回第一步的指令run_workflow_step,传递:
start_workflow 中的 execution_idstep_resultnext_step_needed: true 继续(或 false 提前结束)每一步都提供:
工作流系统支持使用 {{variable}} 语法的模板变量替换:
"path": "output_{{format}}.txt" → "path": "output_csv.txt""处理 {{count}} 条记录" → "处理 100 条记录""输入 {{field}} 的值" → "输入 email 的值"模板变量从当前工作流会话变量中解析,包括:
start_workflow 的初始输入save_result_as 保存的前一步结果工作流系统包括高级功能,以最小化复杂工作流的令牌使用并提高性能:
控制哪些变量对每个步骤可见,以显著减少上下文大小:
{
"name": "优化的工作流",
"strict_dependencies": true, // 启用严格模式
"steps": [
{
"id": 1,
"action": "tool_call",
"tool_name": "read_large_file",
"save_result_as": "large_data"
},
{
"id": 2,
"action": "analyze",
"input_from": ["large_data"],
"save_result_as": "summary",
"dependencies": [] // 在严格模式下,看不到任何先前变量
},
{
"id": 3,
"action": "compose",
"dependencies": [2], // 只能看到第2步的 'summary'
"save_result_as": "report"
},
{
"id": 4,
"action": "validate",
"show_all_variables": true, // 覆盖以查看所有变量
"save_result_as": "validation"
}
]
}
strict_dependencies(布尔值,默认:false)
false:没有依赖项的步骤可以看到所有变量(向后兼容)true:没有依赖项的步骤看不到任何变量(必须显式声明)dependencies(步骤ID数组)
show_all_variables(布尔值)
差异状态更新:仅显示发生变化的变量
+ variable_name:新增加的变量~ variable_name:修改过的变量逐步加载:仅显示接下来的3个步骤
选择性变量显示:基于依赖项
strict_dependencies: true{
"name": "大数据处理",
"strict_dependencies": true,
"inputs": {
"file_path": { "type": "string", "required": true }
},
"steps": [
{
"id": 1,
"action": "tool_call",
"tool_name": "read_csv",
"parameters": { "path": "{{file_path}}" },
"save_result_as": "raw_data"
},
{
"id": 2,
"action": "transform",
"transformation": "仅提取关键指标",
"dependencies": [1], // 只能看到 raw_data
"save_result_as": "metrics"
},
{
"id": 3,
"action": "analyze",
"criteria": "识别趋势和异常",
"dependencies": [2], // 只能看到 metrics,而不是 raw_data
"save_result_as": "analysis"
},
{
"id": 4,
"action": "compose",
"criteria": "创建执行摘要",
"dependencies": [2, 3], // 只能看到 metrics 和 analysis
"save_result_as": "report"
}
]
}
在这个示例中:
分析代码质量,识别问题,并提供改进建议。
/workflows/examples/sample-data/sample-code-for-review.jsETL工作流,包含验证、质量检查和条件分支。
/workflows/examples/sample-data/sample-data.csv收集信息,验证来源,并生成综合报告。
基本示例,展示文件操作、分支和转换。
请参阅 /workflows/examples 目录以获取完整的工作流定义。
您可以通过将JSON文件放置在导入目录中手动添加工作流:
~/.workflows-mcp/imports/.json 结尾的文件名)imports/processed/示例工作流文件结构:
{
"name": "我的自定义工作流",
"description": "一个手动创建的工作流",
"goal": "完成特定的任务",
"version": "1.0.0",
"steps": [
{
"id": 1,
"action": "tool_call",
"description": "第一步",
"tool_name": "example_tool",
"parameters": {}
}
]
}
workflows-mcp/
├── src/
│ ├── types/ # TypeScript接口和模式
│ ├── services/ # 核心服务(存储、验证)
│ ├── utils/ # 实用函数
│ └── index.ts # MCP服务器实现
├── workflows/
│ └── examples/ # 示例工作流
│ └── sample-data/ # 测试样本数据文件
└── tests/ # 测试套件
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 生产环境构建
npm run build
# 运行测试
npm test
# 类型检查
npm run typecheck
strict_dependencies 工作流标志以进行显式变量控制dependencies 数组以进行选择性变量可见性show_all_variables 步骤覆盖以在需要时完全可见update_workflow 工具中的UUID验证错误get_workflow_versions 工具以列出所有版本rollback_workflow 工具以恢复以前的版本~/.workflows-mcp/versions/{{variable}} 语法)create_workflow 工具,嵌入了全面文档start_workflow 和 run_workflow_step 工具run_workflow 为交互式执行我们欢迎贡献!