codemogger — コードインデクシングとMCPサーバー

Library

概要

CodemoggerはAIコーディングエージェント向けに設計された軽量なコードインデクシングライブラリとMCP(Multi-Client-Protocol)対応のサーバーコンポーネントです。ソースコードをtree-sitterでパースし、関数・クラス・構造体・implブロック等の「意味的チャンク」に分割してローカルで埋め込みを作成、ベクトル検索と全文検索を組み合わせた単一のSQLiteデータベース(.db)に格納します。外部APIやコンテナを必要とせず、ローカルだけで高速かつプライベートにコード検索・参照を行えます。エージェントがコードベースを素早く理解・検索・参照するためのインフラをシンプルに提供します。

GitHub

リポジトリの統計情報

  • スター数: 32
  • フォーク数: 3
  • ウォッチャー数: 32
  • コミット数: 8
  • ファイル数: 17
  • メインの言語: TypeScript

主な特徴

  • tree-sitterによる言語パースで意味的な単位(関数・クラス等)を抽出してチャンク化
  • ローカルでの埋め込み生成と、ベクトル検索+全文検索を組み合わせた単一のSQLiteデータベース保存
  • Dockerや外部APIキー不要で簡単に導入・運用できる設計
  • MCPサーバーとしてエージェントと連携し、インデックスの提供や検索リクエストを処理

技術的なポイント

Codemoggerの技術的な中核は「言語構文解析→意味的チャンク化→埋め込み化→高速検索」という一連のパイプラインです。まずtree-sitterを使うことで、ファイルをトークン単位ではなく構文木に基づいた意味単位(関数、メソッド、クラス、構造体、implブロックなど)に精度よく分割します。これにより、検索や文脈提示時にノイズの少ない候補を返せる点が利点です。チャンク化された各ユニットにはソース位置や周辺コンテキストが紐づけられ、必要に応じて周辺コードも一緒に取り出せます。

次に各チャンクを埋め込みベクトルに変換します。READMEの方針として「No Docker, no server, no API keys」を謳っているため、外部サービスに依存せずローカルで完結する運用を重視しています。埋め込みはローカルで生成し、結果は単一のSQLiteファイルに格納されます。このSQLiteはベクトル検索に対応するエクステンションや、全文検索(FTS)を組み合わせて用いる設計になっており、ベクトル類似度とキーワードベースの検索を同時に活用してリコールと精度のバランスをとります。

MCPサーバー機能により、複数のAIコーディングエージェントやツールからインデックスを参照・検索するための軽量プロトコルを提供します。これにより、エージェントが「どのファイルのどの関数を参照すべきか」を素早く特定して、コード補完やリファクタ提案、ドキュメント生成などの上位タスクに集中できます。TypeScript実装のため、Node.js環境への組み込みや他のJS/TSベースツールとの連携が容易です。

開発面ではファイル数・コミット数が少ないことからまだ初期段階のプロジェクトであり、拡張やモデルの差し替え、より多言語対応やスケーリング機能を期待できます。ローカル完結の特性はプライバシーやオフラインでの実行性に強く、企業でのコードベース取り扱いや個人のローカル開発環境に適しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .cursor: dir
  • .github: dir
  • .gitignore: file
  • .mcp.json: file
  • CLAUDE.md: file

…他 12 ファイル

まとめ

ローカル完結のコードインデックス基盤として実用的で、AIエージェント統合に適した軽量ライブラリ。

リポジトリ情報:

READMEの抜粋:

codemogger

codemogger

Code indexing library for AI coding agents. Parses source code with tree-sitter, chunks it into semantic units (functions, structs, classes, impl blocks), embeds them locally, and stores everything in a single SQLite file with vector + full-text search.

No Docker, no server, no API keys. One .db file per codebase.

Why

Coding agents need to understand codebases. They need to find where things …