使用说明
工作流mcp
🤖 与合著 克劳德代码 -构建工作流程,以便LLM最终可以按照食谱进行操作,而不会烧毁厨房! 🔥
一个强大的模型上下文协议(MCP)实现,使LLM能够通过认知动作和工具集成执行复杂的多步骤工作流。
🌟 概述
工作流mcp通过提供结构化、可重用的工作流,将工具使用与认知推理相结合,改变了人工智能助手处理复杂任务的方式。工作流通过多步骤流程提供确定性、可重复的路径,而不是临时任务执行。
🚀 主要特点
- 📋 结构化工作流:为LLM定义清晰、循序渐进的说明
- 🧠 认知行为:超越工具调用-分析、考虑、验证和推理
- 🔀 高级控制流:分支、循环、并行执行
- 💾 状态管理:跨工作流程步骤跟踪变量和结果
- 🔍 全面验证:执行前确保工作流的完整性
- 📊 执行跟踪:监控成功率和绩效指标
- 🛡️ 类型安全:通过Zod验证完全支持TypeScript
- 🎯 依赖管理:控制变量可见性以减少令牌使用
- ⚡ 性能优化:差分更新和渐进式加载
📦 安装
使用npx(推荐)
npx @fiveohhwon/workflows-mcp
来自npm
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
视窗: %APPDATA%\Claude\claude_desktop_config.json
使用npx(推荐):
{
"mcpServers": {
"workflows": {
"command": "npx",
"args": ["-y", "@fiveohhwon/workflows-mcp"]
}
}
}
使用全局安装:
{
"mcpServers": {
"workflows": {
"command": "workflows-mcp"
}
}
}
使用本地构建:
{
"mcpServers": {
"workflows": {
"command": "node",
"args": ["/absolute/path/to/workflows-mcp/dist/index.js"]
}
}
}
发展模式
对于热重载开发:
npm run dev
📖 工作流结构
工作流是JSON文档,定义了LLM执行的一系列步骤:
{
"name": "Code Review Workflow",
"description": "Automated code review with actionable feedback",
"goal": "Perform comprehensive code review",
"version": "1.0.0",
"inputs": {
"file_path": {
"type": "string",
"description": "Path to code file",
"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": "Analyze code quality",
"input_from": ["code_content"],
"save_result_as": "analysis"
}
]
}
🎯 操作类型
工具操作
- tool_call:使用参数执行特定工具
认知行为
- 分析:检查数据并确定模式
- 考虑:在决定之前评估选项
- 研究:从来源收集信息
- 验证:检查条件或数据完整性
- 总结:将信息浓缩到关键点
- 决定:根据标准做出选择
- 提取:从内容中提取特定信息
- 作曲:生成新内容
控制流程
- 分支:条件执行路径
- 循环:迭代项目或条件
- 并行:同时执行多个步骤
- 等待输入:暂停用户输入
公用事业行动
- 变换:转换数据格式
- 检查点:保存工作流状态
- 通知:发送更新
- 断言:确保满足条件
- 重试:再次尝试上一步
🛠️ 可用工具
工作流管理
-
创建工作流 -创建新工作流
{ "workflow": { "name": "My Workflow", "description": "What it does", "goal": "Desired outcome", "steps": [...] } } -
list_workflows -列出所有具有过滤功能的工作流
{ "filter": { "tags": ["automation"], "name_contains": "review" }, "sort": { "field": "created_at", "order": "desc" } } -
get_workflow -检索特定工作流
{ "id": "workflow-uuid" } -
update_workflow -修改现有工作流
{ "id": "workflow-uuid", "updates": { "description": "Updated description" }, "increment_version": true } -
删除工作流 -软删除(可恢复)
{ "id": "workflow-uuid" } -
start_workflow -启动工作流执行会话
{ "id": "workflow-uuid", "inputs": { "param1": "value1" } }返回第一步的执行指令和execution_id。
-
运行工作流步骤 -执行工作流中的下一步
{ "execution_id": "execution-uuid", "step_result": "result from previous step", "next_step_needed": true }在完成每个步骤后调用此命令以继续完成工作流。
-
get_workflow_versions -列出工作流的所有可用版本
{ "workflow_id": "workflow-uuid" }返回用于版本历史跟踪的所有已保存版本的列表。
-
回滚工作流程 -将工作流回滚到以前的版本
{ "workflow_id": "workflow-uuid", "target_version": "1.0.0", "reason": "Reverting breaking changes" }将以前的版本还原为活动工作流。
🔄 逐步执行
工作流系统支持交互式、分步执行,类似于顺序思维工具:
- 启动工作流 随着
start_workflow-返回第一步指令 - 执行该步骤 遵循提供的说明
- 继续下一步 随着
run_workflow_step,通过:- 这
execution_id从开始工作流程 - 任何
step_result从当前步骤开始 next_step_needed: true继续(或假提前结束)
- 这
- 重复 直到工作流完成
每一步都提供:
- 明确的操作指南
- 当前变量状态
- 预期输出格式
- 下一步指导
模板变量
工作流系统支持使用模板变量替换 {{variable}} 语法:
- IN参数:
"path": "output_{{format}}.txt"→"path": "output_csv.txt" - 在描述中:
"Processing {{count}} records"→"Processing 100 records" - 在提示中:
"Enter value for {{field}}"→"Enter value for email" - 在转型中:变量会自动替换
模板变量是从当前工作流会话变量中解析出来的,包括:
- 提供的初始输入
start_workflow - 通过以下方式保存前一步骤的结果
save_result_as - 工作流执行过程中设置的任何变量
🎯 依赖关系管理和性能优化
工作流系统包括高级功能,可最大限度地减少令牌使用并提高复杂工作流的性能:
基于依赖关系的变量过滤
控制每个步骤可见的变量,以大幅减少上下文大小:
{
"name": "Optimized Workflow",
"strict_dependencies": true, // Enable strict mode
"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": [] // In strict mode, sees NO previous variables
},
{
"id": 3,
"action": "compose",
"dependencies": [2], // Only sees 'summary' from step 2
"save_result_as": "report"
},
{
"id": 4,
"action": "validate",
"show_all_variables": true, // Override to see everything
"save_result_as": "validation"
}
]
}
工作流级别设置
strict_dependencies(布尔值,默认值:false)false:没有依赖关系的步骤可以查看所有变量(向后兼容)true:没有依赖关系的步骤看不到变量(必须显式声明)
步骤级别设置
-
dependencies(步骤ID数组)- 列出此步骤需要哪些先前步骤的输出
- 步骤仅查看所列步骤的输出和工作流输入
- 严格模式下的空数组表示没有可见变量
-
show_all_variables(布尔值)- 覆盖需要完全可见性的特定步骤
- 可用于验证或调试步骤
性能特点
-
差异状态更新:仅显示已更改的变量
+ variable_name:新增变量~ variable_name:修改的变量- 未更改的变量不显示
-
逐步加载:仅显示接下来的3个步骤
- 减少长工作流的上下文
- 显示剩余的“…和X步”
-
选择性变量显示:基于依赖关系
- 大大减少了具有冗长输出的工作流的令牌
- 在内部保持完整状态以进行分支/重试
令牌优化的最佳实践
- 使用
strict_dependencies: true适用于具有大量中间输出的工作流 - 明确声明依赖关系 尽量减少可变能见度
- 尽早放置详细输出 在工作流中,并在后续步骤中过滤掉它们
- 使用有意义的变量名 明确依赖关系
- 组相关步骤 尽量减少交叉依赖
示例:带过滤的数据处理
{
"name": "Large Data Processing",
"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": "Extract key metrics only",
"dependencies": [1], // Only sees raw_data
"save_result_as": "metrics"
},
{
"id": 3,
"action": "analyze",
"criteria": "Identify trends and anomalies",
"dependencies": [2], // Only sees metrics, not raw_data
"save_result_as": "analysis"
},
{
"id": 4,
"action": "compose",
"criteria": "Create executive summary",
"dependencies": [2, 3], // Sees metrics and analysis only
"save_result_as": "report"
}
]
}
在这个例子中:
- 步骤2处理大量原始数据,但仅输出关键指标
- 步骤3在不查看大量原始数据的情况下分析指标
- 步骤4仅根据指标和分析创建报告
- 通过过滤掉冗长的中间数据,最大限度地减少了令牌的使用
📚 示例工作流
代码审查工作流程
分析代码质量,识别问题,并提供改进建议。
- 样本数据:
/workflows/examples/sample-data/sample-code-for-review.js
数据处理管道
ETL工作流,包括验证、质量检查和条件分支。
- 样本数据:
/workflows/examples/sample-data/sample-data.csv
研究助理
收集信息,验证来源,并生成全面的报告。
简单文件处理器
显示文件操作、分支和转换的基本示例。
请参阅 /workflows/examples 完整工作流定义的目录。
📁 手动工作流导入
您可以通过将JSON文件放置在import目录中手动添加工作流:
- 导航至
~/.workflows-mcp/imports/ - 将您的工作流JSON文件放在那里(任何以结尾的文件名
.json) - 启动或重新启动MCP服务器
- 工作流将通过以下方式自动导入:
- 如果缺少或无效,则分配新的UUID
- 如果不存在,则创建元数据
- 原始文件已移动到
imports/processed/成功导入后
工作流文件结构示例:
{
"name": "My Custom Workflow",
"description": "A manually created workflow",
"goal": "Accomplish something specific",
"version": "1.0.0",
"steps": [
{
"id": 1,
"action": "tool_call",
"description": "First step",
"tool_name": "example_tool",
"parameters": {}
}
]
}
🏗️ 建筑
workflows-mcp/
├── src/
│ ├── types/ # TypeScript interfaces and schemas
│ ├── services/ # Core services (storage, validation)
│ ├── utils/ # Utility functions
│ └── index.ts # MCP server implementation
├── workflows/
│ └── examples/ # Example workflows
│ └── sample-data/ # Sample data files for testing
└── tests/ # Test suite
🧪 发展
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
📝 更新日志
v0.3.3(最新版本)
- ⚡ 添加了基于依赖关系的变量过滤,用于令牌优化
- ✨ 添加
strict_dependencies显式变量控制的工作流标志 - ✨ 添加
dependencies用于选择性变量可见性的数组到步骤 - ✨ 添加
show_all_variables需要时,可实现完全可见性的步进覆盖 - 🎯 已实现差异状态更新(仅显示更改的变量)
- 📊 添加了逐步加载(仅显示接下来的3个步骤)
- 🐛 修复了update_workflow工具中的UUID验证错误
- 📝 添加了明确的说明,以防止在工作流执行过程中出现注释
v0.3.0
- ✨ 添加了具有自动版本历史记录的工作流版本控制
- ✨ 添加
get_workflow_versions列出所有版本的工具 - ✨ 添加
rollback_workflow恢复以前版本的工具 - 📁 版本历史记录存储在
~/.workflows-mcp/versions/
v0.2.1
- ✨ 添加了模板变量分辨率(
{{variable}}语法) - ✨ 修复了正确处理条件步骤的分支逻辑
- ✨ 增强的create_workflow工具,具有全面的嵌入式文档
- 🐛 修复了ES模块导入问题
- 📁 使用示例数据文件夹改进了文件组织
v0.2.0版本
- ✨ 逐步执行工作流
- ✨ 添加
start_workflow和run_workflow_step工具 - ✨ 工作流状态的会话管理
- 🔄 替换
run_workflow交互式执行
v0.1.0
- 🎉 初始版本
- ✨ 核心工作流引擎
- ✨ 16种动作类型
- ✨ 导入/导出功能
- ✨ 示例工作流
🔮 路线图
- [x] 核心工作流引擎
- [x] 基本动作类型
- [x] 工作流验证
- [x] 示例工作流
- [x] 逐步执行
- [x] 变量插值
- [x] 分支逻辑
- [x] 进出口系统
- []高级错误处理和重试逻辑
- []循环和并行执行
- []工作流市场
- []可视化工作流生成器
- []性能优化
- [x] 工作流版本控制和回滚
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
建立在 模型上下文协议 Anthropic的规范。
