Project Files Read-only MCP
Project Files Read-only MCP
Локальный, многокорневой, доступный только для чтения MCP-сервис файловой системы. Он открывает MCP-клиентам только явно зарегистрированные каталоги проектов и предоставляет ограниченные возможности просмотра каталогов, поиска по именам файлов, чтения текста, а также извлечения содержимого DOCX, PDF и XLSX.
Сервис не регистрирует инструменты записи, редактирования, копирования, перемещения, удаления или выполнения команд. Он подходит для безопасной передачи небольшого количества локальных файлов проекта таким MCP-клиентам, как ChatGPT, для чтения, не exposing при этом весь пользовательский каталог или диск.
Это независимый общественный проект, не являющийся официальным продуктом OpenAI, и OpenAI не даёт никаких гарантий его безопасности или совместимости.
Адрес проекта: github.com/13030109506/project-files-readonly-mcp.
Возможности
Сервис фиксированно предоставляет 9 инструментов только для чтения.
Инструмент | Назначение |
| Вывести список разрешённых корневых каталогов |
| Прочитать метаданные файла или каталога |
| Вывести нечувствительные, не-ссылочные записи каталога |
| Рекурсивный поиск по имени файла |
| Пофрагментное чтение текста, Markdown, CSV, исходного кода и т.д. |
| Пакетное чтение до 10 текстовых файлов |
| Извлечение чистого текста DOCX по абзацам |
| Извлечение текста PDF по страницам |
| Чтение XLSX по листам и окнам строк/столбцов |
Все инструменты помечены как доступные только для чтения и неразрушающие. Интеграционные тесты также проверяют, что в списке инструментов нет возможностей записи, удаления, перемещения, копирования или выполнения команд.
Related MCP server: chatgpt-file-mcp
Границы безопасности
Принимаются только абсолютные пути, зарегистрированные в
roots.json.Двойная проверка границ по лексическому пути и результату
realpath.Отклоняются относительные пути, UNC-пути, пути устройств, Windows ADS, побеги через символические ссылки и точки соединения.
По умолчанию блокируются
.git,.env, файлы учётных данных, закрытые ключи, виртуальные окружения и каталоги зависимостей.Для текстовых, каталоговых, поисковых и документных ответов установлены ограничения по размеру и количеству.
Перед разбором DOCX, XLSX проверяются пути в архиве, количество записей, развёрнутый объём, коэффициент сжатия, шифрование, макросы, ActiveX и встроенные объекты.
Бинарные документы разбираются в отдельном Worker с ограничениями по времени и памяти.
Формулы XLSX не выполняются, внешние ссылки не открываются.
Более полное описание границ см. в Модель безопасности. Эти меры защиты сужают поверхность вызова MCP, но не заменяют права учётной записи Windows и безопасность хоста. Запускайте этот сервис только на доверенном компьютере и с доверенными MCP-клиентами.
Требования к окружению
Windows 10 или Windows 11
Node.js
22.13–22.xили Node.js24+npm
Опциональный OpenAI
tunnel-client, требуется только для подключения к ChatGPT Secure MCP Tunnel
Быстрый старт
Клонируйте проект.
git clone https://github.com/13030109506/project-files-readonly-mcp.git
Set-Location .\project-files-readonly-mcpУстановите зависимости.
npm ciСоздайте локальную конфигурацию. roots.json добавлен в .gitignore и не будет отправлен в Git.
Copy-Item .\roots.example.json .\roots.json
notepad .\roots.jsonЗамените примеры путей на конкретные каталоги проектов, которые вы готовы разрешить. Не настраивайте весь диск, пользовательский каталог, Desktop или Documents.
{
"roots": [
{
"name": "my-project",
"path": "C:\\Projects\\my-project"
}
]
}Запустите тесты.
npm testЛокальный запуск.
npm startСервис использует STDIO и обычно запускается MCP-клиентом или процессом Tunnel. Отсутствие интерактивных подсказок при прямом запуске — это нормально.
Также можно использовать другие файлы конфигурации через переменные окружения.
$env:MCP_PROJECT_ROOTS_CONFIG = 'D:\Config\project-files-roots.json'
npm startДобавление корневого каталога проекта
Сначала остановите MCP-сервис, затем выполните следующую команду.
.\add-project-root.ps1 -Path 'D:\Projects\another-project' -Name 'another-project'
npm testСкрипт отклонит весь диск, пользовательский каталог, Desktop и Documents. После изменения конфигурации необходимо перезапустить MCP или Tunnel; работающий сервис не подгружает корневые каталоги на лету.
Подключение ChatGPT Secure MCP Tunnel
Сначала скачайте официальный tunnel-client со страницы настроек OpenAI Platform Tunnel. Этот проект ищет программу в следующем порядке.
Переменная окружения
TUNNEL_CLIENT_PATHtunnel-client\tunnel-client.exeвнутри проектаСистемный
PATHЛокальный каталог версии в
%USERPROFILE%\Tools\OpenAI\tunnel-client
После создания Tunnel сгенерируйте локальный profile.
.\configure-tunnel.ps1 -TunnelId 'tunnel_your_id'Скрипт по умолчанию устанавливает локальный порт проверки работоспособности на 127.0.0.1:8081 и сохраняет в profile ссылку env:CONTROL_PLANE_API_KEY, не сохраняя сам API Key.
Запуск на переднем плане выполняется следующим образом. Runtime API Key попадает в окружение текущего процесса через скрытый ввод и очищается после выхода Tunnel.
.\start-tunnel.ps1Создание OpenAI Secure MCP Tunnel, права и шаги подключения к ChatGPT описаны в официальной документации.
Скрытый запуск после входа в Windows
Для долгосрочного использования можно установить запланированное задание для текущего пользователя Windows.
.\install-tunnel-autostart.ps1Установщик сохраняет только Runtime API Key, зашифрованный DPAPI текущего пользователя, и не записывает открытый ключ в параметры задачи, файлы проекта или журналы. Запланированное задание запускается через скрытую VBS-обёртку: сначала выполняется doctor, затем запускается Tunnel, и проверяются healthz и readyz.
Расположение статуса и журналов следующее.
Get-ScheduledTask -TaskName 'OpenAI Project Files Read Only Tunnel'
Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8081/healthz
Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8081/readyz%LOCALAPPDATA%\OpenAI\ProjectFilesReadOnly\tunnel-client.logУдаление задачи и файла зашифрованного ключа.
.\remove-tunnel-autostart.ps1Полное описание см. в Руководство по эксплуатации Windows Tunnel.
Поддержка файлов
Тип | Поддержка |
TXT, Markdown, JSON, CSV, TSV, распространённые исходные коды | Поддержка пофрагментного чтения |
DOCX | Поддержка извлечения абзацев чистого текста |
Поддержка извлечения текстового слоя, без OCR | |
XLSX | Поддержка окон строк/столбцов и кэшированных результатов формул |
DOC, XLS, файлы Office с макросами | Отклоняются |
Зашифрованные файлы или файлы с паролем | Отклоняются |
PDF со сканированными изображениями | OCR не выполняется, может вернуть пустой текст |
Базы данных и другие произвольные бинарные форматы | Не разбираются |
Содержимое документов всегда является недоверенным вводом. MCP-клиенты не должны воспринимать текст из файлов как системные инструкции.
Тестирование
npm testТесты покрывают следующие области.
Чтение внутри корневого каталога и отказ вне его
Отказ для чувствительных файлов
Отказ для относительных путей
Границы символических ссылок и Windows junction
Список инструментов только для чтения и annotations
Чтение CSV, DOCX, PDF, XLSX
Отказ для активного содержимого Office и аномальных архивов
Форматы документов, разбивка на страницы, листы и ограничения ответов
Структура проекта
server.mjs MCP 工具注册与文本读取
path-guard.mjs 路径、白名单和敏感文件边界
document-reader.mjs 安全读取与 Worker 调度
document-worker.mjs DOCX、PDF、XLSX 内容提取
archive-guard.mjs Office 压缩包检查
roots.example.json 可提交的配置示例
*-test.mjs 安全、文档和集成测试
*.ps1 / *.vbs / *.cmd Windows Tunnel 与计划任务脚本Ответственное раскрытие
Если вы обнаружите побег пути, несанкционированное чтение, утечку чувствительной информации или проблемы с разбором документов, пожалуйста, не публикуйте материалы воспроизведения с реальными чувствительными файлами. Порядок действий описан в SECURITY.md.
Лицензия
Проект использует MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browse and manage files in your Moxt AI workspace from any MCP client.
Read-only MCP for AI usage profiles, leaderboards, stats, and docs; no writes or private data.
Read-only verifier for 25 ProofRelay MCP tools and non-confidential evidence bundles.
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA security-first, read-only MCP server that lets clients browse and read text, PDF, and XLSX files from an explicit allowlist of local folders, with strict path and secret protections.MIT
- FlicenseNot gradedqualityBmaintenanceEnables local ChatGPT/OpenAI MCP clients to read files and search within explicitly authorized directories using read-only, policy-constrained tools.1-
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to explicitly approved local and remote filesystems, including inspecting Git repositories and querying SQLite and DuckDB databases, with root administration kept separate from MCP.-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to securely list, find, search, read, and stat files in selected Linux directories via read-only MCP tools, with no write, execute, or escape capabilities.6MIT