mcpField
W
Workflow Generator

Workflow Generator

本地服务
github.com/askuma开发工具06 天前更新

关于 Workflow Generator

Workflow Generator 扫描代码库并生成 WORKFLOW.html,面向希望查看系统结构和并发瓶颈的开发者。它覆盖多种语言,输出依赖图及容量静态分析估算,并可叠加访问日志数据。

主要功能

  1. 01扫描多语言项目并生成 HTML 报告
  2. 02绘制架构、数据流与代码依赖图
  3. 03估算并发上限和吞吐瓶颈
  4. 04按目录聚合大型项目图表
  5. 05叠加访问日志并生成 k6 脚本

适用场景

  1. 01快速了解陌生代码库的组件关系
  2. 02定位吞吐量限制及潜在瓶颈
  3. 03用访问日志对静态估算进行核验

MCP 相关

MCP 服务提供 generate_workflow 工具以扫描项目并写入 WORKFLOW.html,以及 analyze_workflow 工具以返回结构化 JSON 摘要。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"askuma-workflow-generator": {
"command": "uvx",
"args": [
"workflow-generator-mcp"
]
}
}
}
启动命令uvx workflow-generator-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiworkflow-generator-mcp0.5.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

workflow-generator

扫描任意项目并生成 WORKFLOW.html——一张深色模式的可视化系统图,展示每个组件、它们之间的通信方式,以及实际吞吐量上限。

支持 Python、Node.js、Go、Java、Rust、Ruby 和混合项目。核心扫描器无需外部依赖。 不会扫描 vendored 和生成的目录(node_modules、venv、site-packages、dist 等), 并且容量数值会明确标注为静态分析估算值。

在线演示 →——基于 fastapi/full-stack-fastapi-template 生成,未经修改。

workflow-generator 对 fastapi/full-stack-fastapi-template 执行分析,从 pip install 到生成的图表

(真实的 CLI 输出,未经脚本处理——如果不想自动播放,可查看静态截图)

生成内容

每个生成的页面都包含:

区域内容
统计行Worker · 并发 I/O 上限 · 信号量限制 · 速率限制 · 实际吞吐量
架构图分层流程:外部来源 → 网关 → API → 队列 → AI → 存储
数据流卡片写入路径、读取/查询路径、后台任务——根据检测结果推断
并发能力表每一层:模型 · 上限 · 限制因素
瓶颈分析按 CRITICAL → LOW 排序,并附带缓解建议
代码库依赖关系图力导向的模块/导入关系图——点击节点可聚焦其相邻节点,悬停可查看文件详情。导入方向的边与实际观察到的流量明确区分(见下文)
引导式导览突出显示每个区域的分步讲解;首次打开报告时自动显示,也可随时点击 ? 按钮重新播放
代码库依赖关系图

每个源文件(Python、JS/TS、Go、Java、Rust、Ruby)都会成为一个节点;每个实际导入都会成为一条边——通过适合相应语言的解析器解析(Python 使用 ast 模块,JS/TS/Go/Java/Rust/Ruby 使用正则表达式),而不是靠猜测。与已检测到的组件(LLM 调用、数据库客户端、队列)相匹配的文件也会连接到相应组件,让你准确看到哪些文件在与 Redis、OpenAI 等交互。大型仓库(350 个以上文件)会自动聚合为目录级节点,以保持图表清晰;可使用 --graph-detail files 或 --graph-detail dirs 覆盖此设置。

测试文件(tests/、test_*.py、conftest.py、*.spec.ts、*_test.go 等)会在下方单独显示为 测试图,展示每项测试会访问哪些模块和服务。夹具和测试替身会列出它们所测试的每项服务,因此将它们放入主图会让服务边淹没真实的依赖结构。

两个部分都提供 流程 | 图表 切换,且共用相同的节点和边。流程(默认适用于不超过 80 个节点的图)是从左到右的分层图:各列表示从源头(HTTP 入口以及没有被导入的文件)开始的依赖深度,每个检测到的服务在最后一列中都有自己的节点,导入循环则以虚线绘制。图表是力导向视图。移动的圆点会显示双向数据流:实心圆点表示调用/请求,空心圆点表示返回/响应。在边数超过 60 条的图中,只有被点击或悬停的节点路径会播放动画。搜索、“隐藏孤立节点”和所选节点在两个视图中共用。

较旧的分层 完整系统架构 图默认处于折叠状态,因为架构图涵盖了相同内容。

默认情况下,图表只显示 代码 所表达的内容(导入方向、静态的“此文件调用 Redis”),这虽然真实,但不等同于实际流量。传入 --access-log /path/to/access.log(任何 combined/common 日志格式),即可在 HTTP 入口边上叠加实际观测到的请求数——生成的报告还会附带一个可直接运行的 k6 负载测试脚本,覆盖最多 5 条检测到的路由,这样就可以通过真实测量来验证“实际吞吐量”,而不是只依赖静态分析估算。

检测内容

类别示例
API 框架FastAPI、Flask、Django、Express、Nest.js、Gin
网关nginx、Caddy、Traefik(含速率限制和 worker_connections)
LLM 提供商OpenAI、Anthropic Claude、Cohere、AWS Bedrock
向量存储Qdrant、Pinecone、Weaviate、ChromaDB、pgvector、FAISS、Milvus
数据库PostgreSQL、MySQL、MongoDB、SQLite、Redis
队列Celery、BullMQ、Kafka、RabbitMQ、RQ、AWS SQS
异步原语asyncio.Semaphore、run_in_executor、asyncio.gather、asyncio.Lock
工作进程--workers N(uvicorn/gunicorn)、replicas:(docker-compose)、PM2 实例
外部来源Jira、Azure DevOps、Slack、GitHub、Stripe、Salesforce、Twilio
评估TruLens、RAGAS、LangSmith

安装

pip(CLI + MCP 服务)
pip install workflow-generator-mcp

workflow-generator . WORKFLOW.html       # CLI: scan and write the report
workflow-generator-mcp                    # stdio MCP server

安装好 pip 后,任何 MCP 主机配置都可以简化为:

{
  "mcpServers": {
    "workflow-generator": { "command": "workflow-generator-mcp" }
  }
}
Claude Code(技能)
mkdir -p ~/.claude/skills
git clone https://github.com/askuma/workflow-generator.git ~/.claude/skills/workflow-generator

然后,在任意 Claude Code 会话中:

/workflow-generator
/workflow-generator /path/to/project
MCP 服务(Claude Desktop、VS Code、Cursor、Zed、Windsurf、Continue)

1. 安装依赖:

pip install mcp

2. 添加到 MCP 主机配置中(将 ~ 替换为实际的主目录路径):

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(Mac)
%APPDATA%\Claude\claude_desktop_config.json(Windows)

{
  "mcpServers": {
    "workflow-generator": {
      "command": "python3",
      "args": ["~/.claude/skills/workflow-generator/mcp/server.py"]
    }
  }
}
VS Code

.vscode/mcp.json

{
  "servers": {
    "workflow-generator": {
      "type": "stdio",
      "command": "python3",
      "args": ["~/.claude/skills/workflow-generator/mcp/server.py"]
    }
  }
}
Cursor

~/.cursor/mcp.json

{
  "mcpServers": {
    "workflow-generator": {
      "command": "python3",
      "args": ["~/.claude/skills/workflow-generator/mcp/server.py"]
    }
  }
}
Zed

.zed/settings.json

{
  "context_servers": {
    "workflow-generator": {
      "command": {
        "path": "python3",
        "args": ["~/.claude/skills/workflow-generator/mcp/server.py"]
      }
    }
  }
}
Windsurf

~/.windsurf/mcp_config.json

{
  "mcpServers": {
    "workflow-generator": {
      "command": "python3",
      "args": ["~/.claude/skills/workflow-generator/mcp/server.py"]
    }
  }
}

3. 重启工具,然后询问:

generate a workflow diagram for this project
how many concurrent requests can this handle?
show me the system architecture

提供的 MCP 工具:

  • generate_workflow — 扫描项目,写入 WORKFLOW.html,并可选择在浏览器中打开
  • analyze_workflow — 返回结构化 JSON 摘要(不写入文件)
命令行(独立运行)

除了 Python 3.8+,无需安装其他内容:

python3 ~/.claude/skills/workflow-generator/scripts/analyze.py . ~/WORKFLOW.html
# then open ~/WORKFLOW.html

可选标志:

--access-log /path/to/access.log   # overlay real request counts onto the dependency graph
--graph-detail auto|files|dirs     # force file-level or directory-level graph nodes (default: auto)

输出示例(终端)

Written: /your/project/WORKFLOW.html
Framework: FastAPI · Workers: 8 · Concurrent I/O: ~800
Practical throughput: ~50–200 req/min
Bottleneck: OpenAI (LLM latency 3–30s per call)
Gateway: nginx · 2 rate limit zone(s)
LLM: OpenAI · eval: TruLens RAG Triad
Storage: Qdrant, Redis
External sources: Jira, Azure DevOps, Slack

仓库结构

workflow-generator/
├── SKILL.md                        ← Claude Code skill definition
├── INSTALL.md                      ← detailed per-platform install guide
├── workflow_generator_mcp/
│   ├── analyze.py                  ← core scanner + HTML renderer (stdlib only)
│   └── server.py                   ← MCP stdio server (package form)
├── scripts/
│   └── analyze.py                  ← thin compatibility shim -> workflow_generator_mcp/analyze.py
├── tests/                          ← pytest suite for the scanner
├── mcp/
│   ├── server.py                   ← MCP stdio server
│   └── requirements.txt            ← pip install mcp
└── copilot/
    ├── index.js                    ← GitHub Copilot Extension (Express)
    ├── package.json
    └── openai_function.json

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。