codebase-context-mcp について
codebase-context-mcpは、ARM64環境にも対応するコードベースのインデックス作成・検索用MCPサーバーです。ネイティブバインディングの代わりに、WASM解析、純粋なJavaScriptによるBM25検索、JSONインデックスを採用しています。
主な機能
- 01コードをシンボルとチャンクに索引化
- 02BM25によるシンボルとコードの検索
- 03行番号付きのファイルアウトライン表示
- 04技術スタックとディレクトリ構成の要約
- 05再索引時に変更のないファイルを除外
活用シーン
- 01索引化したリポジトリ内のシンボル検索
- 02ファイルの関数、インポート、エクスポートを確認
- 03プロジェクトの言語とディレクトリ構成を把握
- 04ARM64ホスト上でコードベースを索引化
MCP 対応
標準のMCP stdioトランスポートを使い、索引作成、シンボル・コード検索、ファイルアウトライン、プロジェクト要約のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| directory | string | はい | インデックスを作成するプロジェクトルートディレクトリの絶対パス |
詳細
codebase-context-mcp
あらゆるプラットフォームで動作する、コードベースのインデックス作成と検索のための MCP サーバー — Raspberry Pi や Apple Silicon など、ほとんどの代替手段が動作しない ARM64 デバイスにも対応しています。
問題
@zilliz/claude-context-mcp などの一般的なコードベースインデックス作成用 MCP サーバーは、x86_64 用のビルド済みバイナリのみを提供するネイティブ C++ バインディング(tree-sitter、faiss-node)に依存しています。ARM64 — Raspberry Pi、Apple Silicon Mac、AWS Graviton、その他の arm64 ホスト — を使用している場合、ビルド済みバイナリが見つからず、代替手段もないため、npm install は失敗します。自分でネイティブモジュールをクロスコンパイルしない限り、回避策はありません。
解決策
このパッケージは、すべてのネイティブ依存関係を同等の WASM 実装に置き換えます。tree-sitter パーサーは WebAssembly として実行され、検索には純粋な JS による BM25 実装を使用し、インデックスはプレーンな JSON として保存されます。ネイティブバインディングがないため、ARM64、x86_64、macOS、Linux、Windows など、あらゆるアーキテクチャで初回から npm install が成功します。
そのまま置き換えて利用できます — 標準の MCP stdio トランスポートを介して、同じ基本ツール(インデックス作成、検索、アウトライン、概要)を提供します。
ツール
| ツール | 説明 |
|---|---|
index_codebase | ディレクトリをシンボル/チャンクに解析し、JSON としてキャッシュします |
search_symbols | 名前またはパターンで関数、クラス、型を検索します |
search_code | インデックス済みファイル全体を対象に、BM25 全文検索を行います |
get_file_outline | 行番号付きのファイル構造:関数、クラス、インポート、エクスポート |
get_project_summary | 技術スタック、言語別ファイル数、ディレクトリ構造 |
対応言語
TypeScript、TSX、JavaScript、Python、C#、VB.NET、XML、CSS、JSON
インストール
Claude Code(推奨)
claude mcp add codebase-context -s user -- npx codebase-context-mcp
または、ローカルのクローンから:
git clone https://github.com/Jhackman2019/codebase-context-mcp.git
cd codebase-context-mcp
npm install && npm run build
claude mcp add codebase-context -s user -- node /path/to/codebase-context-mcp/dist/index.js
MCP 設定(JSON)
{
"mcpServers": {
"codebase-context": {
"command": "npx",
"args": ["codebase-context-mcp"]
}
}
}
動作の仕組み
- 解析:
web-tree-sitter(WASM) — ネイティブ版と同等の AST 品質で、あらゆるアーキテクチャ上で動作します - 検索: BM25 テキストランキング(純粋な JS)+シンボル名によるマッチング
- ストレージ:
~/.codebase-context-mcp/<project-hash>.jsonに JSON ファイルのインデックスを保存 - トランスポート:
@modelcontextprotocol/sdkを介した MCP stdio - 増分処理: 内容のハッシュ値が変わっていないファイルは、インデックスの再作成時にスキップされます
安全制限
| 制限 | 値 |
|---|---|
| 最大ファイル数 | 20,000 |
| 最大ファイルサイズ | 512KB |
| デフォルトの除外対象 | node_modules、.git、dist、build、.venv、バイナリ、ロックファイル |
| .gitignore | 尊重します(ルートレベル) |
開発
npm install
npm run build # Build with tsup
npm run dev # Watch mode
npm start # Run the server
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。