un907/archtracker-mcp

GitHub: un907/archtracker-mcp

面向AI驱动开发的架构与依赖追踪器,帮助开发团队理解代码修改的连锁影响,支持多层架构分析和CI流程集成。

Stars: 0 | Forks: 0

MCP Compatible npm version License Node.js CI

archtracker-mcp

面向 AI 驱动开发的架构与依赖追踪器
MCP Server + CLI + Web Viewer + Claude Code Skills

快速开始功能特性多层架构Web 查看器MCP 工具CLI日本語

## 为什么选择 archtracker? 当 AI agents 修改代码时,它们**会忽略连锁影响**: | 问题 | 不使用 archtracker | 使用 archtracker | |---------|-------------------|------------------| | Agent 修改了 `auth.ts` | 不知道有 12 个文件依赖于它 | 立即看到所有 12 个受影响的文件 | | 重构时文件重命名 | AI 在下次会话中引用旧路径 | `context` 命令提供当前有效路径 | | 添加了新依赖 | 无法看到耦合度的增加 | Diff 报告标记出架构变更 | | PR 审查 | 手动追踪依赖关系 | CI 自动检查架构偏移 | | 多服务项目 | 无法跨边界查看 | 支持层级感知分析与跨层链接检测 | **archtracker-mcp** 提供依赖分析、快照比对、影响模拟和交互式可视化 —— 所有功能均可通过 MCP tools、CLI、Web UI 或 Claude Code Skills 访问。 ## 功能特性 - **依赖图谱分析** — 基于正则的静态分析,支持 **13 种语言** (JS/TS, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala) - **多层架构** — 将多个服务/层级作为统一图谱分析,支持跨层连接检测 (v0.5.0 新增) - **交互式 Web 查看器** — 力导向图与凸包层级分组,层级图,以及基于 D3.js 的差异视图 - **影响模拟** — 点击任意文件可视化其传递性依赖项 (BFS 遍历) - **快照比对** — 保存架构快照并随时间检测偏移 - **MCP Server** — 通过 Model Context Protocol 为 Claude Code / AI agents 提供 5 个工具 - **Claude Code Skills** — 6 个斜杠命令 (`/arch-check`, `/arch-snapshot`, `/arch-serve` 等) - **CI 集成** — `--ci` 模式 + 自动生成 GitHub Actions 工作流 - **双语支持** — 完整支持英语/日语 (从 `LANG` 环境变量自动检测) - **深色/浅色主题** — 设置通过 localStorage 持久化 - **SVG/PNG 导出** — 导出依赖图谱用于文档 ## 快速开始 ### 安装 ``` npm install -g archtracker-mcp ``` ### 1. 分析您的项目 ``` archtracker analyze --target src ``` ### 2. 保存基线快照 ``` archtracker init --target src ``` ### 3. 启动 Web 查看器 ``` archtracker serve --target src --watch # => http://localhost:3000 ``` ### 4. 检查架构偏移 ``` archtracker check --target src ``` ## 多层架构 对于具有多个服务或层级的项目(例如前端 + 后端 + 共享库),archtracker 可以将其作为统一图谱进行分析。 ### 设置 在项目根目录创建 `.archtracker/layers.json`: ``` { "version": "1.0", "layers": [ { "name": "Frontend", "targetDir": "frontend/src", "language": "javascript", "color": "#58a6ff", "description": "React Web App" }, { "name": "Backend", "targetDir": "backend/app", "language": "python", "color": "#3fb950", "description": "FastAPI Server" } ], "connections": [ { "fromLayer": "Frontend", "fromFile": "api/client.ts", "toLayer": "Backend", "toFile": "main.py", "type": "api-call", "label": "REST API" } ] } ``` 或生成模板: ``` archtracker layers init ``` ### 使用 当 `layers.json` 存在时,所有命令自动使用多层模式: ``` archtracker analyze --root . # Analyzes all layers archtracker serve --root . --watch # Web viewer with layer tabs and convex hulls archtracker check --root . # Cross-layer diff check ``` 每一层都使用其独立的语言设置进行分析,然后合成为带有前缀路径的统一图谱(例如 `Backend/worker.py`)。 ### 带层级的 Web 查看器 - **层级标签**:多选切换以聚焦特定层级(Shift+点击进入独立模式) - **凸包分组**:每一层都用彩色边界线进行视觉分组 - **跨层链接**:显示层级间连接的虚线(可在设置中切换) - **Layer Cohesion 滑块**:调整节点在层级内的聚集紧密程度 - **差异高亮**:包含变更文件的层级边界会被高亮显示 ## Web 查看器 交互式 Web 查看器提供三种可视化模式: ### 图谱视图 (力导向) ![Graph View](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/1b671e6fbb052138.png) - 拖拽、缩放并点击节点以探索依赖关系 - 点击节点以**固定**其高亮 —— 悬停其他节点进行比较 - 使用底部按钮按目录过滤,使用顶部标签按层级过滤 - 调整重力、层级凝聚力、节点大小、字体大小、链接透明度 - **影响模式**:点击任意文件查看所有受传递影响的文件 ![Impact Simulation](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f032042027052140.png) ### 层级视图 (DAG 布局) ![Hierarchy View](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/182b7c7d64052143.png) - 分层自上而下的布局,显示依赖深度 - 点击固定高亮及详情面板 - 支持层级过滤及紧凑重排 ### 差异视图 ![Diff View](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4d2b04935d052145.png) - 架构变更的颜色编码可视化 - 绿色 = 新增,红色 = 删除,黄色 = 修改,蓝色 = 受影响 - 分组显示并高亮变更层级的边界 - 当存在用于比较的快照时可用 ``` # 文件更改时自动重载启动 archtracker serve --target src --port 3456 --watch ``` ## MCP Tools 将 archtracker 作为 MCP server 添加到 Claude Code 或任何兼容 MCP 的 AI agent: ``` { "mcpServers": { "archtracker": { "command": "npx", "args": ["-y", "archtracker-mcp"] } } } ``` | Tool | 描述 | |------|-------------| | `generate_map` | 分析依赖图谱并返回原始 JSON (用于程序化调用) | | `analyze_existing_architecture` | 综合性的人类可读分析报告 | | `save_architecture_snapshot` | 保存快照到 `.archtracker/snapshot.json` | | `check_architecture_diff` | 将快照与当前代码进行比对,显示影响 | | `get_current_context` | 获取有效文件路径和架构摘要 | | `search_architecture` | 按路径、影响、关键度或孤立状态搜索 | 当 `.archtracker/layers.json` 存在时,所有工具自动检测多层项目。 ## CLI Commands ``` archtracker init [options] Generate initial architecture snapshot archtracker analyze [options] Comprehensive analysis report archtracker check [options] Compare snapshot with current code archtracker context [options] Show architecture context (for AI sessions) archtracker serve [options] Launch interactive web viewer archtracker ci-setup [options] Generate GitHub Actions workflow archtracker layers init Create template layers.json archtracker layers list List configured layers Options: -t, --target Target directory (default: "src") -r, --root Project root (default: ".") -l, --language Target language (auto-detected if omitted) -p, --port Port for web viewer (default: 3000) -w, --watch Watch for file changes and auto-reload -e, --exclude Exclude patterns (regex) -n, --top Top N components in analysis (default: 10) --save Save snapshot after analysis --ci CI mode: exit 1 if review needed --json JSON output (context command) --lang Language: en | ja (auto-detected from LANG) ``` ## Claude Code Skills 将 `skills/` 目录复制到您的项目: ``` cp -r node_modules/archtracker-mcp/skills/ .claude/skills/ ``` | Skill | 描述 | |-------|-------------| | `/arch-analyze` | 运行综合性架构分析 | | `/arch-check` | 将快照与当前代码进行比对 | | `/arch-snapshot` | 保存当前架构快照 | | `/arch-context` | 使用有效路径初始化 AI 会话 | | `/arch-search` | 搜索架构 (路径、影响、关键、孤立) | | `/arch-serve` | 在浏览器中启动交互式 Web 查看器 | 所有 Skill 均自动支持多层项目。 ## 编程 API ``` import { analyzeProject, analyzeMultiLayer, saveSnapshot, loadSnapshot, computeDiff, formatDiffReport, formatAnalysisReport, } from "archtracker-mcp"; // Single-directory analysis const graph = await analyzeProject("src", { exclude: ["__tests__"] }); // Multi-layer analysis const layers = [ { name: "Frontend", targetDir: "frontend/src", language: "javascript" }, { name: "Backend", targetDir: "backend/app", language: "python" }, ]; const multi = await analyzeMultiLayer(".", layers); // Snapshot const snapshot = await saveSnapshot(".", graph); // Diff const prev = await loadSnapshot("."); if (prev) { const diff = computeDiff(prev.graph, graph); console.log(formatDiffReport(diff)); } ``` ## CI / CD ### 自动生成 GitHub Actions 工作流 ``` archtracker ci-setup --target src # 创建 .github/workflows/arch-check.yml ``` ### 手动设置 ``` # .github/workflows/arch-check.yml name: Architecture Check on: pull_request: branches: [main] jobs: arch-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci - run: npx archtracker check --target src --ci ``` ## i18n 语言从 `LANG` / `LC_ALL` 环境变量自动检测: ``` LANG=ja_JP.UTF-8 archtracker analyze # Japanese output archtracker --lang ja check # Explicit Japanese ``` Web 查看器也支持通过设置面板切换语言。 ## 系统要求 - **Node.js** >= 18.0.0 支持的语言: JavaScript/TypeScript, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala ## 许可证 [MIT](LICENSE) © un907

archtracker-mcp (日本語)

AI駆動開発のためのアーキテクチャ & 依存関係トラッカー
MCP サーバー + CLI + Web ビューア + Claude Code Skills

## なぜ archtracker? AI エージェントがコードを修正する際、**波及的な影響を見逃します**: | 問題 | archtracker なし | archtracker あり | |------|-----------------|-----------------| | `auth.ts` を変更 | 12ファイルが依存していることを知らない | 影響を受ける全12ファイルを即座に表示 | | リファクタでファイル名変更 | 次のセッションで古いパスを参照 | `context` コマンドで現在の有効パスを取得 | | 新しい依存関係を追加 | 結合度の増加が見えない | 差分レポートがアーキテクチャ変更を検出 | | PRレビュー | 手動で依存関係を追跡 | CIが自動でアーキテクチャドリフトをチェック | | マルチサービス構成 | サービス境界を跨ぐ影響が見えない | レイヤー対応分析でクロスレイヤー接続を検出 | **archtracker-mcp** は依存関係分析、スナップショット差分、影響シミュレーション、インタラクティブな可視化を提供します。MCP ツール、CLI、Web UI、Claude Code Skills からアクセス可能です。 ## 機能 - **依存関係グラフ分析** — 正規表現ベースの静的解析、**13言語**対応(JS/TS, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala) - **マルチレイヤーアーキテクチャ** — 複数サービス/レイヤーを統合グラフとして分析、クロスレイヤー接続の自動検出(v0.5.0 新機能) - **インタラクティブ Web ビューア** — D3.js による力学モデルグラフ(凸包レイヤーグループ表示)、階層図、差分ビュー - **影響シミュレーション** — ファイルをクリックして推移的な被依存ファイルを可視化(BFS探索) - **スナップショット差分** — アーキテクチャスナップショットを保存し、ドリフトを検出 - **MCP サーバー** — Model Context Protocol 経由で5つのツールを提供 - **Claude Code Skills** — 6つのスラッシュコマンド(`/arch-check`、`/arch-snapshot`、`/arch-serve` 等) - **CI 統合** — `--ci` モード + GitHub Actions ワークフロー自動生成 - **多言語対応** — 日本語・英語完全対応(`LANG` 環境変数から自動検出) - **ダーク/ライトテーマ** — localStorage で設定を永続化 - **SVG/PNG エクスポート** — ドキュメント用にグラフをエクスポート ## 快速开始 ### 安装 ``` npm install -g archtracker-mcp ``` ### 1. プロジェクトを分析 ``` archtracker analyze --target src ``` ### 2. ベースラインスナップショットを保存 ``` archtracker init --target src ``` ### 3. Web ビューアを起動 ``` archtracker serve --target src --watch # => http://localhost:3000 ``` ### 4. 检查架构漂移 ``` archtracker check --target src ``` ## 多层架构 フロントエンド + バックエンド + 共有ライブラリなど、複数のサービスやレイヤーを持つプロジェクトを統合的に分析できます。 ### 设置 プロジェクトルートに `.archtracker/layers.json` を作成: ``` { "version": "1.0", "layers": [ { "name": "Frontend", "targetDir": "frontend/src", "language": "javascript", "color": "#58a6ff", "description": "React Web App" }, { "name": "Backend", "targetDir": "backend/app", "language": "python", "color": "#3fb950", "description": "FastAPI Server" } ], "connections": [ { "fromLayer": "Frontend", "fromFile": "api/client.ts", "toLayer": "Backend", "toFile": "main.py", "type": "api-call", "label": "REST API" } ] } ``` テンプレートの自動生成: ``` archtracker layers init ``` ### 使い方 `layers.json` が存在する場合、全コマンドが自動的にマルチレイヤーモードで動作します: ``` archtracker analyze --root . # 全レイヤーを分析 archtracker serve --root . --watch # レイヤータブ・凸包表示付き Web ビューア archtracker check --root . # クロスレイヤー差分チェック ``` 各レイヤーは独立した言語設定で個別に分析され、プレフィックス付きパス(例: `Backend/worker.py`)で統合グラフにマージされます。 ### Web ビューアでのレイヤー表示 - **レイヤータブ**: 複数選択トグルで特定レイヤーにフォーカス(Shift+クリックでソロモード) - **凸包グループ**: 各レイヤーが色付きの境界で視覚的にグループ化 - **クロスレイヤーリンク**: レイヤー間接続を点線で表示(設定で切替可能) - **Layer Cohesion スライダー**: レイヤー内ノードの凝集度を調整 - **差分ハイライト**: 変更を含むレイヤーの境界がハイライト ## Web 查看器 インタラクティブな Web ビューアは3つの可視モードを提供します: ### グラフビュー(力学モデル) ![グラフビュー](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/1b671e6fbb052138.png) - ドラッグ、ズーム、クリックでノードの依存関係を探索 - ノードをクリックでハイライトを**ピン固定** — 他のノードをホバーして比較 - 下部のピルでディレクトリごと、上部のタブでレイヤーごとにフィルタリング - 重力、レイヤー凝集力、ノードサイズ、フォントサイズ、リンク透明度を調整可能 - **影響モード**: ファイルをクリックして推移的に影響を受ける全ファイルを表示 ![影響シミュレーション](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f032042027052140.png) ### 階層ビュー(DAGレイアウト) ![階層ビュー](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/182b7c7d64052143.png) - 依存の深さを示すレイヤー型トップダウンレイアウト - クリックでピン固定 + 詳細パネル - レイヤー対応フィルタリング + コンパクト再配置 ### 差分ビュー ![差分ビュー](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4d2b04935d052145.png) - アーキテクチャ変更の色分け可視化 - 緑=追加、赤=削除、黄=変更、青=影響 - 変更を含むレイヤー境界のハイライト表示 - スナップショットが存在する場合に利用可能 ``` # ファイル変更の自動リロード付きで起動 archtracker serve --target src --port 3456 --watch ``` ## MCP Tools archtracker を MCP サーバーとして Claude Code や MCP 互換 AI エージェントに追加: ``` { "mcpServers": { "archtracker": { "command": "npx", "args": ["-y", "archtracker-mcp"] } } } ``` | ツール | 説明 | |--------|------| | `generate_map` | 依存関係グラフを解析し構造化JSONで返す(プログラム用) | | `analyze_existing_architecture` | 包括的な人間向け分析レポート | | `save_architecture_snapshot` | `.archtracker/snapshot.json` にスナップショットを保存 | | `check_architecture_diff` | スナップショットと現在のコードを比較し影響を表示 | | `get_current_context` | 有効なファイルパスとアーキテクチャサマリーを取得 | | `search_architecture` | パス、影響範囲、重要度、孤立ファイルで検索 | `.archtracker/layers.json` が存在する場合、全ツールがマルチレイヤーモードを自動検出します。 ## CLI Commands ``` archtracker init [options] 初期アーキテクチャスナップショットを生成 archtracker analyze [options] 包括的な分析レポート archtracker check [options] スナップショットと現在のコードを比較 archtracker context [options] アーキテクチャコンテキストを表示(AIセッション用) archtracker serve [options] インタラクティブ Web ビューアを起動 archtracker ci-setup [options] GitHub Actions ワークフローを生成 archtracker layers init テンプレート layers.json を作成 archtracker layers list 設定済みレイヤーを一覧表示 オプション: -t, --target 対象ディレクトリ(デフォルト: "src") -r, --root プロジェクトルート(デフォルト: ".") -l, --language 対象言語(省略時は自動検出) -p, --port Web ビューアのポート(デフォルト: 3000) -w, --watch ファイル変更の監視と自動リロード -e, --exclude 除外パターン(正規表現) -n, --top 分析の上位N件(デフォルト: 10) --save 分析後にスナップショットを保存 --ci CIモード: 要確認ファイルがあれば exit 1 --json JSON形式で出力(context コマンド) --lang 言語: en | ja(LANG から自動検出) ``` ## Claude Code Skills `skills/` ディレクトリをプロジェクトにコピー: ``` cp -r node_modules/archtracker-mcp/skills/ .claude/skills/ ``` | スキル | 説明 | |--------|------| | `/arch-analyze` | 包括的なアーキテクチャ分析を実行 | | `/arch-check` | スナップショットと現在のコードを比較 | | `/arch-snapshot` | 現在のアーキテクチャスナップショットを保存 | | `/arch-context` | 有効なファイルパスでAIセッションを初期化 | | `/arch-search` | アーキテクチャ検索(パス、影響、重要度、孤立) | | `/arch-serve` | インタラクティブ Web ビューアを起動 | 全スキルがマルチレイヤープロジェクトに自動対応します。 ## 编程 API ``` import { analyzeProject, analyzeMultiLayer, saveSnapshot, loadSnapshot, computeDiff, formatDiffReport, formatAnalysisReport, } from "archtracker-mcp"; // 単一ディレクトリ分析 const graph = await analyzeProject("src", { exclude: ["__tests__"] }); // マルチレイヤー分析 const layers = [ { name: "Frontend", targetDir: "frontend/src", language: "javascript" }, { name: "Backend", targetDir: "backend/app", language: "python" }, ]; const multi = await analyzeMultiLayer(".", layers); // スナップショット const snapshot = await saveSnapshot(".", graph); // 差分比較 const prev = await loadSnapshot("."); if (prev) { const diff = computeDiff(prev.graph, graph); console.log(formatDiffReport(diff)); } ``` ## CI / CD ### GitHub Actions ワークフローの自動生成 ``` archtracker ci-setup --target src # .github/workflows/arch-check.yml を生成 ``` ## 多言語対応 `LANG` / `LC_ALL` 環境変数から自動検出されます: ``` LANG=ja_JP.UTF-8 archtracker analyze # 日本語出力 archtracker --lang ja check # 明示的に日本語指定 ``` Web ビューアでも設定パネルから言語を切り替え可能です。 ## 動作要件 - **Node.js** >= 18.0.0 対応言語: JavaScript/TypeScript, Python, Rust, Go, Java, C/C++, C#, Ruby, PHP, Swift, Kotlin, Dart, Scala ## 贡献 [CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。 ## 许可证 [MIT](LICENSE) © un907
标签:AI驱动开发, Claude集成, GNU通用公共许可证, MCP服务器, MITM代理, Node.js, SOC Prime, Web查看器, 上下文感知, 云安全监控, 代码重构, 依赖管理, 开发工具, 影响分析, 暗色界面, 架构可视化, 架构追踪, 自动化攻击, 软件供应链, 静态分析