Locus について
Locusは、コーディングエージェント向けのローカルコード検索MCPサーバーです。BM25でリポジトリ内のチャンクを順位付けし、位置と内容を返します。アーカイブ済みの0.xはrepomapに統合されました。
主な機能
- 01リポジトリのローカル索引作成
- 02BM25によるコードチャンク順位付け
- 03ファイルとパスによる絞り込み
- 04関連コードチャンクの検索
- 05行番号とシンボル情報の返却
活用シーン
- 01コード中の語句から実装を検索
- 02既知のファイルと行から関連箇所を特定
MCP 対応
stdio経由でMCPクライアントに`codebase_search`と`find_related`ツールを提供します。設定によりHTTPトランスポートも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Locus → repomap の一部になりました
Locus は repomap に統合されました。repomap は AI エージェント向けのコードベースマップです。コードグラフ、ハイブリッド検索(Locus の BM25 を、tree-sitter の AST チャンク上で利用)、呼び出しパス、変更の影響分析、インタラクティブなグラフ UI を、1 つの Rust バイナリに統合しています。ローカルで動作し、API キーは不要で、MIT ライセンスで提供されています。
npx -y @sylphx/repomap setup
@sylphx/locus1.x と@sylphx/coderag1.x は@sylphx/repomapの薄いエイリアスです。そのため、既存の設定(npx -y @sylphx/locus --root=…、codebase_search)は引き続き動作します。今後の開発は SylphxAI/repomap で行われます。この README の残りの部分では、Locus 0.x について説明します。
Locus 0.x(アーカイブ版)
目的に合った正確なコードチャンク
Locus は、コーディングエージェント向けのローカルコード検索ツールです。マシン上のリポジトリにインデックスを作成し、BM25 でチャンクをランク付けして、パス、行範囲、シンボル、スコア、チャンクテキストを返します。
API キー不要。ベクトルデータベース不要。Docker 不要。デフォルトのトランスポートは stdio です。
npx -y @sylphx/locus --root=/absolute/path/to/project
Locus はプロセスの作業ディレクトリを検索しません。--root を渡すか、LOCUS_ROOT を設定するか、ツール呼び出しで root を渡してください。ツールの root が最優先され、次に起動時の --root、その次に LOCUS_ROOT が使われます。LOCUS_ROOT が未設定の場合は、引き続き CODERAG_ROOT が使われます。
Claude Code:
claude mcp add locus -- npx -y @sylphx/locus --root=/absolute/path/to/project
Codex:
codex mcp add locus -- npx -y @sylphx/locus --root=/absolute/path/to/project
ツール
| ツール | 使用する場面 | 得られるもの |
|---|---|---|
codebase_search | コード内に登場する単語を指定できる場合 | ランク付けされたチャンク。フィルターは上限を適用する前に適用されます。 |
find_related | ファイルと行番号がすでに分かっている場合 | そのファイルのトークンを共有する他のチャンク |
{
"query": "authenticate request",
"limit": 5,
"file_extensions": ["ts"],
"path_filter": "src/auth",
"exclude_paths": ["src/auth/legacy"]
}
login は authenticate に一致しません。ランキングは字句ベースです。コードで使われている単語を検索してください。
インデックスの対象
.ts .tsx .js .jsx .mjs .cjs .rs .md .py .go
名前が完全一致するパスセグメントはスキップされます:node_modules、dist、target、.git。これは gitignore ではありません。1,048,576 バイトを超えるファイルはスキップされます。新しいインデックスは .locus/rust-index.json と .locus/file-hashes.json に書き込まれます。.locus/rust-index.json が存在しない場合、Locus は引き続き .coderag/ を読み取ります。どちらのディレクトリもコミットしないでください。
シンボルのように見える行からチャンクが始まります。それ以外のファイルは 1 つのチャンクになります。パターンは正規表現であり、構文木ではありません。シンボルチャンク。
変わらないシンプルなデフォルト設定
limitのデフォルトは 10 で、1 から 100 までの整数である必要があります。include_contentのデフォルトは true です。falseの場合、ロケーターのみを返します。auto、fast、qualityの検索モードはありません。- 各呼び出しでローカルインデックスが更新されます。変更のないファイルはキャッシュヒットになります。この更新モードは、選択する検索プロファイルではありません。
- HTTP が使われるのは
MCP_TRANSPORT=httpの場合のみです。エージェントは stdio を使用してください。
インストール方法
| 方法 | 設定場所 |
|---|---|
| Claude Code | claude mcp add locus -- npx -y @sylphx/locus --root=/absolute/path/to/project |
| Codex | codex mcp add locus -- npx -y @sylphx/locus --root=/absolute/path/to/project |
| Cursor | .cursor/mcp.json または ~/.cursor/mcp.json 内の mcpServers |
| VS Code | .vscode/mcp.json 内の servers(${workspaceFolder} は展開されます) |
| その他の MCP クライアント | .mcp.json 内の mcpServers。絶対パスの --root を指定します |
公開済みネイティブパッケージ:@sylphx/locus-darwin-arm64、@sylphx/locus-darwin-x64、@sylphx/locus-linux-arm64-gnu、@sylphx/locus-linux-x64-gnu。Windows は公開対象ではありません。
npx -y @sylphx/locus doctor を実行すると、サーバーのバージョンと locus-cli が見つかったかどうかが表示されます。
連携ツール
| 製品 | 用途 |
|---|---|
| Citra | ページ単位の根拠を示す PDF の回答 |
| Iris | 画像の事実とピクセルの根拠 |
| Cue | 動画のタイムラインとタイムスタンプの根拠 |
| Spine | リポジトリのアーキテクチャと影響 |
| Lookout | 引用元の抜粋を使ったウェブ調査 |
Locus がチャンクを見つけ、Spine がアーキテクチャをマッピングします。タスクに必要なものだけをインストールしてください。
ドキュメント:https://sylphxai.github.io/locus/
開発
bun install
bun run build:rust
cargo test
bun run docs:build
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。