返回市场
依赖管理器-MCP

依赖管理器-MCP

作者:mkearl15 星标更新:2024-12-14

项目介绍

DependencyMCP Server

这是一个基于模型上下文协议(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"], // 可选
  maxDepth: 10, // 可选
  fileTypes: [".ts", ".js", ".cs"] // 可选
});

get_dependency_graph

获取代码库的依赖关系图,格式为JSON或DOT。

const result = await client.callTool("DependencyMCP", "get_dependency_graph", {
  path: "/path/to/project",
  format: "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/**/*"]
    }
  ]
});

示例输出

依赖关系图(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 违反了架构规则"
  ],
  "details": "分数从100开始,每违反一次扣除5分"
}

开发

该服务器使用TypeScript构建,并使用以下工具:

  • Zod进行模式验证
  • diff进行文件比较
  • minimatch进行通配符匹配

项目结构

dependency-mcp/
├── src/
│   └── index.mts    # 主服务器实现
├── package.json
├── tsconfig.json
└── README.md

添加对新语言的支持

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

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

许可证

MIT