Skip to main content
Glama
alxspiker

MCP Server for FTP Access

MCP-Server für FTP-Zugriff

Dieser Model Context Protocol (MCP)-Server stellt Werkzeuge für die Interaktion mit FTP-Servern bereit. Er ermöglicht es Claude.app, Verzeichnisse auf FTP-Servern aufzulisten, Dateien herunter- und hochzuladen, Verzeichnisse zu erstellen sowie Dateien/Verzeichnisse zu löschen.

Funktionen

  • Verzeichnisinhalt auflisten: Dateien und Ordner auf dem FTP-Server anzeigen

  • Dateien herunterladen: Dateiinhalte vom FTP-Server abrufen

  • Dateien hochladen: Neue Dateien erstellen oder bestehende aktualisieren

  • Verzeichnisse erstellen: Neue Ordner auf dem FTP-Server anlegen

  • Dateien/Verzeichnisse löschen: Dateien oder Verzeichnisse entfernen

Related MCP server: Notion MCP Server

Installation

Installation über Smithery

Um mcp-server-ftp für Claude Desktop automatisch über Smithery zu installieren:

npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claude

Voraussetzungen

  • Node.js 16 oder höher

  • Claude for Desktop (oder ein anderer MCP-kompatibler Client)

Erstellen aus dem Quellcode

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 build

Windows

# 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

Das Skript build-windows.bat übernimmt die Installation der Abhängigkeiten und den Build-Prozess auf Windows-Systemen, mit Fallback-Optionen, falls der TypeScript-Compiler Probleme bereitet.

Konfiguration

Um diesen Server mit Claude for Desktop zu verwenden, fügen Sie ihn Ihrer Konfigurationsdatei hinzu:

MacOS/Linux

Bearbeiten Sie ~/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

Bearbeiten Sie %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"
      }
    }
  }
}

Fehlerbehebung bei Windows-Build-Problemen

Falls beim Build unter Windows Probleme auftreten:

  1. Verwenden Sie das bereitgestellte Skript build-windows.bat, das häufige Build-Probleme behandelt

  2. Stellen Sie sicher, dass Node.js und npm korrekt installiert sind

  3. Versuchen Sie, den TypeScript-Compiler direkt auszuführen: npx tsc

  4. Wenn weiterhin Probleme bestehen, können Sie die vorkompilierten Dateien im Verzeichnis build verwenden, indem Sie Folgendes ausführen:

    node path\to\mcp-server-ftp\build\index.js

Konfigurationsoptionen

Umgebungsvariable

Beschreibung

Standardwert

FTP_HOST

FTP-Server-Hostname oder IP-Adresse

localhost

FTP_PORT

FTP-Server-Port

21

FTP_USER

FTP-Benutzername (unterstützt Verschlüsselung)

anonymous

FTP_PASSWORD

FTP-Passwort (unterstützt Verschlüsselung)

(leerer String)

FTP_SECURE

Sicheres FTP (FTPS) verwenden, wird ignoriert, wenn FTP_PROTOCOL=sftp

false

FTP_PROTOCOL

Zu verwendendes Protokoll: ftp oder sftp

ftp

FTP_PRIVATE_KEY_PATH

Pfad zum privaten SSH-Schlüssel für SFTP (z. B. ~/.ssh/id_ed25519)

(automatische Erkennung)

FTP_PASSPHRASE

Passphrase für den privaten SSH-Schlüssel (unterstützt Verschlüsselung)

(leerer String)

FTP_ENCRYPTION_KEY

64-stelliger Hex-AES-256-Schlüssel zur Entschlüsselung von Anmeldedaten

(deaktiviert)

SSH / SFTP-Unterstützung

Zusätzlich zu einfachem FTP und FTPS unterstützt der Server SFTP – das SSH File Transfer Protocol –, das über eine verschlüsselte SSH-Verbindung läuft und nicht mit FTPS verwandt ist.

Setzen Sie FTP_PROTOCOL=sftp, um den Server in den SFTP-Modus zu schalten. Der Standardport ändert sich dann auf 22.

Authentifizierung

SFTP unterstützt zwei Authentifizierungsmethoden, die automatisch ausgewählt werden:

  • Privater Schlüssel – wenn ein Schlüssel gefunden wird (siehe unten), wird dieser zur Authentifizierung verwendet. FTP_PASSPHRASE wird verwendet, um den Schlüssel zu entschlüsseln, falls er passwortgeschützt ist.

  • Passwort – wenn kein Schlüssel gefunden wird, wird FTP_PASSWORD für die Passwortauthentifizierung verwendet.

Schlüsselerkennung

Der Server sucht in dieser Reihenfolge nach einem privaten Schlüssel:

  1. Der Pfad in FTP_PRIVATE_KEY_PATH (falls gesetzt)

  2. ~/.ssh/id_ed25519

  3. ~/.ssh/id_rsa

  4. ~/.ssh/id_ecdsa

Konfigurationsbeispiel

{
  "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 und FTP_USER unterstützen beide das verschlüsselte Format enc: – siehe Anmeldedaten-Verschlüsselung.

Anmeldedaten-Verschlüsselung

Das Speichern von Passwörtern im Klartext in Ihrer Claude-Konfigurationsdatei ist ein Sicherheitsrisiko. Der Server unterstützt AES-256-GCM-Verschlüsselung für FTP_USER und FTP_PASSWORD, sodass die Konfiguration nur noch Geheimtext enthält.

1. Einen Verschlüsselungsschlüssel generieren

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Halten Sie diesen Schlüssel geheim – behandeln Sie ihn wie ein Master-Passwort.

2. Einen Anmeldedatenwert verschlüsseln

npm run build
FTP_ENCRYPTION_KEY=<your-64-char-hex-key> npm run encrypt-env -- <plaintext-value>

Die Ausgabe ist ein in sich geschlossener verschlüsselter String im Format enc:<iv_hex>:<tag_hex>:<ciphertext_hex>.

3. Die verschlüsselten Werte in Ihrer Konfiguration verwenden

Setzen Sie FTP_ENCRYPTION_KEY zusammen mit den verschlüsselten Anmeldedaten. Werte, die nicht mit enc: beginnen, werden als Klartext behandelt, sodass Sie selektiv verschlüsseln können.

{
  "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>"
      }
    }
  }
}

Verwendung

Nachdem Sie Claude for Desktop konfiguriert und neu gestartet haben, können Sie natürlichsprachliche Befehle verwenden, um FTP-Operationen durchzuführen:

  • "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"

Verfügbare Werkzeuge

Werkzeugname

Beschreibung

list-directory

Inhalt eines FTP-Verzeichnisses auflisten

download-file

Datei vom FTP-Server herunterladen

upload-file

Datei auf den FTP-Server hochladen

create-directory

Neues Verzeichnis auf dem FTP-Server erstellen

delete-file

Datei vom FTP-Server löschen

delete-directory

Verzeichnis vom FTP-Server löschen

Sicherheitshinweise

  • Verwenden Sie die Funktion Anmeldedaten-Verschlüsselung, um das Speichern von Passwörtern im Klartext in Ihrer Konfigurationsdatei zu vermeiden.

  • Bevorzugen Sie SFTP (FTP_PROTOCOL=sftp) gegenüber einfachem FTP oder FTPS, wo immer möglich – es verwendet SSH und erfordert keine Zertifikatsverwaltung.

  • Erwägen Sie die Verwendung von FTPS (sicheres FTP), indem Sie FTP_SECURE=true setzen, falls Ihr Server dies unterstützt, aber SFTP nicht verfügbar ist.

  • Der Server erstellt temporäre Dateien für Uploads und Downloads im temporären Verzeichnis Ihres Systems.

Lizenz

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