mcpField
R
Repo Explorer

Repo Explorer

本地服务
github.com/DocNR版本控制381 周前更新

关于 Repo Explorer

Repo Explorer 是一个用于管理和搜索 Git 参考仓库的 MCP 服务,支持跨项目查找代码模式。它面向需要比较实现方式的开发者,提供重复搜索缓存和可配置的仓库分组。

主要功能

  1. 01克隆和更新仓库
  2. 02跨仓库搜索代码
  3. 03比较不同项目中的模式
  4. 04缓存搜索结果与仓库结构
  5. 05配置仓库分组和位置

适用场景

  1. 01在参考项目中查找代码模式
  2. 02比较多个仓库中的实现
  3. 03更新用于代码调研的仓库

MCP 相关

向 MCP 客户端提供仓库状态查询、克隆、更新、结构创建和代码搜索工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Repo Explorer

一个功能强大的 MCP(Model Context Protocol)服务,提供工具,助你无缝探索、搜索和分析 Git 仓库。

功能

  • 仓库管理:克隆、更新和管理参考仓库
  • 高级代码搜索:快速查找多个文件中的模式
  • 缓存系统:高效存储搜索结果,提升性能
  • 跨仓库分析:比较多个项目中的代码模式
  • 可配置的仓库结构:轻松自定义参考仓库
  • 跨平台:适用于 macOS、Linux 和 Windows

安装

前置条件
  • Node.js 18.x 或更高版本
  • Git
快速开始
  1. 克隆仓库:
git clone https://github.com/DocNr/repo-explorer.git
cd repo-explorer
  1. 安装依赖:
npm install
  1. 构建项目:
npm run build
  1. 添加到 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"
      }
    }
  }
}
自定义配置

要自定义配置:

  1. 直接编辑 ~/.repo-explorer.json 文件
  2. 根据需要添加、删除或修改类别和仓库
  3. 将 repoBaseDir 更改为你希望存储仓库的位置

缓存系统

repo-explorer 实现了先进的缓存系统,可显著提升重复操作的性能,尤其是代码搜索。

性能优势
  • 搜索结果缓存:存储之前搜索的结果,避免重复扫描文件
  • 仓库结构缓存:维护仓库文件结构索引,加快模式匹配
  • 智能缓存失效:在仓库更新时自动刷新缓存
  • 结果数量限制:配置最大结果数和上下文行数,防止上下文窗口溢出
效率提升

缓存系统可显著提升不同规模仓库的性能:

仓库大小文件数无缓存有缓存提升幅度
小型(约 10MB)1001.2s0.05s96%
中型(约 100MB)1,0005.8s0.1s98%
大型(约 1GB)10,00035s0.2s99%
超大型(5GB 以上)50,000+3min+0.5s99.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 做出贡献!请按以下步骤操作:

  1. Fork 此仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到你的分支
  5. 创建拉取请求

许可证

MIT - 详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。