返回 MCP 目录
public公开dns本地运行

dependency-mcp

一个多语言代码依赖分析服务,生成依赖图和架构评分

article

README

🚀 依赖关系 MCP 服务器

此模型上下文协议 (MCP) 服务器,可对代码库进行分析,进而生成依赖图并提供架构见解。其能助力用户理解代码结构、依赖项以及多种编程语言的架构模式。

🚀 快速开始

该依赖关系 MCP 服务器能帮助你分析代码库的依赖关系并生成架构见解。按照以下步骤开启使用:

  1. 克隆仓库。
  2. 安装依赖:
npm install
  1. 构建项目:
npm run build

✨ 主要特性

  • 多语言支持:可分析 TypeScript、JavaScript、C#、Python 等语言的依赖关系。
  • 依赖图生成:能生成详细的依赖图,支持 JSON 或 DOT 格式。
  • 架构分析:可推断架构层并验证规则。
  • 文件元数据:能够提取导入、导出和其他文件信息。
  • 评分系统:可评估代码库对架构规则和模式的符合程度。

📦 安装指南

  1. 克隆仓库。
  2. 安装依赖:
npm install
  1. 构建项目:
npm run build

📚 详细文档

配置

添加到 MCP 设置文件(通常位于 ~/.config/cline/mcp_settings.json 或类似路径):

{
  "mcpServers": {
    "DependencyMCP": {
      "command": "node",
      "args": ["path/to/dependency-mcp/dist/index.js"],
      "env": {
        "MAX_LINES_TO_READ": "1000",
        "CACHE_DIR": "path/to/dependency-mcp/.dependency-cache",
        "CACHE_TTL": "3600000"
      }
    }
  }
}

环境变量说明:

  • MAX_LINES_TO_READ:每文件最大读取行数(默认:1000)。
  • CACHE_DIR:存储依赖缓存的目录(默认:.dependency-cache)。
  • CACHE_TTL:缓存过期时间,单位为毫秒(默认:1 小时 = 3600000)。

已用工具

分析依赖关系

分析代码库中的依赖关系并生成依赖图。

const result = await client.callTool("DependencyMCP", "analyze_dependencies", {
  path: "/path/to/project",
  excludePatterns: ["node_modules", "dist"], // 可选参数
  maxDepth: 10, // 可选参数
  fileTypes: [".ts", ".js", ".cs"] // 可选参数
});

获取依赖图

以 JSON 或 DOT 格式获取代码库的依赖图。

const result = await client.callTool("DependencyMCP", "get_dependency_graph", {
  path: "/path/to/project",
  format: "dot" // 或 "json"(默认)
});

获取文件元数据

获取特定文件的详细信息。

const result = await client.callTool("DependencyMCP", "get_file_metadata", {
  path: "/path/to/file.ts"
});

架构评分

评估代码库对架构规则和模式的符合程度。

const result = await client.callTool("DependencyMCP", "architecture_score", {
  path: "/path/to/project"
});

输出示例

依赖图(JSON 格式):

{
  "nodes": [
    { "id": "1", "label": "main" },
    { "id": "2", "label": "dependencies" }
  ],
  "edges": [
    { "from": "1", "to": "2", "label": "depends-on" }
  ]
}

架构分数(JSON 格式):

{
  "score": 85,
  "description": "代码库符合 85% 的架构规则。"
}

开发

技术栈

  • TypeScript
  • Zod:用于类型安全配置。
  • Diff:用于文件差异比较。
  • Minimatch:用于文件模式匹配。

项目结构

dependency-mcp/
├── src/
│   ├── index.ts        # 入口文件
│   ├── graph.ts       # 图生成逻辑
│   └── architecture.ts # 架构分析模块
└── package.json      # 依赖管理文件

添加新语言

  1. 更新 fileTypes 列表,包含新语言的文件扩展名。
  2. 实现对新语言的支持,确保其正确解析和处理。

📄 许可证

本项目遵循 MIT 协议。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端