Ast Metrics について
AST Metrics は、開発者やコーディングエージェント向けの静的コード解析ツールです。複雑度、アーキテクチャの結合度、リスク、テスト品質をローカルで測定し、Pull Request で新たに発生または悪化した問題を比較します。エージェントが指標を照会できる MCP サーバーも備えています。
主な機能
- 01複雑度、保守性、コード量を測定
- 02結合度、アーキテクチャ、コミュニティを分析
- 03コミット履歴と bus factor を調査
- 04しきい値に基づきコードと構造を lint
- 05複数形式のレポートを生成
活用シーン
- 01Pull Request の新規・悪化した指摘のみを確認
- 02CI でルール違反の変更を阻止
- 03高リスクファイルやリファクタリング候補を特定
- 04コーディングエージェントで依存関係や結合の影響を照会
MCP 対応
MCP サーバーは、AI コーディングエージェント向けにコードの複雑度、結合度、依存関係、リスク情報を提供します。`ast-metrics mcp .` で起動します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
サーバー不要。アカウント不要。バイナリ 1 つだけ。
コードはレビューできる速さを超えて書かれていきます。AST Metrics はコードベースを測定し
(複雑度、アーキテクチャ、結合度、バス係数、テスト品質)、プルリクエストごとに
悪化した部分だけを指摘します。
決定論的: 同じコードなら、同じ判定。オフラインで動作: データはマシンの外に出ません。
高速: ノート PC で毎秒 20,000 行以上のコードを解析します。
Go · PHP · Python · Rust · Java · C# · TypeScript
AST Metrics が自身を解析した結果です。このレポートをライブで見るか、何もインストールせずに任意の公開リポジトリで試すことができます。
はじめに
Homebrew でインストールします(macOS、Linux):
brew install ast-metrics/tap/ast-metrics
またはインストールスクリプトでインストールします(すべてのプラットフォーム対応、カレントディレクトリに ./ast-metrics バイナリをダウンロードします):
curl -fsSL https://install.ast-metrics.dev | sh
次に、プロジェクトを解析します:
ast-metrics analyze /path/to/your/code
ターミナルにそのままサマリーが表示されます: 保守性、推定されるバグ発生確率、結合度、そして最初にリファクタリングすべきホットスポットです。完全なレポートが必要なときは --report-html=<dir> を、結果を全画面ダッシュボードで確認したいときは --tui を追加してください。明示的に指定しない限り、ディスクには何も書き込まれません。
Docker イメージ、npm、pip、Composer、
.deb/.rpmパッケージ、手動ダウンロードについては、インストール手順を参照してください。
ノイズなしでプルリクエストをレビューする
ast-metrics review
ブランチをそのベースと比較し、新規または悪化した指摘のみを報告します。新たに複雑すぎる関数、結合のリグレッション、保守性を失ったクラスなどです。レガシーコードはそのまま静かに保たれます。AI コードレビュアーとは異なり、決定論的で無料です。同じコードなら同じ判定、シート単位の課金もありません。マージをブロックしたい場合は --fail-on=high を追加してください。
➡️ 変更をレビューする
得られるもの
| PR レビュー | ast-metrics review はベースブランチと比較して悪化したものだけを指摘します |
| アーキテクチャ分析 | 結合、不安定度、コミュニティ検出:設計のドリフトを早期に捕捉します |
| コードメトリクス | 循環的複雑度、保守性指数、コード行数 |
| アクティビティメトリクス | コミット履歴とバスファクター:誰が何を所有しているかを把握できます |
| リンター | 複雑度、結合、ボリューム、アーキテクチャにしきい値を適用します |
| CI/CD 対応 | GitHub Actions、GitLab CI、あらゆるパイプライン。違反時は非ゼロで終了します |
| レポート形式 | HTML ダッシュボード、JSON、Markdown、SARIF、OpenMetrics |
| MCP サーバー | AI コーディングエージェントにアーキテクチャの認識を与えます |
依存関係グラフ:ハブ、自然なコミュニティ、循環依存をひと目で確認できます。
アーキテクチャをリントする
ast-metrics init # create a .ast-metrics.yaml config file
ast-metrics ruleset add architecture # pick rulesets (volume, complexity...)
ast-metrics lint
しきい値は YAML 設定に記述します。最大複雑度、結合の上限、コンポーネント間の禁止依存関係、メソッドごとのサイズ制限などです。違反が数百件あるレガシーコードベースでも、ast-metrics baseline を一度実行すれば、今日の違反がスナップショットされ、lint は新規の違反のみで失敗するようになります。
CI で実行する
ast-metrics ci はリンターを実行し、すべてのレポート(HTML、JSON、Markdown、SARIF、OpenMetrics)を生成し、違反が見つかると非ゼロで終了します。GitHub では、1 つのステップで十分です:
- uses: ast-metrics/action-ast-metrics@v2
プルリクエストごとに、このアクションは ast-metrics review を実行し、新規または悪化した指摘のみをコメントします。
➡️ CI/CD ガイド:GitHub Actions、GitLab CI
AI エージェントにアーキテクチャの認識を与える
AI コーディングエージェントはコードを直線的に読みます。MCP サーバーとして実行される AST Metrics は、Claude Code、Cursor、Copilot に複雑度、結合、依存関係、リスクへのオンデマンドアクセスを提供します。これにより、「リファクタリングすべき最もリスクの高いファイルはどれですか?」 や 「UserService クラスを変更したら何が壊れますか?」 といった質問ができます。
ast-metrics mcp .
対応言語
Go、PHP、Python、Rust、Java、C#、TypeScript。
コントリビューション
ディスカッション、バグレポート、プルリクエストを歓迎します:こちらから始めてください。AST Metrics は MIT ライセンスの下でライセンスされたオープンソースソフトウェアです。
プロジェクトを支援する
AST Metrics は空き時間に構築・維持されています。それがあなたの時間をいくらか節約できたなら:
- ⭐ リポジトリにスターを付けてください。費用はかからず、ほとんどの開発者がこのツールを見つける方法です。
- ❤️ スポンサーになってください。スポンサーシップは、メンテナンスの時間と新しい言語やメトリクスの追加を直接支援します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。