Repo Explorer

Repo Explorer

MCP服务器,通过高级缓存实现高效的Git仓库探索。跨多个仓库搜索代码模式,管理参考代码库,并分析模式,性能提升95%以上。通过桌面应用程序或VSCode扩展与Claude AI集成。可配置且平台无关。

DocNR

开发者工具
访问服务器

README

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 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) 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 开发者工具 (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 文件。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript