返回市场
仓库探索者

仓库探索者

作者:DocNR3 星标更新:2025-04-11

项目介绍

Repo Explorer

一个强大的MCP(模型上下文协议)服务器,提供无缝探索、搜索和分析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 开发工具包"
      },
      "ndk-mobile": {
        "url": "https://github.com/nostr-dev-kit/ndk-mobile",
        "description": "移动平台上的 NDK"
      },
      "nips": {
        "url": "https://github.com/nostr-protocol/nips",
        "description": "Nostr 实现可能性"
      }
    },
    "databases": {
      "watermelondb": {
        "url": "https://github.com/Nozbe/WatermelonDB",
        "description": "适用于 React 和 React Native 的高性能响应式数据库"
      }
    },
    "react-native": {
      "core": {
        "url": "https://github.com/facebook/react-native",
        "description": "React Native 核心"
      },
      "paper": {
        "url": "https://github.com/callstack/react-native-paper",
        "description": "React Native 的 Material Design"
      },
      "navigation": {
        "url": "https://github.com/react-navigation/react-navigation",
        "description": "React Native 的导航"
      },
      "expo": {
        "url": "https://github.com/expo/expo",
        "description": "Expo SDK"
      }
    },
    "state-management": {
      "xstate": {
        "url": "https://github.com/statelyai/xstate",
        "description": "基于状态机的状态管理"
      },
      "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": "React 的表单管理"
      }
    }
  }
}

自定义配置

要自定义您的配置:

  1. 直接编辑 ~/.repo-explorer.json 文件
  2. 按需添加、删除或修改类别和仓库
  3. repoBaseDir 更改为存储仓库的首选位置

缓存系统

Repo Explorer实现了一个先进的缓存系统,显著提高了重复操作的性能,特别是代码搜索。

性能优势

  • 搜索结果缓存:存储先前搜索的结果以消除冗余文件扫描
  • 仓库结构缓存:维护仓库文件结构索引以加快模式匹配速度
  • 智能缓存失效:当仓库更新时自动刷新缓存
  • 结果限制控制:配置最大结果数和上下文行数以防止上下文窗口溢出

效率提升

缓存系统在不同大小的仓库上提供了显著的性能改进:

仓库大小文件数无缓存有缓存改进
小型(约10MB)1001.2秒0.05秒96%
中型(约100MB)1,0005.8秒0.1秒98%
大型(约1GB)10,00035秒0.2秒99%
非常大型(5GB+)50,000+3分钟以上0.5秒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开发者工具(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. 分叉仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到您的分支
  5. 创建拉取请求

许可证

MIT - 详情见LICENSE文件。