mcpField
A
Ast Metrics

Ast Metrics

ローカル
github.com/Halleck45開発ツール164今日更新

Ast Metrics について

AST Metrics は、開発者やコーディングエージェント向けの静的コード解析ツールです。複雑度、アーキテクチャの結合度、リスク、テスト品質をローカルで測定し、Pull Request で新たに発生または悪化した問題を比較します。エージェントが指標を照会できる MCP サーバーも備えています。

主な機能

  1. 01複雑度、保守性、コード量を測定
  2. 02結合度、アーキテクチャ、コミュニティを分析
  3. 03コミット履歴と bus factor を調査
  4. 04しきい値に基づきコードと構造を lint
  5. 05複数形式のレポートを生成

活用シーン

  1. 01Pull Request の新規・悪化した指摘のみを確認
  2. 02CI でルール違反の変更を阻止
  3. 03高リスクファイルやリファクタリング候補を特定
  4. 04コーディングエージェントで依存関係や結合の影響を照会

MCP 対応

MCP サーバーは、AI コーディングエージェント向けにコードの複雑度、結合度、依存関係、リスク情報を提供します。`ast-metrics mcp .` で起動します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

AST Metrics

サーバー不要。アカウント不要。バイナリ 1 つだけ。
コードはレビューできる速さを超えて書かれていきます。AST Metrics はコードベースを測定し (複雑度、アーキテクチャ、結合度、バス係数、テスト品質)、プルリクエストごとに 悪化した部分だけを指摘します。
決定論的: 同じコードなら、同じ判定。オフラインで動作: データはマシンの外に出ません。
高速: ノート PC で毎秒 20,000 行以上のコードを解析します。

Go · PHP · Python · Rust · Java · C# · TypeScript


CI GitHub Release License: MIT README の画像 GitHub all releases Go Report Card codecov Go Reference Mentioned in Awesome Go AST-Metrics report

ドキュメント | コントリビューション

AST Metrics のレポート: 平易な言葉での判定と、複雑度、保守性、テストの分離性、バス係数のスコア
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 .

➡️ MCP サーバーのセットアップとツール

対応言語

Go、PHP、Python、Rust、Java、C#、TypeScript。

コントリビューション

ディスカッション、バグレポート、プルリクエストを歓迎します:こちらから始めてください。AST Metrics は MIT ライセンスの下でライセンスされたオープンソースソフトウェアです。

プロジェクトを支援する

AST Metrics は空き時間に構築・維持されています。それがあなたの時間をいくらか節約できたなら:

  • ⭐ リポジトリにスターを付けてください。費用はかからず、ほとんどの開発者がこのツールを見つける方法です。
  • ❤️ スポンサーになってください。スポンサーシップは、メンテナンスの時間と新しい言語やメトリクスの追加を直接支援します。

コメント

MCP は初めてですか?

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

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