Сервер FileScopeMCP (протокол контекста модели)
✨ Мгновенно поймите и визуализируйте структуру и зависимости вашей кодовой базы! ✨
Инструмент на основе TypeScript для ранжирования файлов в вашей кодовой базе по важности, отслеживания зависимостей и предоставления сводок, помогающих понять структуру кода.
Обзор
Этот сервер MCP анализирует вашу кодовую базу, чтобы определить наиболее важные файлы на основе отношений зависимости. Он генерирует оценки важности (0-10) для каждого файла, отслеживает двунаправленные зависимости и позволяет вам добавлять пользовательские сводки для файлов. Вся эта информация становится доступной для инструментов ИИ через протокол контекста модели Cursor.
Функции
🚀 Усовершенствуйте свое понимание кода! FileScopeMCP предоставляет информацию напрямую вашему помощнику на основе искусственного интеллекта:
- 🎯 Анализ важности файлов
- Ранжируйте файлы по шкале от 0 до 10 в зависимости от их роли в кодовой базе.
- Рассчитайте важность, используя входящие/исходящие зависимости.
- Мгновенно определяйте наиболее важные файлы в вашем проекте.
- Интеллектуальный расчет учитывает тип файла, местоположение и значимость имени.
- 🔗 Отслеживание зависимости
- Отобразите двунаправленные зависимости между файлами.
- Определите, какие файлы импортируют данный файл (зависимые).
- Посмотрите, какие файлы импортируются данным файлом (зависимости).
- Различайте локальные и пакетные зависимости.
- Поддержка нескольких языков: Python, JavaScript, TypeScript, C/C++, Rust, Lua, Zig.
- 📊 Визуализация
- Создавайте диаграммы Mermaid для визуализации взаимосвязей файлов.
- Цветовая визуализация на основе оценок важности.
- Поддержка графов зависимостей, деревьев каталогов или гибридных представлений.
- Вывод HTML со встроенным рендерингом, включая переключение тем и адаптивный дизайн.
- Настройте глубину диаграммы, фильтруйте по важности и корректируйте параметры макета.
- 📝 Сводки файлов
- Добавляйте в любой файл резюме, созданные человеком или искусственным интеллектом.
- Извлекайте сохраненные сводки, чтобы быстро понять назначение файла.
- Сводки сохраняются после перезапуска сервера.
- 📚 Поддержка нескольких проектов
- Создавайте и управляйте несколькими деревьями файлов для различных областей проекта.
- Настройте отдельные деревья с различными базовыми каталогами.
- Легко переключайтесь между различными деревьями файлов.
- Кэшированные деревья для более быстрых последующих операций.
- 💾 Постоянное хранилище
- Все данные автоматически сохраняются на диск в формате JSON.
- Загрузить существующие деревья файлов без повторного сканирования файловой системы.
- Отслеживайте, когда в последний раз обновлялись файловые деревья.
Установка
- Клонировать этот репозиторий
- Создайте проект:Скрипт сборки установит все зависимости узлов и сгенерирует mcp.json.Окна:Скопируйте сгенерированную конфигурацию mcp.json в каталог
.cursor
вашего проекта:Linux: (Курсор в Windows, но ваш проект в Linux WSL, затем поместите MCP в Linux и выполните сборку) - Обновите путь 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:
- Фаза сбора: регистрация всех узлов и связей.
- Фаза определения узлов: создание определений для всех узлов перед любыми ссылками.
- Фаза генерации ребер: создание ребер между определенными узлами.
Это гарантирует, что все диаграммы имеют правильный синтаксис и отображаются правильно. Вывод 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 для их добавления.
Анализ проекта
- Создайте дерево файлов для вашего проекта:
- Найдите самые важные файлы:
- Получите подробную информацию о конкретном файле:
Работа с резюме
- Прочитайте содержимое файла, чтобы понять его:
- Добавьте резюме в файл:
- Получить сводку позже:
Создание диаграмм
- Создайте базовую схему структуры проекта:
- Создайте HTML-диаграмму с зависимостями:
- Настройте макет диаграммы:
Использование наблюдения за файлами
- Включите наблюдение за файлами для вашего проекта:
- Проверьте текущий статус просмотра файла:
- Обновите конфигурацию отслеживания файлов:
Будущие улучшения
- Добавить поддержку большего количества языков программирования
- Добавить более сложные алгоритмы расчета важности
- Расширение возможностей настройки диаграммы
- Поддержка экспорта диаграмм в дополнительные форматы
Лицензия
Этот проект лицензирован в соответствии с GNU General Public License v3 (GPL-3.0). Полный текст лицензии см. в файле LICENSE .
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Инструмент TypeScript, который ранжирует файлы в вашей кодовой базе по важности, отслеживает зависимости и предоставляет сводки файлов, помогающие понять структуру кода с помощью протокола контекста модели Cursor.
- Обзор
- Функции
- Установка
- Как это работает
- Технические подробности
- Доступные инструменты
- Примеры использования
- Будущие улучшения
- Лицензия
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAnalyzes 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 -1PythonMIT License
- AsecurityFlicenseAqualityA 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 -132TypeScript
- -securityAlicense-qualityA 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 -2TypeScriptGPL 3.0
- -securityFlicense-qualityA 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 -29JavaScript