bartolli/codanna
Local code intelligence MCP server and CLI for AI coding agents
Codanna – AI コーディングエージェント向けのローカルコードインテリジェンスサーバー
概要 – Codanna は Rust ベースのツールで、自分のマシン上でコードベースの検索可能なセマンティックインデックスを構築します。その後、Claude Code、Google Gemini、OpenAI Codex、Cursor、Windsurf などの AI コーディングアシスタントが使用する軽量プロトコル MCP(Model-Client-Protocol) を通じて、その知識を公開します。1 回の MCP 呼び出しで、シンボルの定義、ドキュメント、呼び出し元と呼び出し先、影響分析(シンボルが変更された場合の「ブラスト半径」)を取得できます。プロセス全体はローカルで実行され、リモート埋め込みモデルを明示的に有効にしない限り、ソースコードやクエリが外部サービスに送信されることはありません。
仕組み
- インデックス作成 –
codanna initで.codanna/ディレクトリを作成し、codanna index <path>でファイルを解析して(15 言語をサポート)、シンボル、コールグラフのエッジ、セマンティック検索用の埋め込みを保存します。 - MCP インターフェース – Codanna と通信する方法は 2 つあります:
- 常駐サーバー(
codanna serve/codanna serve --http):開発セッション全体で起動し続けます。 - ワンショット CLI(
codanna mcp …):シェルスクリプト、CI パイプライン、または AI アシスタントのスキルから直接呼び出せます。
- 常駐サーバー(
- 主要コマンド –
codanna mcp semantic_search_with_contextは、各一致についてシンボル ID、シグネチャ、docstring、呼び出し元のリスト、呼び出し先のリスト(正確な呼び出し箇所を含む)、再帰的な影響分析を返します。出力はプレーンテキストまたは JSON(--json)です。
主な機能
| 機能 | 得られるもの |
|---|---|
| セマンティック検索 | コードと markdown ドキュメントに対する自然言語クエリ。名前だけでなく意図で関数を検索できます。 |
| 関係追跡 | コールグラフ、実装、モジュール間の依存関係により、「この関数はどこで呼ばれているか?」「変更すると何が壊れるか?」といったクエリが可能です。 |
| ドキュメント RAG | プロジェクトドキュメント(markdown、テキスト)をインデックス化し、AI エージェントがコードと一緒に関連ドキュメントを取得できるようにします。 |
| MCP プロトコル | Claude、Gemini、Codex、Cursor、Windsurf、または外部コマンドを呼び出せる任意のクライアントとそのまま互換です。 |
| プロファイル / スキル | プロジェクトタイプ別に事前パッケージ化されたコマンドセット。プラグインマーケットプレイス経由で Claude Code に追加できます。 |
| ローカルファースト | すべてのインデックス作成と埋め込みはオンデバイスで実行。オプションのリモート OpenAI 互換埋め込みはオプトインのみです。 |
| パフォーマンス | 最大約 250k シンボル/秒で解析。ウォームルックアップは 10 ms 未満。インデックス構築後のセマンティッククエリは数ミリ秒です。 |
典型的なワークフロー
# インストール(macOS/Linux/WSL)– ワンライナーまたは Homebrew/Nix/PowerShell
curl -fsSL https://install.codanna.sh | sh
# ワークスペースを初期化
codanna init
codanna index src # ソースツリーのインデックスを構築
# AI アシスタント(または CLI)にコンテキストを問い合わせ
codanna mcp semantic_search_with_context query:"extract function calls" limit:1
# RAG 用にプロジェクトドキュメントを追加
codanna documents add-collection docs ./docs
codanna documents index
codanna mcp search_documents query:"authentication flow"
CLI 出力には file:line の位置、シンボル ID、およびエージェントが後続のクエリに連鎖できる短いガイダンスヒントが含まれます。
統合 – プロジェクトルートに .mcp.json ファイルを追加すると、Claude Code、Cursor、その他の MCP 互換ツールが Codanna を自動的に起動します:
{ "mcpServers": { "codanna": { "command": "codanna", "args": ["--config", ".codanna/settings.toml", "serve", "--watch"] } } }
トランスポートは stdio、HTTP、または HTTPS です。
インストールオプション
- ワンラインスクリプト(
curl … | sh) - Homebrew(
brew install codanna) - Nix(
nix run github:bartolli/codanna) - Windows 用 PowerShell スクリプト(実験的サポート)
- Rust 1.85+ でソースからビルドし、
cargo install codanna
システム要件
- デフォルトの ONNX 埋め込みモデルで約 150 MiB のダウンロード。
- macOS:Apple Silicon のみ(現在の ONNX Runtime ビルドは Intel をサポートしていません)。
- Linux:glibc 2.38+ および GCC 13+ ランタイムライブラリ(ビルド済みバイナリは Ubuntu 24.04 を対象)。
- Windows:実験的。
ライセンス – Apache 2.0(表示義務あり)。通常の GitHub ワークフローでのコントリビューションを歓迎します。
まとめ – Codanna は AI コーディングアシスタントに、高速でローカルかつ構造化されたコードベースのビューを提供し、よくある「grep してから読む」ループを、単一のコンテキスト対応 MCP リクエストに変えます。「この関数はどこで使われているか?」「X を変更すると何が壊れるか?」「認証ロジックを見つける」といった質問に、独自コードをクラウドに送信せずに答える必要があるエージェントに特に有用です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト