Содержание
- Коротко: какой сервер выбрать
- 1. Official Filesystem (modelcontextprotocol/servers) — эталон
- 2. mark3labs/mcp-filesystem-server — Go без зависимостей
- 3. rust-mcp-stack/rust-mcp-filesystem — Rust для продакшена
- 4. Xuanwo/mcp-server-opendal — универсальный адаптер для 40+ бэкендов
- 5. MCP-серверы для FTP/SFTP — легаси-протоколы
- Сравнительная таблица
- Как выбрать под свой стек
- Коротко
- Что ещё важно знать
MCP-серверы файловой системы дают AI-агентам читать, писать и искать файлы на локальном диске, в облачных хранилищах и по FTP. Главный — Official Filesystem от Anthropic (87 745 звёзд, 14 инструментов, allowlist-доступ), но у него найдены критические уязвимости обхода песочницы (CVE-2025-53109, CVE-2025-53110). Альтернативы: mark3labs на Go (661 звезда, single binary без Node.js), rust-mcp-filesystem (158 звёзд, асинхронный Rust) и универсальный OpenDAL для 40+ бэкендов.
Мир MCP-серверов для файлов делится на два лагеря: локальные (доступ к файловой системе машины через allowlist-директории) и облачные (Google Drive, S3, Dropbox, OneDrive через API). В этом обзоре — лучшие open-source серверы для локальной файловой системы, которые работают прямо сейчас.
Коротко: какой сервер выбрать
Зависит от того, что вам нужно:
Хотите эталон — Official Filesystem от anthropic (modelcontextprotocol/servers). 14 инструментов, allowlist-доступ, MCP Roots protocol. Единственный недостаток — TypeScript/Node.js зависимость и найденные CVE на обход песочницы.
Не хотите Node.js — mark3labs/mcp-filesystem-server на Go. Single binary, Docker, поиск по содержимому файлов. Меньше возможностей, но не требует рантайма.
Rust для производительности — rust-mcp-filesystem от rust-mcp-stack. Полностью асинхронный, Blazing-fast по описанию авторов. Маленькое сообщество, активная разработка.
Нужен доступ к 40+ бэкендам — Xuanwo/mcp-server-opendal на Apache OpenDAL. Один сервер для S3, Azure Blob, GCS, HDFS, WebDAV, FTP и локальной ФС. Read-focused, write ограничен.
FTP/SFTP — alxspiker/mcp-server-ftp (TypeScript) или gradyyoung/sftp-ssh-mcp (SFTP + shell).
Архитектура MCP-серверов файловой системы: AI-агенты подключаются к разным серверам, которые дают доступ к локальным и облачным хранилищам
1. Official Filesystem — эталон с оговорками по безопасности
Stars: 87 745 (монорепозиторий) | Язык: TypeScript | Лицензия: MIT
Эталонная реализация от Anthropic, входящая в монорепозиторий modelcontextprotocol/servers. Это сервер по умолчанию, который рекомендуют большинство MCP-клиентов и с которого начинают почти все разработчики.
Что в нём уникального:
14 инструментов: read_text_file, write_file, edit_file, create_directory, list_directory, search_files, directory_tree, get_file_info, move_file, list_allowed_directories и другие. Есть поиск по именам файлов, построение дерева директорий, чтение свойств — практически всё, что нужно для управления файлами через AI-агента.
Directory allowlisting — доступны только те директории, которые вы явно передали через CLI-аргументы или через MCP Roots protocol. Roots protocol позволяет менять список разрешённых директорий на лету, без перезапуска сервера. Это ключевая фича, которой нет в большинстве альтернатив.
Проблемы безопасности (patched):
В середине 2025 года Cymulate Research Labs обнаружила две критические уязвимости обхода песочницы. CVE-2025-53110 — байпас containment через директории с похожими именами (сервер использовал наивную проверку через path.startsWith(), то есть /tmp/allowed_dir_evil обходил /tmp/allowed_dir). CVE-2025-53109 — обход через симлинки, дающий полный доступ к файловой системе.
Обе уязвимости исправлены в версии 2025.7.1. Если у вас стоит более старая версия — обновитесь немедленно. По данным ChatForest, 82% MCP-серверов с файловыми операциями уязвимы к path traversal — и official filesystem не исключение.
Ограничения: нет поддержки бинарных файлов (изображений, PDF), только TypeScript/Node.js, нет гранулярных per-tool разрешений (внутри allowlist — полный read/write).
Кому подходит: большинству разработчиков. Начинать лучше с него. Единственное условие — убедиться, что версия 2025.7.1 или новее.
2. mark3labs/mcp-filesystem-server — Go без зависимостей
Stars: 661 | Язык: Go | Лицензия: MIT
Go-реализация filesystem-сервера, которая решает главную проблему официального — зависимость от Node.js. Один бинарник, который можно скачать и запустить без установки рантайма. Docker-образ тоже есть.
Что выделяет его:
Single binary deployment — не нужно ставить Node.js, npm, пакеты. Скачал и запустил. Для контейнеризированных сред — официальный Docker-образ с монтированием директорий через volumes.
Поиск по содержимому файлов, а не только по именам. Официальный сервер ищет только по именам — mark3labs умеет искать текст внутри файлов, что критично для AI-агентов, работающих с кодом и документацией.
Symlink resolution с безопасным path traversal prevention — симлинки разрешаются, но с проверкой, чтобы они не выводили за пределы allowed directories.
Ограничения: меньше community-ресурсов, чем у официального сервера. Нет поддержки MCP Roots protocol — директории задаются только при запуске.
Кому подходит: командам, которые предпочитают Go-бинарники или работают в контейнерах и не хотят тянуть Node.js. Если поиск по содержимому файлов — ваша частая задача, mark3labs будет удобнее официального.
3. rust-mcp-stack/rust-mcp-filesystem — асинхронный Rust для продакшена
Stars: 158 | Язык: Rust | Лицензия: MIT
Полностью асинхронный MCP-сервер на Rust, построенный на rust-mcp-stack — Rust-реализации протокола MCP от того же автора. Позиционируется как «blazing-fast» — и это не маркетинг: Rust даёт предсказуемую производительность без GC-пауз.
Что выделяет его:
Асинхронная архитектура — все операции неблокирующие. Если AI-агент читает несколько файлов одновременно, rust-mcp-filesystem не упрётся в thread pool, как сервер на Node.js.
Меньше 5 MB бинарник — минимальный размер для деплоя. Для сравнения, official filesystem с node_modules весит сотни мегабайт.
Поддержка STDIO и HTTP транспортов — можно запускать как подпроцесс (Claude Desktop, VS Code) или как удалённый сервер.
Ограничения: маленькое сообщество (158 звёзд против 87K+ у официального). Меньше инструментов — базовая обвязка read/write/list/search. Нет MCP Roots protocol.
Кому подходит: продакшен-средам, где важна производительность и минимальный размер артефакта. Rust-командам, которые хотят всё контролировать. Для быстрого прототипирования лучше взять official filesystem.
4. Xuanwo/mcp-server-opendal — один сервер для 40+ хранилищ
Stars: 34 | Язык: Python | Лицензия: Apache 2.0
Уникальный подход: вместо того чтобы ставить отдельный MCP-сервер для каждого бэкенда, этот сервер даёт единый интерфейс к 40+ хранилищам через Apache OpenDAL.
Что выделяет его:
40+ бэкендов в одном сервере: S3, Azure Blob Storage, Google Cloud Storage, HDFS, WebDAV, FTP, SFTP, локальная файловая система и ещё 30+ — один сервер для всего. Это как OpenDAL, но с MCP-интерфейсом.
Автоопределение типа контента — binary или text, не нужно указывать вручную. Единый API — одни и те же инструменты работают независимо от бэкенда.
Ограничения: read-focused — листинг и чтение, write поддерживается ограниченно. Конфигурация через OpenDAL'овские env-переменные — нужно знать их имена. Маленькое сообщество.
Кому подходит: командам, которые работают с несколькими облачными провайдерами и не хотят ставить отдельный MCP-сервер для каждого. Если у вас гибридная инфраструктура (S3 + Azure + local FS) — это единственный сервер, который покрывает всё сразу.
5. MCP-серверы для FTP/SFTP — когда нужны легаси-протоколы
FTP и SFTP живут до сих пор — особенно в enterprise-инфраструктуре, на shared хостинге и legacy-системах. Для них есть два основных сервера.
alxspiker/mcp-server-ftp (20 звёзд, TypeScript, MIT) — самый полный FTP-специфичный MCP-сервер. Инструменты: list-directory, download-file, upload-file, create-directory, delete-file, delete-directory. Поддерживает FTPS (TLS) через флаг FTP_SECURE. Ссылка.
gradyyoung/sftp-ssh-mcp (8 звёзд, JavaScript, MIT) — объединяет SFTP-передачу файлов с выполнением shell-команд через SSH. Поддерживает аутентификацию по паролю и приватному ключу. Ссылка.
Кому подходит: командам, которые управляют серверами через FTP/SFTP и хотят дать AI-агенту доступ к файлам по этим протоколам. sftp-ssh-mcp особенно удобен, если нужен и файловый доступ, и выполнение команд на удалённом сервере.
Сравнительная таблица
| Сервер | Язык | Звёзды | Инструменты | Roots | Поиск по содержимому | Особенность |
|---|---|---|---|---|---|---|
| Official Filesystem | TypeScript | 87 745 | 14 | ✓ | — | Эталон, allowlist, CVE patched |
| mark3labs | Go | 661 | ~8 | — | ✓ | Single binary, Docker, без Node.js |
| rust-mcp-filesystem | Rust | 158 | ~6 | — | — | Асинхронный, <5 MB бинарник |
| OpenDAL MCP | Python | 34 | ~5 | — | — | 40+ бэкендов, read-focused |
| mcp-server-ftp | TypeScript | 20 | 6 | — | — | FTPS, полный CRUD по FTP |
| sftp-ssh-mcp | JavaScript | 8 | ~4 | — | — | SFTP + shell команды |
Как выбрать под свой стек
Универсального ответа нет — выбор зависит от вашей инфраструктуры и приоритетов.
Вы prototyping / стартуете проект — берите Official Filesystem. Это самый документированный сервер с самой большой экосистемой. Любая проблема уже решена в Issues или Discussions. Единственное — проверьте версию: 2025.7.1 или новее.
У вас Go-инфраструктура / контейнеры — mark3labs. Один бинарник, Docker-образ, поиск по содержимому. Для микросервисной архитектуры без Node.js это естественный выбор.
Продакшен с высокими нагрузками — rust-mcp-filesystem. Rust без GC, маленький бинарник, асинхронная архитектура. Если ваши AI-агенты обрабатывают тысячи файлов в минуту — Rust даст предсказуемую производительность.
Гибридная облачная инфраструктура — OpenDAL. S3, Azure, GCS, local FS — один сервер вместо четырёх. Read-only для большинства операций, но для RAG-пайплайнов этого достаточно.
Legacy-системы на FTP/SFTP — mcp-server-ftp или sftp-ssh-mcp. Выбор между чистым FTP и SFTP+SSH. Если нужны ещё и shell-команды на удалённом сервере — однозначно sftp-ssh-mcp.
Коротко
Рынок MCP-серверов для файловой системы стабилен: Official Filesystem доминирует, альтернативы на Go и Rust решают конкретные проблемы (отсутствие Node.js, производительность, размер), а OpenDAL закрывает нишу multi-cloud доступа. Главный тренд — безопасность: после CVE в официальном сервере все стали внимательнее к allowlist-валидации. Второй тренд — managed remote: Google, Microsoft и Dropbox запустили официальные облачные MCP-серверы, но для локальной файловой системы self-hosted решения остаются единственным вариантом.
Official Filesystem на GitHub · mark3labs · rust-mcp-filesystem
Что ещё важно знать
Какой MCP-сервер файловой системы самый безопасный?
Все локальные серверы используют directory allowlisting — доступ только к явно разрешённым директориям. Official Filesystem получил CVE-2025-53109 и CVE-2025-53110 (исправлены в 2025.7.1). mark3labs и rust-mcp-filesystem имеют меньшую поверхность атаки за счёт меньшего количества кода, но и меньше community-проверки. Для production рекомендую rust-mcp-filesystem — Rust-безопасность памяти + минимальный код.
Можно ли использовать Official Filesystem без Node.js?
Нет — сервер написан на TypeScript и требует Node.js. Если Node.js не подходит — смотрите в сторону mark3labs (Go, single binary) или rust-mcp-filesystem (Rust). Оба не требуют установки рантайма.
Что такое MCP Roots protocol и зачем он нужен?
Roots protocol — это механизм MCP, который позволяет MCP-клиенту сообщать серверу о директориях, к которым нужен доступ. Вместо того чтобы передавать список разрешённых путей через CLI при запуске, клиент может динамически добавлять и убирать директории через протокол. Это удобно, когда разным AI-агентам нужен доступ к разным проектам. Поддерживается только Official Filesystem.
Как проверить, что MCP-сервер не даст AI-агенту доступ ко всей файловой системе?
У Official Filesystem — проверьте список директорий, переданных через `--allowed-directories` или через Roots protocol. У mark3labs и rust-mcp-filesystem — только CLI-аргументы при запуске. Самый надёжный способ: запустить сервер в Docker-контейнере с монтированием только нужных директорий. Если сервер скомпрометируют — злоумышленник не выйдет за пределы контейнера.
Можно ли подключить cloud-хранилище (S3, GCS) через MCP?
Да — через Xuanwo/mcp-server-opendal (40+ бэкендов) или специализированные серверы: aws-samples/sample-mcp-server-s3 для S3, taylorwilsdon/google_workspace_mcp для Google Drive. Для Dropbox — официальный remote MCP-сервер на mcp.dropbox.com. Каждый из них работает через API облачного провайдера, а не через локальную файловую систему.