Filesystem Server
MCP-сервер для работы с файловой системой — чтение, запись, редактирование файлов и директорий с контролем доступа
Filesystem Server реализует полный набор операций для работы с файловой системой. Сервер обеспечивает безопасный доступ к файлам через систему разрешённых директорий и поддерживает MCP Roots для динамического управления доступом.
Возможности
Заголовок раздела «Возможности»- Чтение и запись файлов (текст и бинарные данные)
- Создание, перемещение и удаление директорий
- Поиск файлов по шаблонам glob
- Получение метаданных файлов
- Динамический контроль доступа через MCP Roots
Установка
Заголовок раздела «Установка»npx -y @modelcontextprotocol/server-filesystem /path/to/directorydocker run -i --rm \ --mount type=bind,src=/Users/username/Desktop,dst=/projects/Desktop \ mcp/filesystem /projectsИнструменты (Tools)
Заголовок раздела «Инструменты (Tools)»read_text_file
Заголовок раздела «read_text_file»Читает содержимое текстового файла.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
head | number? | Только первые N строк |
tail | number? | Только последние N строк |
read_media_file
Заголовок раздела «read_media_file»Читает изображение или аудио файл, возвращая base64 с соответствующим MIME-типом.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к медиафайлу |
read_multiple_files
Заголовок раздела «read_multiple_files»Читает несколько файлов одновременно. Ошибка чтения одного файла не прерывает чтение остальных.
| Параметр | Тип | Описание |
|---|---|---|
paths | string[] | Массив путей к файлам |
write_file
Заголовок раздела «write_file»Создаёт новый файл или перезаписывает существующий.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь для записи |
content | string | Содержимое файла |
edit_file
Заголовок раздела «edit_file»Выполняет точечное редактирование с сопоставлением шаблонов и сохранением форматирования.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
edits | array | Список правок: {oldText, newText} |
dryRun | boolean? | Предпросмотр без применения (по умолчанию: false) |
Возможности:
- Сопоставление построчного и многострочного контента
- Нормализация пробелов с сохранением отступов
- Множественные правки с корректным позиционированием
- Определение и сохранение стиля отступов
- Вывод diff в стиле Git
create_directory
Заголовок раздела «create_directory»Создаёт директорию (включая родительские, если нужно).
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к директории |
list_directory
Заголовок раздела «list_directory»Выводит содержимое директории с префиксами [FILE] или [DIR].
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к директории |
list_directory_with_sizes
Заголовок раздела «list_directory_with_sizes»Выводит содержимое с размерами файлов и статистикой.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к директории |
sortBy | string? | Сортировка: name или size |
move_file
Заголовок раздела «move_file»Перемещает или переименовывает файл/директорию.
| Параметр | Тип | Описание |
|---|---|---|
source | string | Исходный путь |
destination | string | Целевой путь |
search_files
Заголовок раздела «search_files»Рекурсивный поиск файлов по шаблонам glob.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Начальная директория |
pattern | string | Шаблон поиска (glob) |
excludePatterns | string[]? | Исключаемые шаблоны |
{ "path": "/projects", "pattern": "**/*.ts", "excludePatterns": ["node_modules/**", "dist/**"]}directory_tree
Заголовок раздела «directory_tree»Возвращает рекурсивную JSON-структуру директории.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Начальная директория |
excludePatterns | string[]? | Исключаемые шаблоны |
get_file_info
Заголовок раздела «get_file_info»Получает метаданные файла или директории.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
Возвращает: размер, время создания, время изменения, время доступа, тип, права доступа.
list_allowed_directories
Заголовок раздела «list_allowed_directories»Выводит список разрешённых директорий сервера. Параметров не требует.
Аннотации инструментов
Заголовок раздела «Аннотации инструментов»Сервер использует MCP ToolAnnotations для классификации инструментов:
| Инструмент | readOnlyHint | idempotentHint | destructiveHint |
|---|---|---|---|
| read_text_file | true | – | – |
| read_media_file | true | – | – |
| read_multiple_files | true | – | – |
| list_directory | true | – | – |
| list_directory_with_sizes | true | – | – |
| directory_tree | true | – | – |
| search_files | true | – | – |
| get_file_info | true | – | – |
| list_allowed_directories | true | – | – |
| create_directory | false | true | false |
| write_file | false | true | true |
| edit_file | false | false | true |
| move_file | false | false | false |
Контроль доступа
Заголовок раздела «Контроль доступа»Через аргументы командной строки
Заголовок раздела «Через аргументы командной строки»mcp-server-filesystem /path/to/dir1 /path/to/dir2Через MCP Roots (рекомендуется)
Заголовок раздела «Через MCP Roots (рекомендуется)»Клиенты, поддерживающие Roots, могут динамически обновлять разрешённые директории без перезапуска сервера.
- Сервер запускается с директориями из командной строки (или без них)
- Клиент подключается и отправляет
initializeс capabilities - Если клиент поддерживает roots, сервер запрашивает их через
roots/list - Roots от клиента полностью заменяют директории из командной строки
- При изменениях клиент отправляет
notifications/roots/list_changed
Конфигурация
Заголовок раздела «Конфигурация»Claude Desktop
Заголовок раздела «Claude Desktop»{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop", "/path/to/other/allowed/dir" ] } }}{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop", "--mount", "type=bind,src=/path/to/dir,dst=/projects/dir,ro", "mcp/filesystem", "/projects" ] } }}VS Code
Заголовок раздела «VS Code»{ "servers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}" ] } }}Сборка Docker-образа
Заголовок раздела «Сборка Docker-образа»docker build -t mcp/filesystem -f src/filesystem/Dockerfile .