mcpField
C
cssgraph

cssgraph

ローカル
github.com/mack-peng開発ツール26 週間前に更新

cssgraph について

cssgraphは、AIコーディングエージェント向けのローカルCSS解析コマンドラインツール兼MCPサーバーです。スタイルとコード参照の検索可能なグラフを作成し、ファイルを手作業でたどらずにカスケードや変更の影響を調べられます。

主な機能

  1. 01スタイルとコード参照をインデックス化
  2. 02セレクターのプロパティと上書きを確認
  3. 03classNameの参照元と影響を追跡
  4. 04カスケード経路と未使用セレクターを確認
  5. 05ファイル変更時にグラフを自動同期
  6. 06MCP設定とAgent Skillを導入

活用シーン

  1. 01CSSクラスの定義場所を特定
  2. 02セレクター変更の影響ファイルを確認
  3. 03JSXやテンプレート内のクラス参照を追跡
  4. 04CSSカスケードや未使用スタイルを調査

MCP 対応

cssgraphは、スタイル、参照元、カスケード、変更影響を検索・探索する13種類のツールをMCPクライアントに提供します。コマンドラインからMCP連携を設定し、Agent Skillを導入できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mack-peng-cssgraph": {
"command": "npx",
"args": [
"-y",
"cssgraph"
]
}
}
}
起動コマンドnpx -y cssgraph

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcssgraph0.6.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

cssgraph

AI コーディングエージェントのための CSS インテリジェンス

的確なスタイルコンテキスト · ツール呼び出しを削減 · より迅速な回答 · 100% ローカル

License: MIT Node.js npm version npm downloads GitHub stars

macOS Linux Windows


cssgraph を使う理由

AI エージェントが CSS を理解しようとするとき、たとえば .btn-primary の定義場所、含まれるプロパティ、それにカスケードするセレクター、そのクラスを参照する JSX コンポーネントなどを調べるには、時間のかかる方法が必要でした。ファイルを一つずつ grep、glob、Read で検索し、手作業でカスケードを再構築します。

cssgraph は、エージェントが必要とする正確なスタイルコンテキストを 1 回の呼び出しで提供します。 スタイルシートに含まれるすべての className、CSS プロパティ、変数、アットルールを事前に構築したナレッジグラフです。ファイルを探し回る代わりに、エージェントは質問を 1 つするだけで、プロパティ、上書き、詳細度、参照元、ファイル単位の影響範囲をすべて取得できます。


インストール

人間向け

このプロンプトをコピーして、LLM エージェント(Claude Code、Cursor、Codex など)に貼り付けてください。

Install and configure cssgraph by following the instructions here:
https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

または、インストールガイドをご覧ください。とはいえ、エージェントに任せるのがおすすめです。人間は設定を打ち間違えがちです。

LLM エージェント向け

インストールガイドを取得して、その手順に従ってください。

curl -s https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

クイックスタート

1. 初期化
npm i -g cssgraph
cd your-project
cssgraph init --workers 8

すべてのスタイルファイル(CSS、SCSS、Less、Sass)、JSX/TSX の className 参照、 CSS-in-JS、CSS Modules、およびビューテンプレート(ERB/Haml/HTML)をインデックス化し、すべての MCP ツールを利用可能にします。

--workers <n> を渡すと、並列解析スレッド数を指定できます(デフォルトは CPU コア数 - 1)。

Node.js >= 22.5.0 が必要です(node:sqlite のため)。

2. エージェントを接続する
cssgraph mcp-install

opencode、Claude Code、Cursor、Codex CLI、Gemini CLI、 Hermes Agent、Antigravity IDE、Kiro を自動検出して設定します。MCP サーバーの設定、指示ブロック、 および エージェントスキル(SKILL.md と references/pitfalls.md)を書き込みます。これにより、 各 cssgraph ツール 13 個を使うタイミング、ツールをワークフローとして連携させる方法、 避けるべき落とし穴をエージェントに教えます。

または、任意の MCP エージェントに手動で追加できます。

{
  "mcpServers": {
    "cssgraph": {
      "type": "stdio",
      "command": "cssgraph",
      "args": ["serve", "--mcp"]
    }
  }
}
3. 同期はもう不要

自動同期はデフォルトで有効です。MCP サーバーがプロジェクトを監視し、ファイルが変更されるたびにグラフを更新します。エージェントによるコードの編集中も、CSS ファイルの追加、変更、削除時も同様です。インデックスが古くなることはありません。


仕組み

┌───────────────────────────────────────────────────────────┐
│                      AI Agent                              │
│                                                           │
│  "What code files use .btn-primary?"                      │
│      calls cssgraph_rule — one tool call                  │
│                             │                             │
└─────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
┌───────────────────────────────────────────────────────────┐
│                  cssgraph MCP Server                       │
│                                                           │
│ rule · O(1) exact selector lookup · loose/strict impact   │
│ explore · properties + overrides + specificity + callers  │
│                             │                             │
│                             ▼                             │
│               SQLite knowledge graph                      │
│     classNames · properties · variables · at-rules        │
│            edges · FTS5 full-text search                  │
└───────────────────────────────────────────────────────────┘
  1. 抽出 — PostCSS が CSS/SCSS/Less/Sass を AST に解析します。CSS-in-JS(styled.div)、JSX の className 参照、テンプレートの class 属性は、.jsx/.tsx/.erb/.haml ファイルから抽出されます。
  2. 保存 — すべてのデータは、FTS5 全文検索を備えたローカルの SQLite データベース(.cssgraph/cssgraph.db)に保存されます。書き込み性能を高めるため、WAL モードとバッチコミットを使用します。高速化のため、一括読み込み中は FTS トリガーと一意インデックスの作成を延期します。
  3. グラフ — 関連するノードをエッジで接続します。contains(セレクター→プロパティ)、nests(親→子セレクター)、overrides(詳細度の高いセレクターが低いセレクターを上書き)、imports(ファイル→インポートされたファイル)、references(JSX/ビューのファイル→className、プロパティ→CSS 変数)。
  4. Git 優先のスキャン — git ls-files でファイルをすばやく検出します。Git 管理されていないプロジェクトでは、ファイルシステムの走査にフォールバックします。
  5. 並列解析 — ファイルをバッチ単位で Promise.all を介してワーカースレッドに振り分けます。解析は並行して完了し、正確性を保つため、結果はファイル順に書き出されます。
  6. 自動同期 — OS のネイティブなファイルイベントを監視し、デバウンス処理を行って差分を同期します。

CLI リファレンス

cssgraph init [path] [-w, --workers <n>]  # Initialize + build graph
cssgraph index [path] [-w, --workers <n>]  # Rebuild from scratch
cssgraph query <className>                 # Search for className selectors
cssgraph explore <query...>                # Full style context for a className
cssgraph details <selector>                # O(1) exact selector → file:line lookup
cssgraph rule <selector> [--strict]        # Selector impact: exact + loose/strict files
cssgraph impact-selector <selector>       # Code files affected by a selector
cssgraph impact <className>                # Blast radius of changing a className
cssgraph unused                            # Find unreferenced class selectors
cssgraph cascade <className>               # Visualize cascade path
cssgraph diagnose <className> [chain...]   # Static anchor diagnosis (height/scroll)
cssgraph property <query...>               # Search by CSS property value
cssgraph files [path]                      # Project style file tree
cssgraph status [path]                     # Index statistics
cssgraph sync [path]                       # Incremental update
cssgraph serve --mcp                       # Start MCP server
cssgraph mcp-install                       # Auto-wire to your AI agent (alias: install)
cssgraph skill-install                     # Install/update SKILL.md only (no MCP config changes)
cssgraph skill-uninstall                   # Remove SKILL.md only (no MCP config changes)
cssgraph mcp-uninstall                     # Remove from your AI agent (alias: uninstall)
cssgraph version                           # Print installed version
JSX とビューファイルのスキャン(デフォルト)

cssgraph は常に次のファイルをスキャンします。

  • JSX/TSX/JS/TS/ES6 — className 参照、CSS-in-JS、CSS Modules
  • ビューテンプレート — .erb、.haml、.html ファイル内の class="..." 属性と、Haml の .classname 省略記法

これにより、cssgraph_impact、cssgraph_callers、cssgraph_rule は、各 className を参照するコンポーネントファイルとテンプレートファイルの両方を追跡できます。

プロジェクト合計ファイル数初回インデックス作成ノードエッジ
小規模~50~15s~16K~50K
本番用モノレポ~11K~3-5m~780K~22M

MCP ツール

ツール目的
cssgraph_explore主なツール:className のスタイルコンテキスト全体(プロパティ、上書き、詳細度、呼び出し元)を表示
cssgraph_search名前で className セレクターを検索
cssgraph_callersclassName を参照している JSX コンポーネントを検索
cssgraph_impactclassName を変更した場合の影響範囲
cssgraph_ruleCSS セレクター全体の影響範囲(完全一致+緩い/厳密なファイルへの影響)
cssgraph_impact_selectorCSS セレクターの影響を受けるコードファイル(JS/TS/JSX/TSX)を検索
cssgraph_detailsセレクターの O(1) 完全一致検索(エッジなし、軽量)
cssgraph_unused参照元のないクラスセレクターを検索
cssgraph_cascadeclassName のカスケード経路を可視化
cssgraph_diagnoseスクロール/高さの問題に対する静的なアンカー診断 — 祖先チェーンに沿って高さの宣言を DEFINITE/INDEFINITE/UNVERIFIABLE に分類
cssgraph_propertyCSS プロパティ値でセレクターを検索
cssgraph_filesインデックス化されたスタイルファイルのツリー
cssgraph_statusインデックスの健全性チェック

補完ツール:cssprobe-cli

cssgraph は静的解析ツールです。ソースコードを読み込み、クラスがどこで定義されているか、何がその上にカスケードされるか、変更がどこに影響するかを回答します。ページがブラウザーで実際にどう表示されるか(オーバーフロー、スクロールチェーン、計算済み高さのチェーン、包含ブロックの乗っ取り)といったランタイムの質問には、実際のブラウザーを開いて計算済みスタイルと DOM メトリクスを読み取る cssprobe-cli を使用してください。この 2 つのツールは互いを補完します。

cssgraph(静的)cssprobe-cli(ランタイム)
解析対象ソースコード(CSS/SCSS/Less + JSX/TSX + テンプレート)実際のブラウザー(計算済みスタイル + DOM)
回答内容クラスの定義場所、カスケード、影響、未使用の CSS実際のレンダリングレイアウト、オーバーフロー、スクロール、高さのチェーン
使用タイミングブラウザーを使う前、または使わずに静的解析の後、ランタイムで検証するとき
使用方法cssgraph init + explore/rule/impactopen + inspect/layout/findings

スタイルの問題に推奨されるワークフロー — まず静的解析を行い、その後ランタイムで検証します。

# 1. Static: find the definitions, cascade, and blast radius (cssgraph)
cssgraph explore .btn-primary
cssgraph cascade .btn-primary

# 2. Runtime: confirm what actually renders (cssprobe-cli)
npm i -g cssprobe-cli
cssprobe-cli open https://example.com
cssprobe-cli inspect .btn-primary
cssprobe-cli findings .btn-primary

インストール:npm install -g cssprobe-cli(Node.js >= 22.5.0 が必要です)。npm / GitHub をご覧ください。


対応言語

言語拡張子抽出方法
CSS.cssPostCSS 標準
SCSS.scsspostcss-scss プラグイン
Less.lesspostcss-less プラグイン
Sass(インデント形式).sassコンパイル → PostCSS
PostCSS カスタム.pcssPostCSS 標準
JSX / TSX.jsx .tsxclassName + CSS-in-JS
JavaScript / TypeScript.js .ts .es6className + CSS Modules
ERB(Rails).erbclass="..." の抽出
Haml(Rails).haml.classname + {:class =>} の抽出
HTML.htmlclass="..." の抽出
CSS Modules.module.css .module.scss .module.less動的インポートの解決
Tailwindtailwind.config.js + CSS @themev3 JS 設定 + v4 CSS 設定

本番環境での規模

プロジェクト合計ファイル数初回インデックス作成ノードエッジ
小規模~50~15s~16K~50K
本番環境のモノレポ~11K~3-5m~780K~22M

プロジェクト設定

デフォルトでは設定不要です。任意でプロジェクトのルートに .cssgraph.json を配置できます。

{
  "exclude": ["static/vendor/", "**/legacy/**"],
  "extensions": {
    ".pcss": "css"
  }
}

組み込みのデフォルト除外設定(常に適用):**/*.test.*、**/*.stories.*、**/*.spec.*、**/*.min.*、**/__tests__/**、**/__snapshots__/**、**/__mocks__/**、**/generated/**、**/spec/**、**/vendor/**。


対応プラットフォーム

プラットフォームアーキテクチャインストール
macOSx64, arm64npm
Linuxx64, arm64npm
Windowsx64, arm64npm

cssgraph が役に立ったら

⭐ のスターを付けると、ほかの開発者が見つけやすくなり、開発を続ける励みにもなります。


ライセンス

MIT

コメント

MCP は初めてですか?

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

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