Skip to main content
Glama

FileScopeMCP

by admica

Сервер FileScopeMCP (протокол контекста модели)

✨ Мгновенно поймите и визуализируйте структуру и зависимости вашей кодовой базы! ✨

Инструмент на основе TypeScript для ранжирования файлов в вашей кодовой базе по важности, отслеживания зависимостей и предоставления сводок, помогающих понять структуру кода.

Обзор

Этот сервер MCP анализирует вашу кодовую базу, чтобы определить наиболее важные файлы на основе отношений зависимости. Он генерирует оценки важности (0-10) для каждого файла, отслеживает двунаправленные зависимости и позволяет вам добавлять пользовательские сводки для файлов. Вся эта информация становится доступной для инструментов ИИ через протокол контекста модели Cursor.

Функции

🚀 Усовершенствуйте свое понимание кода! FileScopeMCP предоставляет информацию напрямую вашему помощнику на основе искусственного интеллекта:

  • 🎯 Анализ важности файлов
    • Ранжируйте файлы по шкале от 0 до 10 в зависимости от их роли в кодовой базе.
    • Рассчитайте важность, используя входящие/исходящие зависимости.
    • Мгновенно определяйте наиболее важные файлы в вашем проекте.
    • Интеллектуальный расчет учитывает тип файла, местоположение и значимость имени.
  • 🔗 Отслеживание зависимости
    • Отобразите двунаправленные зависимости между файлами.
    • Определите, какие файлы импортируют данный файл (зависимые).
    • Посмотрите, какие файлы импортируются данным файлом (зависимости).
    • Различайте локальные и пакетные зависимости.
    • Поддержка нескольких языков: Python, JavaScript, TypeScript, C/C++, Rust, Lua, Zig.
  • 📊 Визуализация
    • Создавайте диаграммы Mermaid для визуализации взаимосвязей файлов.
    • Цветовая визуализация на основе оценок важности.
    • Поддержка графов зависимостей, деревьев каталогов или гибридных представлений.
    • Вывод HTML со встроенным рендерингом, включая переключение тем и адаптивный дизайн.
    • Настройте глубину диаграммы, фильтруйте по важности и корректируйте параметры макета.
  • 📝 Сводки файлов
    • Добавляйте в любой файл резюме, созданные человеком или искусственным интеллектом.
    • Извлекайте сохраненные сводки, чтобы быстро понять назначение файла.
    • Сводки сохраняются после перезапуска сервера.
  • 📚 Поддержка нескольких проектов
    • Создавайте и управляйте несколькими деревьями файлов для различных областей проекта.
    • Настройте отдельные деревья с различными базовыми каталогами.
    • Легко переключайтесь между различными деревьями файлов.
    • Кэшированные деревья для более быстрых последующих операций.
  • 💾 Постоянное хранилище
    • Все данные автоматически сохраняются на диск в формате JSON.
    • Загрузить существующие деревья файлов без повторного сканирования файловой системы.
    • Отслеживайте, когда в последний раз обновлялись файловые деревья.

Установка

  1. Клонировать этот репозиторий
  2. Создайте проект:Скрипт сборки установит все зависимости узлов и сгенерирует mcp.json.Окна:
    build.bat
    Скопируйте сгенерированную конфигурацию mcp.json в каталог .cursor вашего проекта:
    { "mcpServers": { "FileScopeMCP": { "command": "node", "args": ["<build script sets this>/mcp-server.js","--base-dir=C:/Users/admica/my/project/base"], "transport": "stdio", "disabled": false, "alwaysAllow": [] } } }
    Linux: (Курсор в Windows, но ваш проект в Linux WSL, затем поместите MCP в Linux и выполните сборку)
    build.sh
    { "mcpServers": { "FileScopeMCP": { "command": "wsl", "args": ["-d", "Ubuntu-24.04", "/home/admica/FileScopeMCP/run.sh"], "transport": "stdio", "disabled": false, "alwaysAllow": [] } } }
  3. Обновите путь arg --base-dir до базового пути вашего проекта.

Как это работает

Обнаружение зависимости

Инструмент сканирует исходный код на предмет наличия операторов импорта и других шаблонов, специфичных для данного языка:

  • Python: import и from ... import
  • JavaScript/TypeScript: операторы import и вызовы require()
  • C/C++: директивы #include
  • Rust: операторы use и mod
  • Lua: require операторы
  • Zig: директивы @import

Расчет важности

Файлам присваиваются баллы важности (0–10) на основе взвешенной формулы, которая учитывает:

  • Количество файлов, импортирующих этот файл (зависимых)
  • Количество файлов, которые импортирует этот файл (зависимости)
  • Тип и расширение файла (при этом файлы TypeScript/JavaScript получают более высокие базовые баллы)
  • Расположение в структуре проекта (файлы в src/ имеют больший вес)
  • Именование файлов (файлы типа «index», «main», «server» и т. д. получают дополнительные баллы)

Файл, являющийся центральным в кодовой базе (импортируемый многими файлами), будет иметь более высокую оценку.

Генерация диаграмм

Система использует трехэтапный подход для генерации допустимого синтаксиса Mermaid:

  1. Фаза сбора: регистрация всех узлов и связей.
  2. Фаза определения узлов: создание определений для всех узлов перед любыми ссылками.
  3. Фаза генерации ребер: создание ребер между определенными узлами.

Это гарантирует, что все диаграммы имеют правильный синтаксис и отображаются правильно. Вывод HTML включает:

  • Адаптивный дизайн, работающий на любом устройстве
  • Переключение между светлой и темной темой с определением системных настроек
  • Клиентская визуализация Mermaid для оптимальной производительности
  • Временная метка генерации

Нормализация пути

Система обрабатывает различные форматы путей для обеспечения единообразной идентификации файлов:

  • Форматы путей Windows и Unix
  • Абсолютные и относительные пути
  • URL-кодированные пути
  • Кроссплатформенная совместимость

Хранение файлов

Все данные файлового дерева хранятся в файлах JSON со следующей структурой:

  • Метаданные конфигурации (имя файла, базовый каталог, метка времени последнего обновления)
  • Полное дерево файлов с зависимостями, иждивенцами, оценками важности и сводками

Технические подробности

  • TypeScript/Node.js : создан с использованием TypeScript для обеспечения безопасности типов и современных функций JavaScript.
  • Протокол контекста модели : реализует спецификацию MCP для интеграции с курсором.
  • Mermaid.js : использует синтаксис Mermaid для генерации диаграмм
  • Хранилище JSON : использует простые файлы JSON для сохранения данных.
  • Нормализация пути : кроссплатформенная обработка пути для поддержки Windows и Unix
  • Кэширование : реализует кэширование для более быстрых повторяющихся операций.

Доступные инструменты

Сервер MCP предоставляет следующие инструменты:

Управление деревом файлов

  • list_saved_trees : Список всех сохраненных деревьев файлов
  • create_file_tree : Создать новую конфигурацию дерева файлов для определенного каталога
  • select_file_tree : Выберите существующее дерево файлов для работы.
  • delete_file_tree : Удалить конфигурацию дерева файлов

Анализ файла

  • list_files : Список всех файлов в проекте с указанием их важности.
  • get_file_importance : Получить подробную информацию о конкретном файле, включая зависимости и зависимые элементы
  • find_important_files : поиск наиболее важных файлов в проекте на основе настраиваемых критериев
  • read_file_content : Прочитать содержимое определенного файла
  • recalculate_importance : Пересчитать значения важности для всех файлов на основе зависимостей

Сводки файлов

  • get_file_summary : Получить сохраненную сводку определенного файла
  • set_file_summary : Установить или обновить сводку определенного файла

Просмотр файлов

  • toggle_file_watching : Включить/выключить наблюдение за файлами
  • get_file_watching_status : Получить текущий статус наблюдения за файлом
  • update_file_watching_config : Обновить конфигурацию отслеживания файлов

Генерация диаграмм

  • generate_diagram : Создание диаграмм «Русалка» с настраиваемыми параметрами
    • Форматы вывода: текст русалки ( .mmd ) или HTML со встроенным рендерингом
    • Стили диаграмм: по умолчанию, зависимости, каталог или гибридные представления
    • Параметры фильтра: максимальная глубина, минимальный порог важности
    • Варианты компоновки: направление (TB, BT, LR, RL), расстояние между узлами, расстояние между рангами

Примеры использования

Самый простой способ начать — включить этот mcp в курсоре и сказать курсору разобраться и использовать его. Как только mcp запустится, он построит начальное дерево json. Скажите LLM сделать сводки всех важных файлов и использовать set_file_summary mcp для их добавления.

Анализ проекта

  1. Создайте дерево файлов для вашего проекта:
    create_file_tree(filename: "my-project.json", baseDirectory: "/path/to/project")
  2. Найдите самые важные файлы:
    find_important_files(limit: 5, minImportance: 5)
  3. Получите подробную информацию о конкретном файле:
    get_file_importance(filepath: "/path/to/project/src/main.ts")

Работа с резюме

  1. Прочитайте содержимое файла, чтобы понять его:
    read_file_content(filepath: "/path/to/project/src/main.ts")
  2. Добавьте резюме в файл:
    set_file_summary(filepath: "/path/to/project/src/main.ts", summary: "Main entry point that initializes the application, sets up routing, and starts the server.")
  3. Получить сводку позже:
    get_file_summary(filepath: "/path/to/project/src/main.ts")

Создание диаграмм

  1. Создайте базовую схему структуры проекта:
    generate_diagram(style: "directory", maxDepth: 3, outputPath: "diagrams/project-structure", outputFormat: "mmd")
  2. Создайте HTML-диаграмму с зависимостями:
    generate_diagram(style: "hybrid", maxDepth: 2, minImportance: 5, showDependencies: true, outputPath: "diagrams/important-files", outputFormat: "html")
  3. Настройте макет диаграммы:
    generate_diagram(style: "dependency", layout: { direction: "LR", nodeSpacing: 50, rankSpacing: 70 }, outputPath: "diagrams/dependencies", outputFormat: "html")

Использование наблюдения за файлами

  1. Включите наблюдение за файлами для вашего проекта:
    toggle_file_watching()
  2. Проверьте текущий статус просмотра файла:
    get_file_watching_status()
  3. Обновите конфигурацию отслеживания файлов:
    update_file_watching_config(config: { debounceMs: 500, autoRebuildTree: true, watchForNewFiles: true, watchForDeleted: true, watchForChanged: true })

Будущие улучшения

  • Добавить поддержку большего количества языков программирования
  • Добавить более сложные алгоритмы расчета важности
  • Расширение возможностей настройки диаграммы
  • Поддержка экспорта диаграмм в дополнительные форматы

Лицензия

Этот проект лицензирован в соответствии с GNU General Public License v3 (GPL-3.0). Полный текст лицензии см. в файле LICENSE .

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Инструмент TypeScript, который ранжирует файлы в вашей кодовой базе по важности, отслеживает зависимости и предоставляет сводки файлов, помогающие понять структуру кода с помощью протокола контекста модели Cursor.

  1. Обзор
    1. Функции
      1. Установка
        1. Как это работает
          1. Обнаружение зависимости
          2. Расчет важности
          3. Генерация диаграмм
          4. Нормализация пути
          5. Хранение файлов
        2. Технические подробности
          1. Доступные инструменты
            1. Управление деревом файлов
            2. Анализ файла
            3. Сводки файлов
            4. Просмотр файлов
            5. Генерация диаграмм
          2. Примеры использования
            1. Анализ проекта
            2. Работа с резюме
            3. Создание диаграмм
            4. Использование наблюдения за файлами
          3. Будущие улучшения
            1. Лицензия

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                Analyzes source code dependencies across multiple programming languages in the specified directory to identify file relationships, assisting in dependency management and project structure understanding.
                Last updated -
                1
                Python
                MIT License
              • A
                security
                F
                license
                A
                quality
                A TypeScript-based server that visualizes project directory structures in Markdown format, automatically documenting file contents with syntax highlighting and supporting customizable exclusion patterns.
                Last updated -
                1
                3
                2
                TypeScript
                • Linux
                • Apple
              • -
                security
                A
                license
                -
                quality
                A tool that helps rank codebase files by importance (1-10 scale), track file dependencies, and provide summaries, all accessible through a simple JSON-based interface.
                Last updated -
                2
                TypeScript
                GPL 3.0
                • Linux
              • -
                security
                F
                license
                -
                quality
                A Model Context Protocol server that helps AI code editors locate TypeScript symbol definitions in codebases, particularly useful for finding original definitions of imported symbols and classes.
                Last updated -
                29
                JavaScript

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/admica/FileScopeMCP'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server