Workflow Generator

io.github.askuma由 GitHub 帳號 askuma 發布v0.5.0更新於 Oct 26, 2026

Architecture diagram with concurrency capacity and bottleneck estimates from any codebase.

已驗證STDIO僅桌面開發者工具資料與分析

概覽

AI 產生的概覽

掃描本機程式碼庫並產生深色主題的 WORKFLOW.html 架構圖,含並行上限與瓶頸排序。

可以做什麼
  • 掃描專案並寫出 WORKFLOW.html 報告,或只回傳結構化 JSON 摘要而不寫檔
  • 辨識框架、閘道、LLM 供應商、向量資料庫、資料庫、佇列、非同步原語、worker 與外部資料來源
  • 依層級估算並行上限、限流與實用吞吐量,並列出排序後的瓶頸說明
  • 依實際 import 建立程式碼相依圖,另有獨立測試圖,支援流程檢視與力導向檢視
  • 可選擇疊加存取日誌中的實際請求量,並為偵測到的路由產生 k6 壓測腳本
適用情境
適合在接手陌生或既有專案時快速取得視覺化結構圖,或靜態估算整套技術堆疊能承受多少並行請求、瓶頸在哪裡。可用於容量規劃、架構審查或新人上手前的準備。
執行需求
以本機 stdio 程序在桌面端執行。需安裝 PyPI 套件 workflow-generator-mcp(Python 3.8+);核心掃描器只用標準函式庫,MCP 伺服器形式另需 mcp 套件。未宣告任何帳號、API 金鑰或環境變數。
安裝前請注意
產生工具會將 WORKFLOW.html 寫入專案,並可選擇在瀏覽器開啟。容量與吞吐數字為靜態分析估算而非實測;除非提供存取日誌,相依圖反映的是 import 方向而非實際流量。預設略過 vendored 與產生目錄。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Workflow Generator,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

workflow-generator

Scan any project and generate WORKFLOW.html — a dark-mode visual system diagram showing every component, how they talk to each other, and where your throughput ceiling actually is.

Works with Python, Node.js, Go, Java, Rust, Ruby, and mixed projects. No external dependencies for the core scanner. Vendored and generated directories (node_modules, venv, site-packages, dist, …) are never scanned, and capacity figures are clearly labeled as static-analysis estimates.

Live demo → — generated from fastapi/full-stack-fastapi-template, unmodified.

[Running workflow-generator against fastapi/full-stack-fastapi-template, from pip install to the generated diagram]

(real CLI output, unscripted — static screenshot if you'd rather not autoplay)

What it produces

Every generated page contains:

SectionWhat you get
Stat rowWorkers · Concurrent I/O ceiling · Semaphore limit · Rate limit · Practical throughput
Architecture diagramLayered flow: external sources → gateway → API → queues → AI → storage
Data flow cardsWrite path, read/query path, background jobs — inferred from what's detected
Concurrency tableEvery layer: model · ceiling · limiting factor
Bottleneck analysisRanked CRITICAL → LOW with mitigation notes
Codebase dependency graphForce-directed module/import graph — click a node to isolate its neighbors, hover for file details. Import-direction edges are clearly distinguished from real observed traffic (see below)
Guided tourSpotlight walkthrough of every section, shown automatically the first time a report is opened; replay anytime with the ? button

Codebase dependency graph

Every source file (Python, JS/TS, Go, Java, Rust, Ruby) becomes a node; every real import becomes an edge — resolved with a language-appropriate parser (Python's ast module, regex for JS/TS/Go/ Java/Rust/Ruby), not guessed. Files that match an already-detected component (an LLM call, a database client, a queue) get an edge to that component too, so you can see exactly which files talk to Redis, OpenAI, etc. Large repos (350+ files) are automatically aggregated into directory-level nodes so the graph stays readable; override with --graph-detail files or --graph-detail dirs.

Test files (tests/, test_*.py, conftest.py, *.spec.ts, *_test.go, …) get their own Test Graph section below the main one, showing which modules and services each test reaches. Fixtures and test doubles name every service they exercise, so keeping them in the main graph buries the real dependency structure under service edges.

Both sections have a Flow | Graph toggle over the same nodes and edges. Flow (the default up to 80 nodes) is a left-to-right layered diagram: columns are dependency depth from the sources (HTTP entry and files nothing imports), every detected service is its own node in the last column, and import cycles are drawn dashed. Graph is the force-directed view. Moving dots show data going both ways: a filled dot is the call/request, a hollow dot the return/response. On graphs with more than 60 edges, only the paths of the clicked or hovered node animate. Search, "hide isolated" and the selected node are shared between the two views.

The older layered Full System Architecture diagram is collapsed by default, since the Architecture Map covers the same ground.

By default the graph only shows what the code says (import direction, static "this file calls Redis"), which is honest but not the same as real traffic. Pass --access-log /path/to/access.log (any combined/common log format) to overlay real observed request counts onto the HTTP-entry edges — and the generated report includes a ready-to-run k6 load-test script covering up to 5 detected routes, so the "Practical throughput" number can be checked against a real measurement instead of only a static-analysis estimate.

What it detects

CategoryExamples
API frameworksFastAPI, Flask, Django, Express, Nest.js, Gin
Gatewaysnginx, Caddy, Traefik (with rate limits + worker_connections)
LLM providersOpenAI, Anthropic Claude, Cohere, AWS Bedrock
Vector storesQdrant, Pinecone, Weaviate, ChromaDB, pgvector, FAISS, Milvus
DatabasesPostgreSQL, MySQL, MongoDB, SQLite, Redis
QueuesCelery, BullMQ, Kafka, RabbitMQ, RQ, AWS SQS
Async primitivesasyncio.Semaphore, run_in_executor, asyncio.gather, asyncio.Lock
Workers--workers N (uvicorn/gunicorn), replicas: (docker-compose), PM2 instances
External sourcesJira, Azure DevOps, Slack, GitHub, Stripe, Salesforce, Twilio
EvaluationTruLens, RAGAS, LangSmith

Install

pip (CLI + MCP server)

bash
pip install workflow-generator-mcp
workflow-generator . WORKFLOW.html       # CLI: scan and write the reportworkflow-generator-mcp                    # stdio MCP server

With pip installed, any MCP host config reduces to:

json
{  "mcpServers": {    "workflow-generator": { "command": "workflow-generator-mcp" }  }}

Claude Code (skill)

bash
mkdir -p ~/.claude/skillsgit clone https://github.com/askuma/workflow-generator.git ~/.claude/skills/workflow-generator

Then in any Claude Code session:

/workflow-generator/workflow-generator /path/to/project

MCP server (Claude Desktop, VS Code, Cursor, Zed, Windsurf, Continue)

1. Install the dependency:

bash
pip install mcp

2. Add to your MCP host config (replace ~ with your actual home path):

Claude Desktop

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

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

.vscode/mcp.json

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

~/.cursor/mcp.json

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

.zed/settings.json

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

~/.windsurf/mcp_config.json

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

3. Restart your tool, then ask:

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

MCP tools exposed:

  • generate_workflow — scans project, writes WORKFLOW.html, optionally opens in browser
  • analyze_workflow — returns structured JSON summary (no file written)

Command line (standalone)

No install needed beyond Python 3.8+:

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

Optional flags:

bash
--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)

Example output (terminal)

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

Repo layout

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

License

MIT

來源:README.md,提交 034270e

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

2
  1. v0.5.0最新Oct 26, 2026
  2. v0.3.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分