DependencyMCP 服务器使用说明

项目简介

DependencyMCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于代码库的依赖关系分析。它能够解析多种编程语言的代码,生成详细的依赖关系图,并提供架构分析和代码洞察功能。通过此服务器,LLM 客户端可以获取代码库的结构化信息,从而更好地理解和处理代码相关任务,例如代码生成、代码审查、架构设计等。

主要功能点

  • 多语言支持: 支持 TypeScript, JavaScript, C#, Python 等多种编程语言的依赖分析。
  • 依赖图生成: 可以生成 JSON 或 DOT 格式的详细依赖关系图,方便可视化和进一步分析。
  • 架构分析: 能够推断代码库的架构层次,并根据预设规则进行架构验证和评分。
  • 文件元数据提取: 从源代码文件中提取 imports, exports 等元数据信息。
  • 架构评分: 根据架构规则和模式对代码库进行评估和打分。
  • 工具集成: 提供一系列工具 (Tools),允许 MCP 客户端通过标准化的方式调用代码分析功能。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/MCP-Mirror/mkearl_dependency-mcp.git
    cd mkearl_dependency-mcp
  2. 安装依赖:

    npm install
  3. 构建项目:

    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 应用。

信息

分类

开发者工具