article
README
🚀 依赖关系 MCP 服务器
此模型上下文协议 (MCP) 服务器,可对代码库进行分析,进而生成依赖图并提供架构见解。其能助力用户理解代码结构、依赖项以及多种编程语言的架构模式。
🚀 快速开始
该依赖关系 MCP 服务器能帮助你分析代码库的依赖关系并生成架构见解。按照以下步骤开启使用:
- 克隆仓库。
- 安装依赖:
npm install
- 构建项目:
npm run build
✨ 主要特性
- 多语言支持:可分析 TypeScript、JavaScript、C#、Python 等语言的依赖关系。
- 依赖图生成:能生成详细的依赖图,支持 JSON 或 DOT 格式。
- 架构分析:可推断架构层并验证规则。
- 文件元数据:能够提取导入、导出和其他文件信息。
- 评分系统:可评估代码库对架构规则和模式的符合程度。
📦 安装指南
- 克隆仓库。
- 安装依赖:
npm install
- 构建项目:
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 # 依赖管理文件
添加新语言
- 更新
fileTypes列表,包含新语言的文件扩展名。 - 实现对新语言的支持,确保其正确解析和处理。
📄 许可证
本项目遵循 MIT 协议。
微信扫一扫