存储库分析器MCP服务器
一种模型上下文协议(MCP)服务器,提供用于分析代码存储库的工具,特别关注与Nostr相关的项目。
特性
- 分析代码结构、组件、依赖关系和最近的更改
- 使用模式匹配搜索存储库代码
- 查看整个存储库或特定文件的git历史记录
- 访问文件内容和目录列表
- 用于分析NDK(Nostr Development Kit)存储库的专用工具
- 分析Nostr协议实现和NIP(Nostr实现可能性)
安装
- 克隆此存储库
- 安装依赖项:
npm install- 构建项目:
npm run build用法
设置存储库路径
MCP服务器通过以下方式处理文件路径:
默认访问行为
- 默认访问权限:默认情况下,如果没有指定路径,服务器将访问当前工作目录(cwd)。
- 配置特定目录:要指定Claude可以访问的目录,请设置
DEFAULT_REPO_PATHClaude配置中的环境变量。
- 按命令覆盖:用户可以用以下命令覆盖默认路径
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)接受a repoPath 覆盖默认路径的参数。
连接到克劳德桌面
要将此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 - 对于其他调试,您可以添加
"DEBUG": "mcp:*"到env配置的一部分 - 重新启动克劳德桌面
可用工具
分析代码
分析具有不同焦点选项的代码文件:
structure:检查文件结构,包括行数、函数、类等。components:标识React组件、钩子使用等。dependencies:列出导入和依赖项changes:显示最近的git历史记录和对文件的更改
例子:
Analyze the code structure of src/index.ts搜索代码
使用可选的文件模式过滤在存储库中搜索特定模式。
例子:
Search the code for "addEventListener" in .js filesgit历史
检索存储库或特定文件的git提交历史记录。
例子:
Show me the git history for README.md, limit to 5 commits分析ndk
分析Nost Development Kit(NDK)存储库,重点关注:
implementation:核心实施细节migrations:版本更改和迁移指南all:实施和迁移
带有显式存储库路径的示例:
Analyze NDK implementation at /path/to/ndk-repo分析ndk文件
重点探讨NDK文件结构:
overview:存储库概述components:组件架构api:API结构和设计architecture:总体架构和模式all:综合分析
带有显式存储库路径的示例:
Analyze NDK files with focus on components at /path/to/ndk-repo分析nost协议
分析Nostr协议存储库,重点关注:
events:NIP中定义的事件类型和结构implementations:不同语言的实施细节
带有显式存储库路径的示例:
Analyze Nostr Protocol events at /path/to/nips-repo with focus on social context分析回购
提供具有各种焦点选项的通用存储库分析:
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目录包含package.json与名称@nostr-dev-kit/ndk
Nostr协议存储库结构
分析器会查找以下结构之一:
- 具有以下功能的存储库
nips包含NIP Markdown文件的目录 - 一个带有README的存储库,其中提到了“NIP”和“Nostr实现可能性”
- 具有以下功能的存储库
package.json在名称、描述或关键字中引用“nosrt”的
发展
要在开发模式下运行:
npm run dev许可证
麻省理工学院

