filesystem-mcp-server

paskalex1/filesystem-mcp-server

3.2

If you are the rightful owner of filesystem-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Filesystem MCP is a minimal yet fully functional MCP server designed for file operations, built using Python MCP SDK.

Filesystem MCP

Минимальный, но полнофункциональный MCP‑сервер для файловых операций. Построен на Python MCP SDK (FastMCP, streamable-http) и служит единым файловым backend для Command Center и других клиентов MCP.

Возможности

  • Безопасный FS_ROOT с защитой от выхода за пределы (_safe_join).
  • Полный набор инструментов:
    • чтение/запись текстовых и бинарных файлов (base64);
    • создание/удаление/перемещение/копирование файлов и директорий;
    • расширенный поиск (glob/substring/regex), stat, touch, chmod, set_mtime;
    • работа с symlink, zip/unzip, JSON/YAML, resolve_path;
    • fast‑path для архивирования и JSON/YAML, которые теперь доступны прямо из Command Center UI.
  • Каждая команда возвращает структурированные данные (structuredContent.result) и имеет подробный docstring (рус/eng) + схемы ввода/вывода.
  • Smoke‑тест tests/test_smoke.py проверяет базовый сценарий end‑to‑end (initialize → tools.list → mkdir → write/read → zip/unzip → JSON I/O).

Локальный запуск

git clone https://github.com/paskalex1/filesystem-mcp-server.git
cd filesystem-mcp-server
python3 -m venv .venv && source .venv/bin/activate  # опционально
pip install -r requirements.txt  # пока зависимости тянутся из pyproject через pip install .

Через Docker (используется в Command Center):

docker-compose up -d --build
docker-compose logs -f filesystem-mcp

Контейнер слушает 0.0.0.0:8000, в сети command_center_mcp-net пробрасывается как filesystem-mcp:8000 и наружу на localhost:8020.

Smoke‑тест

Перед выкатыванием удобнее всего запустить готовый smoke:

MCP_BASE_URL=http://localhost:8020/mcp python3 -m unittest tests.test_smoke

Тест создаёт временные директории/файлы, архивирует их и удаляет — все следы чистятся в tearDown().

Экспорт инструментов

После изменений не забывайте:

  1. docker-compose up -d --build
  2. docker-compose exec web curl -X POST http://localhost:8000/api/mcp/servers/<id>/sync-tools/
  3. Проверить доступы агента и быстрые действия в Command Center UI.