关于 Repo Explorer
Repo Explorer 是一个用于管理和搜索 Git 参考仓库的 MCP 服务,支持跨项目查找代码模式。它面向需要比较实现方式的开发者,提供重复搜索缓存和可配置的仓库分组。
主要功能
- 01克隆和更新仓库
- 02跨仓库搜索代码
- 03比较不同项目中的模式
- 04缓存搜索结果与仓库结构
- 05配置仓库分组和位置
适用场景
- 01在参考项目中查找代码模式
- 02比较多个仓库中的实现
- 03更新用于代码调研的仓库
MCP 相关
向 MCP 客户端提供仓库状态查询、克隆、更新、结构创建和代码搜索工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Repo Explorer
一个功能强大的 MCP(Model Context Protocol)服务,提供工具,助你无缝探索、搜索和分析 Git 仓库。
功能
- 仓库管理:克隆、更新和管理参考仓库
- 高级代码搜索:快速查找多个文件中的模式
- 缓存系统:高效存储搜索结果,提升性能
- 跨仓库分析:比较多个项目中的代码模式
- 可配置的仓库结构:轻松自定义参考仓库
- 跨平台:适用于 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 桌面应用
将 repo-explorer 添加到 MCP 配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或操作系统对应的位置:
{
"mcpServers": {
"repo-explorer": {
"command": "node",
"args": ["/path/to/repo-explorer/build/index.js"],
"env": {},
"disabled": false
}
}
}
用于 Claude Developer Tool(VSCode 扩展)
将 repo-explorer 添加到你的 MCP 设置文件 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(macOS),或添加到适用于你的操作系统的位置:
{
"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 做出贡献!请按以下步骤操作:
- Fork 此仓库
- 创建功能分支
- 提交更改
- 推送到你的分支
- 创建拉取请求
许可证
MIT - 详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。