关于 Repository Analyzer MCP Server
面向代码仓库分析的 MCP 服务,提供通用结构、依赖、代码搜索和 Git 历史检查,并针对 Nostr、NDK 与 NIPs 提供专用分析。
主要功能
- 01分析仓库结构、组件与依赖
- 02按模式搜索代码
- 03查看仓库或文件的 Git 历史
- 04读取文件并列出目录
- 05分析 NDK 与 Nostr 协议
适用场景
- 01梳理仓库架构与 API
- 02定位匹配特定模式的代码
- 03检查文件近期变更
- 04分析 NDK 实现或 NIPs
MCP 相关
通过 MCP 向客户端提供仓库分析工具,以及读取文件内容和列出目录的资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Repository Analyzer MCP 服务
一个 Model Context Protocol(MCP)服务,提供用于分析代码仓库的工具,尤其专注于与 Nostr 相关的项目。
功能
- 分析代码结构、组件、依赖项和近期变更
- 使用模式匹配搜索仓库代码
- 查看整个仓库或特定文件的 git 历史记录
- 访问文件内容和目录列表
- 用于分析 NDK(Nostr Development Kit)仓库的专用工具
- 分析 Nostr Protocol 实现和 NIPs(Nostr Implementation Possibilities)
安装
-
克隆此仓库
-
安装依赖项:
npm install
- 构建项目:
npm run build
用法
设置仓库路径
MCP 服务按以下方式处理文件路径:
默认访问行为
-
默认访问:如果未指定路径,服务默认访问当前工作目录(cwd)。
-
配置特定目录:要指定 Claude 可以访问的目录,请在 Claude 配置中设置
DEFAULT_REPO_PATH环境变量。 -
按命令覆盖:用户可以通过命令中的
repoPath参数覆盖默认路径,例如:analyze-code --focus=structure --repoPath=/another/directory -
客户端权限:请记住,Claude for Desktop 在执行访问文件系统的工具之前会请求权限。
分析多个仓库
无需重启服务,只需在命令中直接指定仓库路径,即可分析多个仓库:
# Analyze structure of a specific repository
analyze-repo --focus=overview --repoType=generic --repoPath=/path/to/specific/repo
# Analyze code in a different repository
analyze-code --focus=structure --path=src/index.js --repoPath=/path/to/another/repo
# Search for patterns in yet another repository
search-code --query="addEventListener" --filePattern="*.js" --repoPath=/path/to/third/repo
所有分析工具(analyze-repo、analyze-code、search-code、git-history、analyze-ndk、analyze-ndk-files 和 analyze-nostr-protocol)都接受 repoPath 参数,用于覆盖默认路径。
连接到 Claude Desktop
要将此 MCP 服务连接到 Claude Desktop:
- 编辑 Claude Desktop 配置文件:
# On macOS
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows
# Edit %AppData%\Claude\claude_desktop_config.json
- 添加服务配置:
{
"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 替换为要默认分析的仓库路径。
- 保存文件并重启 Claude Desktop。
故障排除
如果 Claude Desktop 无法启动,或 MCP 服务未显示:
- 检查配置文件是否存在 JSON 语法错误
- 确保所有路径都是绝对(完整)路径且正确无误
- 确保每个对象的最后一项后没有逗号
- 检查 Claude Desktop 日志中的错误:
~/Library/Logs/Claude/mcp*.log - 如需进一步调试,可以在配置的
env部分添加"DEBUG": "mcp:*" - 重启 Claude Desktop
可用工具
analyze-code
根据不同的关注点分析代码文件:
structure:检查文件结构,包括行数、函数、类等components:识别 React 组件、hooks 的使用情况等dependencies:列出导入项和依赖项changes:显示近期 git 历史记录和文件变更
示例:
Analyze the code structure of src/index.ts
search-code
在仓库中搜索特定模式,可选择按文件模式筛选。
示例:
Search the code for "addEventListener" in .js files
git-history
获取仓库或特定文件的 git 提交历史记录。
示例:
Show me the git history for README.md, limit to 5 commits
analyze-ndk
分析 Nostr Development Kit(NDK)仓库,重点关注:
implementation:核心实现细节migrations:版本变更和迁移指南all:实现和迁移两者
显式指定仓库路径的示例:
Analyze NDK implementation at /path/to/ndk-repo
analyze-ndk-files
探索 NDK 文件结构,重点关注:
overview:仓库概览components:组件架构api:API 结构和设计architecture:整体架构和模式all:全面分析
显式指定仓库路径的示例:
Analyze NDK files with focus on components at /path/to/ndk-repo
analyze-nostr-protocol
分析 Nostr 协议仓库,重点关注:
events:NIP 中定义的事件类型和结构implementations:不同语言的实现细节
指定仓库路径的示例:
Analyze Nostr Protocol events at /path/to/nips-repo with focus on social context
analyze-repo
提供通用的仓库分析,并支持多种关注点:
overview:仓库的高层信息components:组件结构和组织方式api:API 定义和结构architecture:整体架构模式implementation:实现细节all:全面分析所有方面
示例:
Analyze the repo with focus on architecture
资源
该服务还提供以下访问方式:
file://{filePath}:读取仓库中的文件内容dir://{dirPath}:列出仓库中的目录内容
示例:
Show me the content of the package.json file
专项分析的目录结构
若要让专项分析工具正常工作,仓库应遵循特定结构:
NDK 仓库结构
分析器会查找以下任一结构:
- 根目录下有
package.json,且其名称为@nostr-dev-kit/ndk的仓库 - 包含
ndk目录,且该目录中有名称为@nostr-dev-kit/ndk的package.json的仓库
Nostr 协议仓库结构
分析器会查找以下任一结构:
- 包含
nips目录,且其中有 NIP 的 Markdown 文件的仓库 - README 中提及“NIP”和“Nostr Implementation Possibilities”的仓库
package.json的名称、描述或关键词中包含“nostr”的仓库
开发
在开发模式下运行:
npm run dev
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。