Skip to main content
Glama

build status GitHub Tag License Last Commit node version npm Version npm Downloads

🗃️ftpmcp🗃️

Сфокусированный сервер Model Context Protocol для операций с файлами по FTP и FTPS. Он намеренно не реализует SFTP: передачи на основе SSH относятся к SSH MCP, а не дублируют здесь учётные данные и транспортную логику.

Возможности

  • Обычный FTP, явный FTPS и неявный FTPS

  • Любое количество именованных FTP-хостов в одном процессе MCP

  • Удалённые операции ограничены root каждого хоста

  • Локальные загрузки и скачивания ограничены local_root каждого хоста, включая проверки символьных ссылок

  • Режим только для чтения и отдельно защищённое удаление

  • Структурированные результаты и ошибки MCP

  • Никаких значений учётных данных в ответах инструментов

Related MCP server: filemanager-mcp-server

Установка

npm install -g @vielhuber/ftpmcp

Конфигурация

{
    "hosts": [
        {
            "host": "website",
            "hostname": "ftp.example.com",
            "protocol": "ftps",
            "port": 21,
            "username": "user",
            "password": "your_password",
            "root": "/public_html",
            "local_root": "/host/data",
            "read_only": false,
            "allow_delete": false,
            "tls_reject_unauthorized": true,
            "timeout": 30000
        }
    ]
}

Передайте файл на сервер:

export FTP_CONFIG_FILE=/path/to/ftp-hosts.json

protocol принимает ftp, ftps и ftps-implicit. Предпочитайте FTPS, если сервер его поддерживает. Обычный FTP отправляет учётные данные и содержимое без шифрования транспорта.

root — это видимый удалённый корень для всех путей инструментов на этом хосте. Настройте саму учётную запись FTP с эквивалентным серверным chroot: FTP не может надёжно предотвратить указание предоставленной сервером символьной ссылки за пределы чисто клиентской границы пути.

local_root ограничивает локальные загрузки и скачивания. Принимаются как относительные пути, так и абсолютные пути ниже этого каталога.

read_only: true блокирует загрузки, создание каталогов, переименования и удаление. Для удаления дополнительно требуется allow_delete: true.

Каждая операция, кроме list_hosts, требует выбранный псевдоним host.

Клиент MCP

{
    "mcpServers": {
        "ftp": {
            "command": "ftpmcp",
            "env": {
                "FTP_CONFIG_FILE": "/path/to/ftp-hosts.json"
            }
        }
    }
}

Инструменты

Инструмент

Назначение

list_hosts

Перечислить все настроенные хосты без учётных данных

test_connection

Проверить настроенное соединение и вход

list_directory

Перечислить один удалённый каталог

download_file

Скачать удалённый файл ниже local_root выбранного хоста

upload_file

Загрузить локальный файл без перезаписи по умолчанию

create_directory

Создать удалённый каталог

rename_path

Переименовать или переместить удалённый файл или каталог

delete_file

Удалить один файл, когда удаление включено

delete_directory

Удалить пустой или явно рекурсивный каталог, когда удаление включено

Разработка

npm install
npm test
npm run format:check

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for performing filesystem operations, enabling file management and manipulation through natural language.
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    A file management MCP server enabling complete file and directory operations, including advanced editing, templates, and batch processing through natural language.
    19
    19 npm
    3
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that enables AI coding agents to deploy files to FTP/FTPS/SFTP servers, with path jail, read-only mode, and dry-run capabilities.
    10
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A secure file management MCP server enabling file operations like listing, reading, creating, renaming, moving, copying, deleting, and searching within a restricted workspace.
    10
    MIT