M

MCP文件排名工具

@admica/file_rank_mcp
1 Stars 485 次浏览 admica 更新于 2026-08-23

一种工具,可以帮助根据重要性(1-10分制)对代码库文件进行排名,跟踪文件依赖关系,并提供摘要,所有功能都可通过简单的基于JSON的接口访问。

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

服务介绍

文件排名 MCP (Model Context Protocol) 服务器

一个基于 TypeScript 的工具,用于根据重要性对代码库中的文件进行排名,并提供带有依赖跟踪的摘要。

概述

此工具可帮助您跟踪项目中哪些文件最重要,为其评分从 0(最不重要)到 10(最重要)。它还跟踪文件依赖关系并提供摘要,帮助您理解代码库结构。

功能

  • 在 0-10 的范围内对文件进行排名(10 表示最重要)
  • 跟踪和可视化文件依赖关系(哪些文件导入了哪些文件)
  • 实时文件系统监控以实现自动更新
  • 获取文件摘要(为 LLM 集成预留占位符)
  • 查询单个文件、目录或整个代码库的排名
  • 自我文档化的 API,带发现端点
  • 简单的 stdio JSON 接口

设置

  1. 克隆此仓库

  2. 使构建脚本可执行:

    chmod +x build.sh
    
  3. 运行构建脚本:

    ./build.sh
    

    此操作将:

    • 检查 Node.js 安装
    • 安装项目依赖
    • 编译 TypeScript 代码
    • 生成 MCP 配置
    • /tmp/file-rank-mcp_*.log 中创建详细的日志文件
  4. 将生成的 mcp.json 移动到项目的 .cursor/ 目录中,以便与 Cursor AI 一起使用

使用

该工具通过标准输入输出(stdio)使用 Model Context Protocol (MCP) 以 JSON 格式通信。它会自动监控您的项目目录的变化,并相应地更新文件树。

运行服务器

node dist/mcp-server.js

支持的语言

服务器自动检测以下语言中的依赖关系:

  • Python:importfrom ... import 语句
  • C/C++:#include 指令
  • Rust:usemod 语句
  • 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 模块

开发

要修改或扩展项目:

  1. src 目录中的 TypeScript 文件进行修改

  2. 运行构建脚本来编译并更新配置:

    ./build.sh
    
  3. 运行服务器:

    node dist/mcp-server.js
    

构建脚本将执行以下操作:

  • 安装任何新的依赖项
  • 编译 TypeScript 代码
  • 生成更新的 MCP 配置
  • 创建详细的日志文件以供故障排查

与 LLM 的集成

当前实现包括一个用于 LLM 集成的占位符。在生产环境中,可以扩展服务器以:

  • 使用 LLM 生成文件摘要
  • 分析代码复杂性和可维护性
  • 提供智能的文件组织建议
  • 根据代码结构生成文档

许可证

此项目根据 GNU 通用公共许可证 v3 (GPL-3.0) 获得许可。请参阅 LICENSE 文件获取完整的许可证文本。

相关 MCP 服务