DependencyMCP 服务器使用说明
项目简介
DependencyMCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于代码库的依赖关系分析。它能够解析多种编程语言的代码,生成详细的依赖关系图,并提供架构分析和代码洞察功能。通过此服务器,LLM 客户端可以获取代码库的结构化信息,从而更好地理解和处理代码相关任务,例如代码生成、代码审查、架构设计等。
主要功能点
- 多语言支持: 支持 TypeScript, JavaScript, C#, Python 等多种编程语言的依赖分析。
- 依赖图生成: 可以生成 JSON 或 DOT 格式的详细依赖关系图,方便可视化和进一步分析。
- 架构分析: 能够推断代码库的架构层次,并根据预设规则进行架构验证和评分。
- 文件元数据提取: 从源代码文件中提取 imports, exports 等元数据信息。
- 架构评分: 根据架构规则和模式对代码库进行评估和打分。
- 工具集成: 提供一系列工具 (Tools),允许 MCP 客户端通过标准化的方式调用代码分析功能。
安装步骤
-
克隆仓库:
git clone https://github.com/MCP-Mirror/mkearl_dependency-mcp.git cd mkearl_dependency-mcp -
安装依赖:
npm install -
构建项目:
npm run build
服务器配置
要将 DependencyMCP 服务器添加到 MCP 客户端,您需要在客户端的 MCP 设置文件中进行配置。以下是一个示例配置,通常您的 MCP 客户端配置文件位于 '~/.config/cline/mcp_settings.json' 或类似位置。
{ "mcpServers": { "DependencyMCP": { "command": "node", "args": [ "<dependency-mcp仓库路径>/dist/index.js" ], "env": { "MAX_LINES_TO_READ": "1000", // (可选) 最大读取文件行数,默认 1000 行 "CACHE_DIR": "<dependency-mcp仓库路径>/.dependency-cache", // (可选) 依赖缓存目录,默认 .dependency-cache "CACHE_TTL": "3600000" // (可选) 缓存过期时间,单位毫秒,默认 1 小时 (3600000 毫秒) } } } }
配置参数说明:
- 'server name' (DependencyMCP): 服务器名称,客户端通过此名称调用服务器的功能。
- 'command' (node): 启动服务器的命令,这里使用 Node.js 运行 JavaScript 代码。
- 'args' ([ "<dependency-mcp仓库路径>/dist/index.js" ]): 启动命令的参数,指向编译后的服务器入口文件 'dist/index.js'。请将 '<dependency-mcp仓库路径>' 替换为您实际的仓库路径。
- 'env' (环境变量): 可选的环境变量配置,可以自定义服务器的行为:
- 'MAX_LINES_TO_READ': 限制每个文件读取的最大行数,用于处理大型文件,防止分析时间过长。
- 'CACHE_DIR': 指定缓存文件存储目录,用于缓存依赖分析结果,提高性能。
- 'CACHE_TTL': 设置缓存的过期时间,单位为毫秒,控制缓存的有效时长。
请注意: 您需要将 '<dependency-mcp仓库路径>' 替换为 DependencyMCP 仓库在您本地文件系统中的实际路径。
基本使用方法
配置完成后,您可以使用 MCP 客户端调用 DependencyMCP 服务器提供的工具 (Tools) 来进行代码分析。以下是一些常用的工具调用示例:
1. 分析代码依赖 (analyze_dependencies):
const result = await client.callTool("DependencyMCP", "analyze_dependencies", { path: "/path/to/project", // 要分析的代码库路径,请替换为实际路径 excludePatterns: ["node_modules", "dist"], // (可选) 排除的目录或文件模式 maxDepth: 10, // (可选) 最大依赖分析深度 fileTypes: [".ts", ".js", ".cs"] // (可选) 要分析的文件类型 }); console.log(result);
2. 获取依赖图 (get_dependency_graph):
const result = await client.callTool("DependencyMCP", "get_dependency_graph", { path: "/path/to/project", // 要获取依赖图的代码库路径,请替换为实际路径 format: "dot" // (可选) 输出格式,可选 "dot" 或 "json",默认为 "json" }); console.log(result);
3. 获取文件元数据 (get_file_metadata):
const result = await client.callTool("DependencyMCP", "get_file_metadata", { path: "/path/to/file.ts" // 要获取元数据的文件路径,请替换为实际路径 }); console.log(result);
4. 获取架构评分 (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/**/*"] } ] }); console.log(result);
请注意: 在使用这些工具时,请将示例代码中的路径 '/path/to/project' 和 '/path/to/file.ts' 替换为您需要分析的实际代码库或文件路径。 您可以根据需要配置工具的参数,例如排除模式、文件类型、输出格式和架构规则等。
通过以上步骤,您就可以成功安装、配置和使用 DependencyMCP 服务器,利用其强大的代码分析功能来增强您的 LLM 应用。
信息
分类
开发者工具