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 サーバーは、プロジェクトをスキャンして WORKFLOW.html を出力する generate_workflow と、構造化 JSON の概要を返す analyze_workflow を提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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、および複数の言語が混在するプロジェクトに対応しています。コアスキャナーには外部依存関係がありません。 ベンダー製および生成されたディレクトリ(node_modules、venv、site-packages、dist など)はスキャンされません。 また、容量の数値はすべて静的解析による推定値であることが明記されます。

ライブデモ → — 以下から生成されています: fastapi/full-stack-fastapi-template。変更は加えていません。

fastapi/full-stack-fastapi-template に対して workflow-generator を実行し、pip install から図の生成までを示す画面

(実際の CLI 出力、台本なし — 自動再生を避けたい場合は静止画のスクリーンショットをご覧ください)

生成される内容

生成されるすべてのページには、次の内容が含まれます:

セクション内容
統計行ワーカー数 · 同時 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 エントリポイントのエッジに実際に観測されたリクエスト数を重ねて表示できます。また、生成されるレポートには、検出された最大 5 つのルートを対象とする、すぐに実行できる k6 の負荷テストスクリプトが含まれます。これにより、「実用スループット」の数値を静的解析の推定値だけでなく、実測値と照らし合わせて確認できます。

検出対象

カテゴリ例
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。