mcpField
M
MCP AST Explorer

MCP AST Explorer

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

MCP AST Explorer について

MCP AST Explorerは、コードベースの把握を支援するエージェント向けの、Python専用MCPサーバーです。LibCSTに基づく決定的な検索を行い、見つからないシンボルは推測せず構造化された結果で示しますが、分析範囲は同一モジュール内に限られます。

主な機能

  1. 01モジュール、クラス、関数、メソッドの定義検索
  2. 02関数とメソッドのシグネチャ取得
  3. 03同一モジュール内のシンボル参照検索
  4. 04直接の呼び出し元とサブクラスの検出
  5. 05シンボル未検出時の構造化エラー

活用シーン

  1. 01コードベース把握時のPythonシンボル解説
  2. 02関数のシグネチャとローカル参照の確認
  3. 03関数を直接呼び出す箇所の追跡
  4. 04クラスの直接サブクラスの確認

MCP 対応

定義、シグネチャ、参照、呼び出し元、クラス階層を調べるPythonシンボル検索ツールをMCPクライアントに提供します。ファイル横断解析とTypeScript分析には対応していません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"lovranran-mcp-ast-explorer": {
"command": "uvx",
"args": [
"mcp-ast-explorer"
]
}
}
}
起動コマンドuvx mcp-ast-explorer

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

パッケージ
pypimcp-ast-explorer0.1.0

ツール

6

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

mcp-ast-explorer

決定論的な Python コードベースのシンボル探索を行う MCP サーバーです。

mcp-ast-explorer は LibCST を使って Python ソースファイルをインデックス化し、コードベースの把握に役立つ特化型の MCP ツールを提供します。定義の検索、関数シグネチャ、ローカル参照、直接的な呼び出しチェーン、シンプルなクラス階層クエリを利用できます。

コードベース把握スタック

mcp-ast-explorer は、コードベース把握エージェントである Project 6 wayfinder 向けの 3 サーバー構成の MCP ツールスタックにおいて、セマンティックなシンボルレイヤーを担います。

  • mcp-repo-mapper は、リポジトリ構造、言語、エントリーポイント、フレームワークの根拠、Python の依存関係をマッピングします。
  • mcp-ast-explorer は、シンボルに基づく Python の定義、シグネチャ、参照、呼び出しチェーン、クラス階層の検索を提供します。
  • mcp-test-runner は、ローカルの pytest/Jest チェックとカバレッジの概要を実行し、エージェントの主張を実行結果に照らして検証できるようにします。

wayfinder では、このサーバーがエントリーポイントとシンボルの説明を支援し、存在しないシンボルを捏造することはありません。

ステータス

これは Python のみを対象とする v1 です。TypeScript は未対応のバックエンドのプレースホルダーとして登録されており、サーバーには明示的な拡張ポイントがありますが、TypeScript の解析はまだ実装されていません。

このサーバーはシンボル検索に LLM を使用しません。要求されたシンボルまたはクラスが解析済みのインデックスに存在しない場合、ツールは回答を捏造せず、構造化された未検出結果を返します。

ツール

ツール用途
health()スモークチェックに対して ok を返します。
find_definition(path, symbol, language="python")モジュール、クラス、関数、またはメソッドの定義を検索します。
function_signature(path, symbol, language="python")関数またはメソッドのシグネチャを返します。
find_references(path, symbol, language="python")既存のシンボルについて、同一モジュール内の CST 名参照を返します。
call_chain(path, from_symbol, depth=2, language="python")ローカル参照から検出された直接の呼び出し元を返します。
class_hierarchy(path, class_name, language="python")シンプルな基底クラス名から検出された直接のサブクラスを返します。

対応範囲

  • LibCST で解析される Python ファイル。
  • シンボルの種類:モジュール、クラス、関数、メソッド。
  • シンプルな名前を対象とする同一モジュール内の参照検索。
  • 関数またはメソッドのコンテナから直接の呼び出し元を検出します。
  • class Child(Base): のような単純な継承における直接のサブクラスの検出。
  • 未対応言語および未検出のシンボルに対する構造化エラーレスポンス。

現在の制限事項

  • ファイル間のインポートとパッケージ全体の解決は v1 の対象外です。
  • エイリアス、スターインポート、動的な属性アクセス、修飾参照は解決されません。
  • call_chain が現在返すのは直接の呼び出し元のみです。複数ホップの再帰的な展開は実装されていません。
  • class_hierarchy が現在返すのは直接のサブクラスのみで、シンプルな基底クラス名を扱います。
  • TypeScript は v1 では意図的に未対応です。

ローカル開発

依存関係をインストールします:

uv sync --extra dev

MCP サーバーを実行します:

uv run mcp-ast-explorer

検証を実行します:

uv run ruff check .
uv run mypy
uv run pytest

ライセンス

MIT

コメント

MCP は初めてですか?

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

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