MCP文件排名工具
一种工具,可以帮助根据重要性(1-10分制)对代码库文件进行排名,跟踪文件依赖关系,并提供摘要,所有功能都可通过简单的基于JSON的接口访问。
服务介绍
文件排名 MCP (Model Context Protocol) 服务器
一个基于 TypeScript 的工具,用于根据重要性对代码库中的文件进行排名,并提供带有依赖跟踪的摘要。
概述
此工具可帮助您跟踪项目中哪些文件最重要,为其评分从 0(最不重要)到 10(最重要)。它还跟踪文件依赖关系并提供摘要,帮助您理解代码库结构。
功能
- 在 0-10 的范围内对文件进行排名(10 表示最重要)
- 跟踪和可视化文件依赖关系(哪些文件导入了哪些文件)
- 实时文件系统监控以实现自动更新
- 获取文件摘要(为 LLM 集成预留占位符)
- 查询单个文件、目录或整个代码库的排名
- 自我文档化的 API,带发现端点
- 简单的 stdio JSON 接口
设置
-
克隆此仓库
-
使构建脚本可执行:
chmod +x build.sh -
运行构建脚本:
./build.sh此操作将:
- 检查 Node.js 安装
- 安装项目依赖
- 编译 TypeScript 代码
- 生成 MCP 配置
- 在
/tmp/file-rank-mcp_*.log中创建详细的日志文件
-
将生成的
mcp.json移动到项目的.cursor/目录中,以便与 Cursor AI 一起使用
使用
该工具通过标准输入输出(stdio)使用 Model Context Protocol (MCP) 以 JSON 格式通信。它会自动监控您的项目目录的变化,并相应地更新文件树。
运行服务器
node dist/mcp-server.js
支持的语言
服务器自动检测以下语言中的依赖关系:
- Python:
import和from ... import语句 - C/C++:
#include指令 - Rust:
use和mod语句 - Lua:
require语句 - JavaScript/TypeScript:
import语句
工作原理
该工具维护了一个实时的代码库树结构,存储在 file-tree.json 中。每当检测到项目目录中的更改时,该文件会自动更新。
数据结构
文件树存储在一个 JSON 结构中:
{
"path": "/path/to/directory",
"name": "directory_name",
"isDirectory": true,
"children": [
{
"path": "/path/to/file.ts",
"name": "file.ts",
"isDirectory": false,
"dependencies": ["/path/to/dependency.ts"],
"importance": 8
}
]
}
依赖检测
该工具分析源代码以检测依赖关系:
- 扫描文件内容以查找特定于语言的导入模式
- 解析相对导入到绝对路径
- 验证被导入文件是否存在
- 根据依赖计数计算重要性
文件重要性计算
文件的重要性得分(0-10)基于:
- 依赖数量(导入此文件的文件数)
- 在依赖树中的位置
- 文件类型和位置
技术栈
- TypeScript/Node.js
- Model Context Protocol SDK (v1.7.0)
- Chokidar 用于文件系统监控
- ES2020 目标与 CommonJS 模块
开发
要修改或扩展项目:
-
对
src目录中的 TypeScript 文件进行修改 -
运行构建脚本来编译并更新配置:
./build.sh -
运行服务器:
node dist/mcp-server.js
构建脚本将执行以下操作:
- 安装任何新的依赖项
- 编译 TypeScript 代码
- 生成更新的 MCP 配置
- 创建详细的日志文件以供故障排查
与 LLM 的集成
当前实现包括一个用于 LLM 集成的占位符。在生产环境中,可以扩展服务器以:
- 使用 LLM 生成文件摘要
- 分析代码复杂性和可维护性
- 提供智能的文件组织建议
- 根据代码结构生成文档
许可证
此项目根据 GNU 通用公共许可证 v3 (GPL-3.0) 获得许可。请参阅 LICENSE 文件获取完整的许可证文本。