mcpField
L
Locus

Locus

ローカル
sylphxai.github.io検索125 週間前に更新

Locus について

Locusは、コーディングエージェント向けのローカルコード検索MCPサーバーです。BM25でリポジトリ内のチャンクを順位付けし、位置と内容を返します。アーカイブ済みの0.xはrepomapに統合されました。

主な機能

  1. 01リポジトリのローカル索引作成
  2. 02BM25によるコードチャンク順位付け
  3. 03ファイルとパスによる絞り込み
  4. 04関連コードチャンクの検索
  5. 05行番号とシンボル情報の返却

活用シーン

  1. 01コード中の語句から実装を検索
  2. 02既知のファイルと行から関連箇所を特定

MCP 対応

stdio経由でMCPクライアントに`codebase_search`と`find_related`ツールを提供します。設定によりHTTPトランスポートも利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sylphxai-locus": {
"command": "npx",
"args": [
"-y",
"@sylphx/locus"
]
}
}
}
起動コマンドnpx -y @sylphx/locus

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@sylphx/locus0.6.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Locus → repomap の一部になりました

Locus は repomap に統合されました。repomap は AI エージェント向けのコードベースマップです。コードグラフ、ハイブリッド検索(Locus の BM25 を、tree-sitter の AST チャンク上で利用)、呼び出しパス、変更の影響分析、インタラクティブなグラフ UI を、1 つの Rust バイナリに統合しています。ローカルで動作し、API キーは不要で、MIT ライセンスで提供されています。

npx -y @sylphx/repomap setup

@sylphx/locus 1.x と @sylphx/coderag 1.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 Codeclaude mcp add locus -- npx -y @sylphx/locus --root=/absolute/path/to/project
Codexcodex 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。