返回市场
仓库分析mcp

仓库分析mcp

作者:DocNR2 星标更新:2025-03-11

项目介绍

Repository Analyzer MCP Server

一个提供代码仓库分析工具的模型上下文协议(MCP)服务器,特别关注与Nostr相关的项目。

特性

  • 分析代码结构、组件、依赖项以及最近的更改
  • 使用模式匹配搜索仓库代码
  • 查看整个仓库或特定文件的git历史记录
  • 访问文件内容和目录列表
  • 专门用于分析NDK(Nostr开发工具包)仓库的工具
  • 分析Nostr协议实现和NIP(Nostr实现可能性)

安装

  1. 克隆此仓库

  2. 安装依赖项:

npm install
  1. 构建项目:
npm run build

使用

设置仓库路径

MCP服务器以以下方式处理文件路径:

默认访问行为

  1. 默认访问:如果没有指定路径,默认情况下服务器将访问当前工作目录(cwd)。

  2. 配置特定目录:要指定Claude可以访问哪些目录,请在Claude配置中设置DEFAULT_REPO_PATH环境变量。

  3. 每个命令覆盖:用户可以在其命令中通过repoPath参数覆盖默认路径,例如:

    analyze-code --focus=structure --repoPath=/another/directory
    
  4. 客户端权限:请记住,Claude桌面版在执行访问您文件系统的工具之前会请求权限。

分析多个仓库

无需重启服务器即可分析多个仓库,只需在命令中直接指定仓库路径:

# 分析特定仓库的结构
analyze-repo --focus=overview --repoType=generic --repoPath=/path/to/specific/repo

# 分析不同仓库中的代码
analyze-code --focus=structure --path=src/index.js --repoPath=/path/to/another/repo

# 在另一个仓库中搜索模式
search-code --query="addEventListener" --filePattern="*.js" --repoPath=/path/to/third/repo

所有分析工具(analyze-repoanalyze-codesearch-codegit-historyanalyze-ndkanalyze-ndk-filesanalyze-nostr-protocol)都接受一个repoPath参数,该参数会覆盖默认路径。

连接到Claude桌面版

要将此MCP服务器连接到Claude桌面版:

  1. 编辑您的Claude桌面配置文件:
# 在macOS上
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 在Windows上
# 编辑%AppData%\Claude\claude_desktop_config.json
  1. 添加服务器配置:
{
  "mcpServers": {
    "repo-analyzer": {
      "command": "node",
      "args": [
        "/absolute/path/to/repo-analyzer-mcp/dist/index.js"
      ],
      "transport": "stdio",
      "env": {
        "NODE_ENV": "production",
        "DEFAULT_REPO_PATH": "/path/to/default/repository"
      }
    }
  }
}

/absolute/path/to/repo-analyzer-mcp替换为您安装此工具的实际完整路径,并将/path/to/default/repository替换为默认要分析的仓库路径。

  1. 保存文件并重新启动Claude桌面版。

故障排除

如果Claude桌面版无法启动或MCP服务器未出现:

  1. 检查配置文件是否有JSON语法错误
  2. 确保所有路径都是绝对(完整)路径并且正确
  3. 确保每个对象的最后一项后没有尾随逗号
  4. 检查Claude桌面日志中的错误:~/Library/Logs/Claude/mcp*.log
  5. 对于额外的调试,您可以在配置的env部分添加"DEBUG": "mcp:*"
  6. 重新启动Claude桌面版

可用工具

analyze-code

分析具有不同焦点选项的代码文件:

  • structure:检查文件结构,包括行数、函数、类等。
  • components:识别React组件、钩子使用等。
  • dependencies:列出导入和依赖项。
  • changes:显示最近的git历史记录和对文件的更改。

示例:

分析src/index.ts的代码结构

search-code

在仓库中搜索特定模式,可选地过滤文件模式。

示例:

在.js文件中搜索"addEventListener"

git-history

检索仓库或特定文件的git提交历史记录。

示例:

显示README.md的git历史记录,限制为5个提交

analyze-ndk

分析Nostr开发工具包(NDK)仓库,重点关注:

  • implementation:核心实现细节
  • migrations:版本变化和迁移指南
  • all:实现和迁移两者

带有明确仓库路径的示例:

分析位于/path/to/ndk-repo的NDK实现

analyze-ndk-files

探索NDK文件结构,重点关注:

  • overview:仓库的一般概述
  • components:组件架构
  • api:API结构和设计
  • architecture:整体架构和模式
  • all:全面分析

带有明确仓库路径的示例:

分析位于/path/to/ndk-repo的NDK文件,重点是组件

analyze-nostr-protocol

分析Nostr协议仓库,重点关注:

  • events:NIP中定义的事件类型和结构
  • implementations:跨不同语言的实现细节

带有明确仓库路径的示例:

分析位于/path/to/nips-repo的Nostr协议事件,重点是社交背景

analyze-repo

提供各种焦点选项的一般仓库分析:

  • overview:高级仓库信息
  • components:组件结构和组织
  • api:API定义和结构
  • architecture:整体架构模式
  • implementation:实现细节
  • all:全面分析各个方面

示例:

分析仓库,重点是架构

资源

服务器还提供了对以下资源的访问:

  • file://{filePath}:从仓库读取文件内容
  • dir://{dirPath}:从仓库列出目录内容

示例:

显示package.json文件的内容

专用分析的目录结构

为了让专用分析工具正常工作,仓库应遵循某些结构:

NDK仓库结构

分析器查找以下结构之一:

  • 包含名为@nostr-dev-kit/ndk的根package.json的仓库
  • 包含名为@nostr-dev-kit/ndkpackage.jsonndk目录的仓库

Nostr协议仓库结构

分析器查找以下结构之一:

  • 包含NIP的Markdown文件的nips目录的仓库
  • 包含提到"NIP"和"Nostr实现可能性"的README的仓库
  • 名称、描述或关键词中提及"nostr"的package.json的仓库

开发

要在开发模式下运行:

npm run dev

许可证

MIT