MCP Server for FTP Access
MCP-сервер для доступа по FTP
Этот сервер протокола контекста модели (MCP) предоставляет инструменты для взаимодействия с FTP-серверами. Он позволяет Claude.app просматривать содержимое директорий, скачивать и загружать файлы, создавать директории и удалять файлы/директории на FTP-серверах.
Возможности
Просмотр содержимого директорий: Просмотр файлов и папок на FTP-сервере
Скачивание файлов: Получение содержимого файлов с FTP-сервера
Загрузка файлов: Создание новых файлов или обновление существующих
Создание директорий: Создание новых папок на FTP-сервере
Удаление файлов/директорий: Удаление файлов или директорий
Related MCP server: Notion MCP Server
Установка
Установка через Smithery
Чтобы автоматически установить mcp-server-ftp для Claude Desktop через Smithery:
npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claudeПредварительные требования
Node.js 16 или выше
Claude for Desktop (или другой клиент, поддерживающий MCP)
Сборка из исходного кода
Linux/macOS
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Install dependencies
npm install
# Build the project
npm run buildWindows
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Run the Windows build helper script
build-windows.batСкрипт build-windows.bat выполняет установку зависимостей и сборку в системах Windows, с резервными вариантами на случай проблем с компилятором TypeScript.
Конфигурация
Чтобы использовать этот сервер с Claude for Desktop, добавьте его в свой файл конфигурации:
MacOS/Linux
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}Windows
Отредактируйте %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["C:\\path\\to\\mcp-server-ftp\\build\\index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}Устранение неполадок при сборке в Windows
Если вы столкнулись с проблемами при сборке в Windows:
Используйте предоставленный скрипт
build-windows.bat, который обрабатывает распространенные ошибки сборкиУбедитесь, что Node.js и npm установлены правильно
Попробуйте запустить компилятор TypeScript напрямую:
npx tscЕсли проблемы сохраняются, вы можете использовать предварительно скомпилированные файлы в директории
build, выполнив:node path\to\mcp-server-ftp\build\index.js
Параметры конфигурации
Переменная окружения | Описание | По умолчанию |
| Имя хоста или IP-адрес FTP-сервера | localhost |
| Порт FTP-сервера | 21 |
| Имя пользователя FTP (поддерживает шифрование) | anonymous |
| Пароль FTP (поддерживает шифрование) | (пустая строка) |
| Использовать защищенный FTP (FTPS), игнорируется, если | false |
| Используемый протокол: | ftp |
| Путь к закрытому SSH-ключу для SFTP (например, | (автоопределение) |
| Парольная фраза для закрытого SSH-ключа (поддерживает шифрование) | (пустая строка) |
| 64-символьный шестнадцатеричный ключ AES-256 для расшифровки учетных данных | (отключено) |
Поддержка SSH / SFTP
Помимо обычного FTP и FTPS, сервер поддерживает SFTP — протокол передачи файлов SSH, который работает через зашифрованное SSH-соединение и не связан с FTPS.
Установите FTP_PROTOCOL=sftp, чтобы переключить сервер в режим SFTP. Порт по умолчанию изменится на 22.
Аутентификация
SFTP поддерживает два метода аутентификации, выбираемых автоматически:
Закрытый ключ — если ключ найден (см. ниже), он используется для аутентификации.
FTP_PASSPHRASEиспользуется для расшифровки ключа, если он защищен парольной фразой.Пароль — если ключ не найден, для аутентификации используется
FTP_PASSWORD.
Поиск ключа
Сервер ищет закрытый ключ в следующем порядке:
Путь в
FTP_PRIVATE_KEY_PATH(если задан)~/.ssh/id_ed25519~/.ssh/id_rsa~/.ssh/id_ecdsa
Пример конфигурации
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "sftp.example.com",
"FTP_PORT": "22",
"FTP_PROTOCOL": "sftp",
"FTP_USER": "your-username",
"FTP_PRIVATE_KEY_PATH": "~/.ssh/id_ed25519",
"FTP_PASSPHRASE": "your-key-passphrase"
}
}
}
}FTP_PASSPHRASE и FTP_USER поддерживают зашифрованный формат enc: — см. Шифрование учетных данных.
Шифрование учетных данных
Хранение паролей в открытом виде в файле конфигурации Claude является риском для безопасности. Сервер поддерживает шифрование AES-256-GCM для FTP_USER и FTP_PASSWORD, поэтому конфигурация содержит только зашифрованный текст.
1. Генерация ключа шифрования
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Храните этот ключ в секрете — относитесь к нему как к мастер-паролю.
2. Шифрование значения учетных данных
npm run build
FTP_ENCRYPTION_KEY=<your-64-char-hex-key> npm run encrypt-env -- <plaintext-value>Результатом является автономная зашифрованная строка в формате enc:<iv_hex>:<tag_hex>:<ciphertext_hex>.
3. Использование зашифрованных значений в конфигурации
Установите FTP_ENCRYPTION_KEY вместе с зашифрованными учетными данными. Значения, которые не начинаются с enc:, рассматриваются как открытый текст, поэтому вы можете шифровать данные выборочно.
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "enc:aabbcc...:ddeeff...:112233...",
"FTP_PASSWORD": "enc:aabbcc...:ddeeff...:112233...",
"FTP_SECURE": "false",
"FTP_ENCRYPTION_KEY": "<your-64-char-hex-key>"
}
}
}
}Использование
После настройки и перезапуска Claude for Desktop вы можете использовать естественный язык для выполнения операций FTP:
"List the files in the /public directory on my FTP server"
"Download the file /data/report.txt from the FTP server"
"Upload this text as a file called notes.txt to the FTP server"
"Create a new directory called 'backups' on the FTP server"
"Delete the file obsolete.txt from the FTP server"
"Remove the empty directory /old-project from the FTP server"
Доступные инструменты
Имя инструмента | Описание |
| Просмотр содержимого FTP-директории |
| Скачивание файла с FTP-сервера |
| Загрузка файла на FTP-сервер |
| Создание новой директории на FTP-сервере |
| Удаление файла с FTP-сервера |
| Удаление директории с FTP-сервера |
Вопросы безопасности
Используйте функцию шифрования учетных данных, чтобы избежать хранения паролей в открытом виде в файле конфигурации.
По возможности отдавайте предпочтение SFTP (
FTP_PROTOCOL=sftp) вместо обычного FTP или FTPS — он использует SSH и не требует управления сертификатами.Рассмотрите возможность использования FTPS (защищенного FTP), установив
FTP_SECURE=true, если ваш сервер поддерживает его, но SFTP недоступен.Сервер создает временные файлы для загрузки и скачивания в системной временной директории.
Лицензия
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alxspiker/mcp-server-ftp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server