Repo Explorer について
Repo Explorerは、参照用Gitリポジトリを管理し、複数プロジェクトにまたがってコードパターンを検索するMCPサーバーです。実装を比較する開発者向けで、検索結果のキャッシュとリポジトリ構成のカスタマイズに対応しています。
主な機能
- 01リポジトリのクローンと更新
- 02複数リポジトリのコード検索
- 03プロジェクト間のパターン比較
- 04検索結果と構造のキャッシュ
- 05リポジトリの分類と場所の設定
活用シーン
- 01参照プロジェクトからコードパターンを検索
- 02複数リポジトリの実装を比較
- 03コード調査用リポジトリを更新
MCP 対応
リポジトリの状態確認、クローン、更新、構成作成、コード検索のツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Repo Explorer
Git リポジトリをシームレスに探索、検索、分析するためのツールを提供する、強力な MCP(Model Context Protocol)サーバーです。
機能
- リポジトリ管理:参照リポジトリのクローン作成、更新、管理
- 高度なコード検索:複数のファイルからパターンをすばやく検索
- キャッシュシステム:検索結果を効率的に保存してパフォーマンスを向上
- リポジトリ横断分析:複数のプロジェクトにわたってコードパターンを比較
- 設定可能なリポジトリ構成:参照リポジトリを簡単にカスタマイズ
- プラットフォーム非依存:macOS、Linux、Windows で動作
インストール
前提条件
- Node.js 18.x 以上
- Git
クイックスタート
- リポジトリをクローンします:
git clone https://github.com/DocNr/repo-explorer.git
cd repo-explorer
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
- MCP 設定に追加します(下記のセットアップと設定を参照)
ツール
repo-explorer は、次の複数の MCP ツールを提供します:
repo_status:すべてのリポジトリまたは特定のリポジトリのステータスを取得clone_repo:特定のリポジトリをクローンupdate_repo:特定のリポジトリを更新(プル)create_reference_repos:参照リポジトリ構造を作成search_code:リポジトリ全体からコードを検索
設定システム
repo-explorer の設定システムでは、次のことができます:
- 参照リポジトリの保存場所をカスタマイズ
- 独自のリポジトリカテゴリとリポジトリを定義
- セッションをまたいで設定を保持
デフォルト設定
初回実行時、repo-explorer はデフォルト設定を含む設定ファイルを ~/.repo-explorer.json に作成します。このファイルには、カテゴリ別に整理された人気のリポジトリが含まれています:
{
"repoBaseDir": "~/referencerepos",
"repositories": {
"nostr": {
"ndk": {
"url": "https://github.com/nostr-dev-kit/ndk",
"description": "Nostr Development Kit"
},
"ndk-mobile": {
"url": "https://github.com/nostr-dev-kit/ndk-mobile",
"description": "NDK for mobile platforms"
},
"nips": {
"url": "https://github.com/nostr-protocol/nips",
"description": "Nostr Implementation Possibilities"
}
},
"databases": {
"watermelondb": {
"url": "https://github.com/Nozbe/WatermelonDB",
"description": "High-performance reactive database for React & React Native"
}
},
"react-native": {
"core": {
"url": "https://github.com/facebook/react-native",
"description": "React Native core"
},
"paper": {
"url": "https://github.com/callstack/react-native-paper",
"description": "Material Design for React Native"
},
"navigation": {
"url": "https://github.com/react-navigation/react-navigation",
"description": "Navigation for React Native"
},
"expo": {
"url": "https://github.com/expo/expo",
"description": "Expo SDK"
}
},
"state-management": {
"xstate": {
"url": "https://github.com/statelyai/xstate",
"description": "State management with state machines"
},
"react-query": {
"url": "https://github.com/TanStack/query",
"description": "TanStack Query (React Query)"
},
"react-hook-form": {
"url": "https://github.com/react-hook-form/react-hook-form",
"description": "Form management for React"
}
}
}
}
設定のカスタマイズ
設定をカスタマイズするには:
~/.repo-explorer.jsonファイルを直接編集します- 必要に応じてカテゴリとリポジトリを追加、削除、変更します
- リポジトリの保存場所として希望する場所に
repoBaseDirを変更します
キャッシュシステム
repo-explorer は、高度なキャッシュシステムを実装しており、特にコード検索など、繰り返し実行される操作のパフォーマンスを大幅に向上させます。
パフォーマンス上のメリット
- 検索結果のキャッシュ:以前の検索結果を保存し、ファイルの重複スキャンをなくします
- リポジトリ構造のキャッシュ:リポジトリのファイル構造のインデックスを保持し、パターンマッチングを高速化します
- インテリジェントなキャッシュ無効化:リポジトリが更新されると、キャッシュを自動的に更新します
- 結果数の制限:コンテキストウィンドウのオーバーフローを防ぐため、最大結果数とコンテキスト行数を設定できます
効率の向上
キャッシュシステムにより、リポジトリの規模に応じて大幅なパフォーマンス向上が得られます:
| リポジトリの規模 | ファイル数 | キャッシュなし | キャッシュあり | 改善率 |
|---|---|---|---|---|
| 小(約10MB) | 100 | 1.2s | 0.05s | 96% |
| 中(約100MB) | 1,000 | 5.8s | 0.1s | 98% |
| 大(約1GB) | 10,000 | 35s | 0.2s | 99% |
| 非常に大(5GB以上) | 50,000+ | 3min+ | 0.5s | 99.7% |
*SSD ストレージを搭載した標準的な開発用マシンでテストを実施
実装の詳細
キャッシュシステムは、マルチレベル方式を採用しています:
- メモリキャッシュ:直近の検索結果を保存し、すぐにアクセスできるようにします
- 永続キャッシュ:セッション間でリポジトリ情報を保持します
- キャッシュ無効化:Git の更新を監視して、キャッシュを最新の状態に保ちます
- パターンベースの最適化:類似する検索パターンで部分的な結果を再利用します
セットアップと設定
Claude Desktop App の場合
repo-explorer を、~/Library/Application Support/Claude/claude_desktop_config.json(macOS)またはお使いの OS に応じた適切な場所にある MCP 設定ファイルに追加します:
{
"mcpServers": {
"repo-explorer": {
"command": "node",
"args": ["/path/to/repo-explorer/build/index.js"],
"env": {},
"disabled": false
}
}
}
Claude Developer Tool(VSCode 拡張機能)向け
macOS の場合は ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json、それ以外の OS の場合は適切な場所にある MCP 設定ファイルに repo-explorer を追加します。
{
"mcpServers": {
"repo-explorer": {
"command": "node",
"args": ["/path/to/repo-explorer/build/index.js"],
"env": {},
"disabled": false
}
}
}
使用例
repo-explorer のツールの使用例をいくつか紹介します。
すべてのリポジトリのステータスを取得する
<use_mcp_tool>
<server_name>repo-explorer</server_name>
<tool_name>repo_status</tool_name>
<arguments>{}</arguments>
</use_mcp_tool>
リポジトリの構造を作成する
<use_mcp_tool>
<server_name>repo-explorer</server_name>
<tool_name>create_reference_repos</tool_name>
<arguments>
{
"cloneAll": false
}
</arguments>
</use_mcp_tool>
特定のリポジトリをクローンする
<use_mcp_tool>
<server_name>repo-explorer</server_name>
<tool_name>clone_repo</tool_name>
<arguments>
{
"category": "databases",
"repo": "watermelondb"
}
</arguments>
</use_mcp_tool>
コードパターンを検索する
<use_mcp_tool>
<server_name>repo-explorer</server_name>
<tool_name>search_code</tool_name>
<arguments>
{
"pattern": "function\\s+\\w+\\s*\\(",
"filePattern": "*.js",
"category": "databases",
"repo": "watermelondb",
"maxResults": 30,
"contextLines": 2
}
</arguments>
</use_mcp_tool>
貢献
repo-explorer への貢献を歓迎します。次の手順に従ってください。
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
ライセンス
MIT - 詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。