repofind について
repofindは、エージェントや開発者向けのローカルコードベース検索MCPサーバー兼コマンドラインツールです。キーワード検索と任意の埋め込みベース検索を組み合わせ、完全一致検索やコードの文脈確認も行えます。
主な機能
- 01キーワードとセマンティック検索
- 02部分文字列の完全一致検索
- 03前後のコードチャンクを展開
- 04他ファイルの関連コードを検索
- 05ベンチマークのトークン節約集計
活用シーン
- 01自然言語の質問からコードを検索
- 02環境変数やシンボルを特定
- 03検索箇所の前後のコードを確認
- 04別ファイルの類似コードを発見
MCP 対応
ローカルコードベースの探索用に、search、locate、expand、find_related、read_benchmarkツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| repo | string | いいえ | インデックス化するローカルディレクトリのパス(任意。デフォルトは作業ディレクトリ) |
| query | string | はい | 自然言語またはコードによるクエリ |
| exclude | array | いいえ | Gitignore 形式の glob パターン。一致するファイルは除外されます(任意) |
| include | array | いいえ | Gitignore 形式の glob パターン。一致するファイルのみを検索します(任意) |
| dedupe_by_file | boolean | いいえ | ファイルごとに最も一致度の高い結果のみを保持します(デフォルトは true) |
詳細
repofind
一度も開いたことのないリポジトリでコードを探すとき、
たいていは当てずっぽうで始めます。grep する単語や、
試すファイル名を推測します。repofind は、その推測を
インデックスに置き換えます。ローカルディレクトリを指定すると
ツリーをたどり、.git、node_modules、1 メガバイトを超える
ファイル、ソースおよびテキストの拡張子の許可リストにないものを
スキップします。各ファイルを連続する 40 行のチャンクに分割し、
質問との関連度に基づいてチャンクをランク付けします。
1 回の呼び出しで、確認すべき上位 5 か所を返します。それぞれに
ファイル、行の範囲、チャンクのテキスト、スコアが含まれます。
ランキングにはハイブリッド方式を採用しています。固定された BM25
スコアラー(k1 = 1.2、
b = 0.75)がチャンクのテキストに対して常に実行されます。
環境変数に TAKARA_API_KEY が設定されている場合は、
埋め込み処理も加わります。クエリとチャンクを OpenAI 互換の
エンドポイントで埋め込み、各チャンクの最終スコアは
bm25 + 10 * max(0, cosine) になります。キーがない場合、または埋め込み処理に
失敗した場合は、notes にその旨が明記され、キーワードのみで
ランキングされます。デフォルトでは、各ファイルの最上位の結果のみを
残すため、5 件の結果はそれぞれ異なるファイルを指します。
その他のツールは、探索の残りの流れをカバーします。
locate は完全一致する部分文字列(環境変数、シンボル、
エラーコードなど)を検索し、件数、ファイル一覧、
場所のみ、または行全体として報告します。expand は
すでにある結果を受け取り、そのチャンクと同じファイル内の
隣接するチャンクを返します。find_related は同じアンカーを受け取り、
他のすべてのファイルのチャンクを対象にランキングします。
read_benchmark は、保存されたベンチマークモードのクエリを集計し、
トークン節約量の合計を返します。元の製品の auth ツールは、
この再構築には含まれません。対話型のデバイスログインと
AWS プロファイルの検証は、公開されている仕様からは再現できないため、
ここで提供するのは 6 つのツールのうち 5 つです。
CLI
npx @reneturcios/repofind search '{"query": "retry backoff logic", "repo": "."}'
npx @reneturcios/repofind locate '{"literal": "DATABASE_URL", "mode": "locations"}'
npx @reneturcios/repofind expand '{"file_path": "src/client.ts", "anchor_line": 83}'
npx @reneturcios/repofind find_related '{"file_path": "src/client.ts", "anchor_line": 83}'
npx @reneturcios/repofind read_benchmark '{}'
npx @reneturcios/repofind --version
各ツールのサブコマンドは、ツールの引数を 1 つの
JSON 文字列として受け取り、結果を JSON として出力します。終了コード:
成功時は 0、実行時エラー時は 1、使用方法エラー時は 2 です。
環境変数:TAKARA_API_KEY はセマンティック検索部分を有効にします。
MIRU_OPENAI_BASE_URL(デフォルトは
https://infer.takara.ai/v1)と
MIRU_OPENAI_EMBEDDING_MODEL(デフォルトは ds1-miru-int8)は
埋め込みエンドポイントを設定します。
MIRU_MAX_INDEX_FILES はインデックスの上限を設定します(デフォルトは 10000)。
MIRU_BENCHMARK_HISTORY_PATH はベンチマーク履歴の保存先を上書きします。
MCP サーバー
npx -y @reneturcios/repofind mcp
MCP クライアントの設定:
{
"mcpServers": {
"repofind": {
"command": "npx",
"args": ["-y", "@reneturcios/repofind", "mcp"]
}
}
}
ツール
-
search— インデックス化されたローカルコードベースを対象に、セマンティック検索とキーワード検索を組み合わせて検索します。コード探索ではデフォルトで使用し、質問ごとに1回呼び出します。query(string、必須)— 自然言語またはコードによるクエリrepo(string、任意)— インデックス化するローカルディレクトリ。デフォルトは作業ディレクトリですinclude/exclude(string arrays、任意)— リポジトリ相対パスに対する、gitignore形式のグロブパターンdedupe_by_file(boolean、デフォルトはtrue)— ファイルごとに最も関連性の高い結果を保持します
最大5件の結果を含む
{hits, ranking, notes}を返します。各結果は{file_path, absolute_path, start_line, end_line, anchor_line, truncated, snippet, score}で、スコアは小数点以下4桁に丸められます。 -
locate— インデックス化されたローカルコードベース内で、完全一致する文字列(環境変数、シンボル、エラーコード)を検索します。literal(string、必須)。modeはcount、files、locations、linesのいずれか(デフォルトはlines)。limitは検索箇所/行数の上限です。ignore_case(デフォルトはfalse)。repo、include、excludeはsearchと同様です。
-
expand— 検索結果の周辺にある同じファイル内のコンテキストを、アンカーチャンクと隣接チャンクを含めて返します。file_pathとanchor_line(必須)。before/afterはチャンク数(それぞれデフォルトは1)です。
-
find_related— 検索結果のfile_pathとanchor_lineをもとに、他のファイルから類似コードを検索します。検索元のファイルを除外し、searchと同じ形式の{hits, ranking, notes}を返します。 -
read_benchmark— 保存されたベンチマークモードのクエリから、累積トークン削減量を集計します。{queries, total_tokens_saved, average_tokens_saved}を返します。履歴ファイルが存在しない場合は、エラーではなく削減量ゼロとして集計されます。
Docker
docker run -i ghcr.io/cloudcorprecords/repofind
docker run --rm ghcr.io/cloudcorprecords/repofind locate '{"literal": "TODO"}'
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (temp fixture repos, fake embedder, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。