依赖分析-MCP

@mkearl/dependency-mcp
2 Stars 380 次浏览 mkearl 更新于 2026-08-23

分析代码库以生成跨多种编程语言的依赖关系图和架构洞察,帮助开发人员理解代码结构并根据架构规则进行验证。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

DependencyMCP 服务器

一个模型上下文协议(MCP)服务器,用于分析代码库以生成依赖图和架构洞察。该服务器有助于理解多种编程语言中的代码结构、依赖关系和架构模式。

功能

  • 多语言支持:分析 TypeScript、JavaScript、C#、Python 等语言的依赖关系
  • 依赖图生成:以 JSON 或 DOT 格式创建详细的依赖图
  • 架构分析:推断架构层并验证规则
  • 文件元数据:从源文件中提取导入、导出和其他元数据
  • 评分系统:根据架构规则和模式评估代码库

安装

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

配置

在您的 MCP 设置文件中添加配置(通常位于 ~/.config/cline/mcp_settings.json 或等效位置):

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)

可用工具

analyze_dependencies

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

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

get_dependency_graph

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

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

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/**/*"]
    }
  ]
});

示例输出

依赖图 (JSON)

{
  "src/index.ts": {
    "path": "src/index.ts",
    "imports": ["./utils", "./services/parser"],
    "exports": ["analyze", "generateGraph"],
    "namespaces": [],
    "architecturalLayer": "Infrastructure",
    "dependencies": ["src/utils.ts", "src/services/parser.ts"],
    "dependents": []
  }
}

架构评分

{
  "score": 85,
  "violations": [
    "src/domain/user.ts -> src/infrastructure/database.ts violates architectural rules"
  ],
  "details": "Score starts at 100 and deducts 5 points per violation"
}

开发

该服务器使用 TypeScript 构建,并使用以下技术:

  • Zod 用于模式验证
  • diff 用于文件比较
  • minimatch 用于 glob 模式匹配

项目结构

dependency-mcp/
├── src/
│   └── index.mts    # Main server implementation
├── package.json
├── tsconfig.json
└── README.md

添加新语言的支持

要为新的编程语言添加支持:

  1. 将文件扩展名添加到默认的 fileTypes 数组中
  2. parseFileImportsparseFileExports 中实现特定于语言的正则表达式模式
  3. inferArchitecturalLayer 添加任何特定于语言的架构模式

许可证

MIT

相关 MCP 服务