Перейти к содержимому

Filesystem Server

MCP-сервер для работы с файловой системой — чтение, запись, редактирование файлов и директорий с контролем доступа

Filesystem Server реализует полный набор операций для работы с файловой системой. Сервер обеспечивает безопасный доступ к файлам через систему разрешённых директорий и поддерживает MCP Roots для динамического управления доступом.

  • Чтение и запись файлов (текст и бинарные данные)
  • Создание, перемещение и удаление директорий
  • Поиск файлов по шаблонам glob
  • Получение метаданных файлов
  • Динамический контроль доступа через MCP Roots
Окно терминала
npx -y @modelcontextprotocol/server-filesystem /path/to/directory

Читает содержимое текстового файла.

ПараметрТипОписание
pathstringПуть к файлу
headnumber?Только первые N строк
tailnumber?Только последние N строк

Читает изображение или аудио файл, возвращая base64 с соответствующим MIME-типом.

ПараметрТипОписание
pathstringПуть к медиафайлу

Читает несколько файлов одновременно. Ошибка чтения одного файла не прерывает чтение остальных.

ПараметрТипОписание
pathsstring[]Массив путей к файлам

Создаёт новый файл или перезаписывает существующий.

ПараметрТипОписание
pathstringПуть для записи
contentstringСодержимое файла

Выполняет точечное редактирование с сопоставлением шаблонов и сохранением форматирования.

ПараметрТипОписание
pathstringПуть к файлу
editsarrayСписок правок: {oldText, newText}
dryRunboolean?Предпросмотр без применения (по умолчанию: false)

Возможности:

  • Сопоставление построчного и многострочного контента
  • Нормализация пробелов с сохранением отступов
  • Множественные правки с корректным позиционированием
  • Определение и сохранение стиля отступов
  • Вывод diff в стиле Git

Создаёт директорию (включая родительские, если нужно).

ПараметрТипОписание
pathstringПуть к директории

Выводит содержимое директории с префиксами [FILE] или [DIR].

ПараметрТипОписание
pathstringПуть к директории

Выводит содержимое с размерами файлов и статистикой.

ПараметрТипОписание
pathstringПуть к директории
sortBystring?Сортировка: name или size

Перемещает или переименовывает файл/директорию.

ПараметрТипОписание
sourcestringИсходный путь
destinationstringЦелевой путь

Рекурсивный поиск файлов по шаблонам glob.

ПараметрТипОписание
pathstringНачальная директория
patternstringШаблон поиска (glob)
excludePatternsstring[]?Исключаемые шаблоны
{
"path": "/projects",
"pattern": "**/*.ts",
"excludePatterns": ["node_modules/**", "dist/**"]
}

Возвращает рекурсивную JSON-структуру директории.

ПараметрТипОписание
pathstringНачальная директория
excludePatternsstring[]?Исключаемые шаблоны

Получает метаданные файла или директории.

ПараметрТипОписание
pathstringПуть к файлу

Возвращает: размер, время создания, время изменения, время доступа, тип, права доступа.

Выводит список разрешённых директорий сервера. Параметров не требует.

Сервер использует MCP ToolAnnotations для классификации инструментов:

ИнструментreadOnlyHintidempotentHintdestructiveHint
read_text_filetrue
read_media_filetrue
read_multiple_filestrue
list_directorytrue
list_directory_with_sizestrue
directory_treetrue
search_filestrue
get_file_infotrue
list_allowed_directoriestrue
create_directoryfalsetruefalse
write_filefalsetruetrue
edit_filefalsefalsetrue
move_filefalsefalsefalse
Окно терминала
mcp-server-filesystem /path/to/dir1 /path/to/dir2

Клиенты, поддерживающие Roots, могут динамически обновлять разрешённые директории без перезапуска сервера.

  1. Сервер запускается с директориями из командной строки (или без них)
  2. Клиент подключается и отправляет initialize с capabilities
  3. Если клиент поддерживает roots, сервер запрашивает их через roots/list
  4. Roots от клиента полностью заменяют директории из командной строки
  5. При изменениях клиент отправляет notifications/roots/list_changed
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
{
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${workspaceFolder}"
]
}
}
}
Окно терминала
docker build -t mcp/filesystem -f src/filesystem/Dockerfile .