codemunch-pro について
CodeMunch Proは、コーディングエージェント向けにローカルディレクトリやリモートリポジトリを索引化するMCPサーバーです。AST解析、ハイブリッド検索、コールグラフに加え、バイト位置からシンボルのソースを直接取得できます。
主な機能
- 01ローカルとリモートのリポジトリを索引化
- 0210種類のプログラミング言語に対応
- 03FTS5とベクトル検索の併用
- 04バイト位置によるソース取得
- 05関数の呼び出し関係を追跡
活用シーン
- 01コーディングエージェントにコードコンテキストを提供
- 02関数シグネチャ変更の影響を確認
- 03意味検索で実装箇所を特定
- 04リファクタリング前に呼び出し関係を確認
MCP 対応
stdioまたはHTTP経由で、シンボル検索、ソース取得、コールグラフ照会など15種類のコード索引・検索ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
CodeMunch Pro
インテリジェントなコードインデックス作成 MCP サーバーです。15 個のツール、10 言語、tree-sitter による AST 抽出、ハイブリッド検索(FTS5 + ベクトル)、呼び出しグラフ、リモートリポジトリのインデックス作成、増分インデックス作成に対応しています。
トークンを 99% 節約 — ファイル全体を読み込まず、バイトオフセットでシークして正確な関数のソースを取得できます。
インストール
pip install codemunch-pro
クイックスタート
Claude Desktop / Cline
MCP クライアントの設定に追加します。
{
"mcpServers": {
"codemunch-pro": {
"command": "codemunch-pro"
}
}
}
HTTP サーバー
codemunch-pro --transport streamable-http --port 5002
15 個の MCP ツール
| ツール | 説明 |
|---|---|
index_folder | ローカルディレクトリのインデックスを作成します(増分、SHA-256 ベース) |
index_repo | GitHub/GitLab リポジトリのインデックスを作成します(tarball をダウンロード、git 不要) |
list_repos | インデックス済みのすべてのリポジトリを統計情報付きで一覧表示します |
invalidate_cache | リポジトリのインデックスを強制的に再作成します |
file_tree | ファイル数を含むディレクトリツリーを取得します |
file_outline | 単一ファイル内のシンボルを一覧表示します |
repo_outline | リポジトリ内のすべてのシンボルを一覧表示します(概要) |
get_symbol | 1 つのシンボルのソース全体を取得します(O(1) バイトシーク) |
get_symbols | 複数のシンボルをまとめて取得します |
search_symbols | ハイブリッド検索(FTS5 + ベクトル RRF) |
search_text | ファイル内容を全文検索します |
get_callees | この関数は何を呼び出しますか? |
get_callers | この関数を呼び出すのは誰ですか? |
diff_symbols | 前回のインデックス作成から何が変わりましたか?(PR レビュー) |
dependency_map | このファイルが依存するものと、このファイルに依存するものを表示します |
10 言語
Python、JavaScript、TypeScript、Go、Rust、Java、C、C++、C#、Ruby
すべて tree-sitter-language-pack 経由で利用できます。コンパイル不要で、ビルド済みバイナリが含まれています。
主な機能
O(1) のシンボル取得
各シンボルはバイトオフセットと長さを保存します。get_symbol は関数のソースを直接シークするため、ファイル全体を読み込む必要はありません。40KB のファイルから 200 バイトの関数を取得する場合、トークンを 99.5% 節約できます。
増分インデックス作成
ファイルはハッシュ化(SHA-256)されます。変更されたファイルのみ再解析されます。10K ファイルのリポジトリで 1 ファイルを変更した後の再インデックス作成は、数ミリ秒で完了します。
ハイブリッド検索(FTS5 + ベクトル)
Reciprocal Rank Fusion を使用して、BM25 キーワードマッチングと意味ベクトル類似度を組み合わせます。「authentication middleware」を検索すると、auth_middleware、verify_token、login_handler が見つかります。
呼び出しグラフ
AST を通じて関数呼び出しを追跡します。get_callees("main") は main が呼び出す関数を表示します。get_callers("authenticate") は authenticate を呼び出す関数を表示します。深さを指定したトラバーサルにも対応しています。
リモートリポジトリのインデックス作成(v1.1)
URL を指定して、公開 GitHub または GitLab リポジトリのインデックスを作成できます。git バイナリは不要です。API 経由で tarball をダウンロードして展開し、インデックスを作成します。SHA ベースの鮮度チェックによりローカルにキャッシュされます。認証トークンを使用したプライベートリポジトリや、スパースパスにも対応しています。
全文コンテンツ検索
文字列リテラル、TODO コメント、設定値、エラーメッセージなど、ファイルの生の内容を検索します。シンボル名だけに限定されません。
仕組み
- 解析 — tree-sitter が各ソースファイルの AST を構築します
- 抽出 — AST を走査して関数、クラス、メソッド、型、インターフェースを見つけます
- 保存 — リポジトリごとに SQLite データベースを作成し、FTS5 仮想テーブルを使用します
- 埋め込み — FastEmbed(ONNX、CPU のみ)が意味検索用の 384 次元ベクトルを生成します
- グラフ化 — 関数本体から呼び出し式を抽出し、エッジを保存して解決します
- 提供 — FastMCP が stdio または HTTP 経由で 13 個のツールを公開します
アーキテクチャ
~/.codemunch-pro/
├── myproject_a1b2c3d4e5f6.db # Per-repo SQLite database
├── otherproject_7890abcdef.db
└── ...
Each DB contains:
├── files # Indexed files with SHA-256 hashes
├── symbols # Functions, classes, methods, types
├── symbols_fts # FTS5 full-text search index
├── symbols_vec # sqlite-vec 384-dim vector index
├── call_edges # Call graph (caller → callee)
└── file_content_fts # Raw file content search
ユースケース
- AI コーディングエージェント: コンテキストを消費せずに、エージェントにコードベースへの的確なアクセスを提供します
- コードレビュー: 関数のシグネチャを変更する前に、その関数を呼び出す箇所をすべて見つけます
- オンボーディング: シンボルを意味検索します。「エラー処理はどこにあるか?」と検索すると、関連するコードが見つかります
- リファクタリング: 関数をモジュール間で移動する前に、呼び出しグラフを把握します
- ドキュメント作成: シグネチャと docstring を含む、すべての公開 API を抽出します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。