mcpField
C
ChangeAtlas

ChangeAtlas

ローカル
github.com/robyroro開発ツール03 週間前に更新

ChangeAtlas について

ChangeAtlasは、Gitの変更から影響を受ける可能性のあるPython、JavaScript、TypeScriptのファイルやテストを調べるローカルMCPサーバーです。根拠となるインポート経路を示し、リポジトリの内容を外部サービスに送信しません。

主な機能

  1. 01コミットとの差分分析
  2. 02静的インポート経路の追跡
  3. 03関連する可能性のあるテスト検索
  4. 04プロジェクトコードを実行しないローカル処理

活用シーン

  1. 01コミット前の影響ファイル確認
  2. 02変更モジュールに関連するテストの検索
  3. 03ファイルが候補になった経路の確認

MCP 対応

stdioのMCPサーバーを通じて、`repository_overview`、`analyze_changes`、`trace_file`、`find_tests` の4つのツールを提供します。リポジトリのルートはサーバー設定で固定されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"robyroro-mcp-changeatlas": {
"command": "uvx",
"args": [
"mcp-changeatlas"
],
"env": {
"CHANGEATLAS_ROOT": "<CHANGEATLAS_ROOT>"
}
}
}
}
起動コマンドuvx mcp-changeatlas
設定が必要な環境変数
CHANGEATLAS_ROOTAbsolute path to the Git repository to inspect

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

パッケージ
pypimcp-changeatlas0.1.0

ツール

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

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

詳細

ChangeAtlas

ChangeAtlas は、Git の変更によって影響を受ける可能性があるローカルファイルとテストを表示します。静的インポートをたどり、すべてのリンクの背後にあるファイルパスを返すため、根拠を自分で確認できます。お使いのマシン上で動作し、リポジトリを読み取りますが、その内容をサービスに送信することはありません。

モジュールを変更した後、コミット前に確認すべき箇所を、根拠に基づいた簡潔なリストで把握したいときに便利です。変更が安全かどうか、あるいはテストが特定の動作をカバーしているかどうかを判断するものではありません。

インストール

Python 3.11 以降と Git が必要です。

pip install mcp-changeatlas

Git リポジトリの正確なルートを指定します。

mcp-changeatlas --root /path/to/repo overview
mcp-changeatlas --root /path/to/repo changes --base HEAD
mcp-changeatlas --root /path/to/repo trace src/app/core.py
mcp-changeatlas --root /path/to/repo tests src/app/core.py

MCP クライアントでは、コマンド mcp-changeatlas、引数 --root、リポジトリのパス、serve を指定して、stdio サーバーを設定します。例:

{
  "mcpServers": {
    "changeatlas": {
      "command": "mcp-changeatlas",
      "args": ["--root", "/path/to/repo", "serve"]
    }
  }
}

4 つのツールは repository_overview、analyze_changes、trace_file、find_tests です。ルートはサーバーの実行者が設定し、ツール呼び出しで変更することはできません。

Docker イメージは、ディレクトリのビルドチェックと自己完結型のデモ用です。イメージ内のリポジトリスナップショットを分析します。独自の作業内容を分析するには、パッケージをローカルにインストールし、--root にリポジトリを指定してください。

動作の仕組み

ChangeAtlas は、追跡対象の Python、JavaScript、TypeScript ファイルを読み取り、ローカルのインポートグラフを構築します。Python のインポートは標準ライブラリの AST で解析します。JS/TS の相対インポート、エクスポート、require のリンクは静的に検出します。変更されたファイルから逆方向にリンクをたどり、指定した深さまで近接するモジュールやテストを探します。結果には、各提案の根拠となったファイルのつながりが含まれます。

analyze_changes は、ステージ済みの変更を含む作業ツリーを Git のコミットと比較します。include_untracked を指定すると、追跡対象外のファイル名も追加されます。プロジェクトのコード、テストコマンド、パッケージマネージャー、Git フックを実行することはありません。パスを解決し、設定されたリポジトリの外を指すファイルは拒否します。ファイル数と結果数には固定の上限があります。

この初回リリースで解決できるのは、ローカルの Python インポートと相対 JS/TS インポートです。ランタイムインポート、パッケージエイリアス、モノレポのパスマッピング、コード以外の依存関係は追跡できません。削除されたファイルと未対応のファイルは unindexed_changes に表示され、不完全な結果にはその旨が示されます。提案されるテストはインポートをたどったパスであり、カバレッジを保証するものではありません。

開発

python -m venv .venv
python -m pip install -e ".[dev]"
pytest
ruff check .
mypy
python -m build

公開

パッケージ名と MCP Registry 名は、pyproject.toml、README.md、server.json で設定されています。最初の PyPI リリースの前に、robyroro/mcp-changeatlas、ワークフロー release.yml、環境 pypi を指定して、信頼されたパブリッシャーを保留状態で作成してください。その後、パッケージのバージョンと一致するタグを付けて GitHub リリースを公開します。リリースワークフローはテストを実行し、PyPI の信頼されたパブリッシングフローを通じて、wheel とソースアーカイブを公開します。

正確なバージョンが PyPI に表示されたら、GitHub Actions の Publish to MCP Registry ワークフローを実行してください。このワークフローは server.json を検証し、Registry publisher guide に従って GitHub OIDC で公開します。レジストリへの登録は、これとは別の公開手順です。リポジトリまたは PyPI でリリースしただけでは、レジストリに掲載されません。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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