项目简介
Dependency Analysis MCP服务器是一个基于Model Context Protocol (MCP) 的应用后端,旨在帮助大型语言模型 (LLM) 理解代码库的结构和依赖关系。它通过分析代码仓库,提取依赖信息,生成依赖关系图,并进行架构分析,从而为LLM提供更丰富的上下文信息,提升代码相关的任务(如代码补全、代码理解、代码重构等)的性能。
主要功能点
- 多语言支持: 支持 TypeScript, JavaScript, C#, Python 等多种编程语言的代码依赖分析。
- 依赖关系图生成: 能够生成 JSON 或 DOT 格式的详细依赖关系图,帮助理解代码模块之间的相互关系。
- 架构分析: 可以推断代码库的架构层次,并根据预设规则进行架构验证和评分。
- 文件元数据提取: 从源代码文件中提取 imports、exports 等元数据信息。
- 架构评分系统: 根据架构规则和模式评估代码库,量化代码库的架构质量。
- 提供多种工具: 通过 MCP 协议向客户端暴露多个工具,方便 LLM 按需调用分析功能。
安装步骤
- 克隆仓库:
git clone https://github.com/mkearl/dependency-mcp - 安装依赖:
cd dependency-mcp npm install - 构建项目:
npm run build
服务器配置
要将 DependencyMCP 服务器配置到 MCP 客户端,您需要在客户端的 MCP 设置文件中添加以下 JSON 配置。通常,该文件位于 '~/.config/cline/mcp_settings.json' 或类似路径。
{ "mcpServers": { "DependencyMCP": { "command": "node", "args": ["/path/to/dependency-mcp/dist/index.js"], "env": { "MAX_LINES_TO_READ": "1000", // (可选) 从每个文件读取的最大行数,默认 1000 "CACHE_DIR": "/path/to/dependency-mcp/.dependency-cache", // (可选) 依赖缓存文件存储目录,默认 .dependency-cache "CACHE_TTL": "3600000" // (可选) 缓存有效期,毫秒为单位,默认 1小时 (3600000) } } } }
注意:
- 请将 '/path/to/dependency-mcp' 替换为您克隆的 'dependency-mcp' 仓库的实际路径。
- 'command' 字段指定了启动服务器的命令为 'node'。
- 'args' 字段指定了服务器启动脚本的路径为 '/path/to/dependency-mcp/dist/index.js'。
- 'env' 字段允许您设置环境变量来配置服务器的行为,例如 'MAX_LINES_TO_READ'、'CACHE_DIR' 和 'CACHE_TTL'。
基本使用方法
配置完成后,您的 MCP 客户端就可以通过调用 'client.callTool' 方法来使用 DependencyMCP 服务器提供的工具。以下是一些可用的工具及其基本用法示例:
-
analyze_dependencies: 分析代码库依赖关系。
const result = await client.callTool("DependencyMCP", "analyze_dependencies", { path: "/path/to/project", // 代码库路径 excludePatterns: ["node_modules", "dist"], // (可选) 排除的文件/目录模式 maxDepth: 10, // (可选) 最大分析深度 fileTypes: [".ts", ".js", ".cs"] // (可选) 分析的文件类型 }); -
get_dependency_graph: 获取代码库的依赖关系图。
const result = await client.callTool("DependencyMCP", "get_dependency_graph", { path: "/path/to/project", // 代码库路径 format: "dot" // (可选) 输出格式,可选 "dot" 或 "json" (默认) }); -
get_file_metadata: 获取指定文件的元数据。
const result = await client.callTool("DependencyMCP", "get_file_metadata", { path: "/path/to/file.ts" // 文件路径 }); -
get_architectural_score: 获取代码库的架构评分。
const result = await client.callTool("DependencyMCP", "get_architectural_score", { path: "/path/to/project", // 代码库路径 rules: [ // 架构规则 { pattern: "src/domain/**/*", allowed: ["src/domain/**/*"], forbidden: ["src/infrastructure/**/*"] } ] });
请参考仓库的 README.md 文件和源代码了解更详细的工具参数和使用方法。
信息
分类
开发者工具