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 claudeVoraussetzungen
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 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.batDas 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:
Verwenden Sie das bereitgestellte Skript
build-windows.bat, das häufige Build-Probleme behandeltStellen Sie sicher, dass Node.js und npm korrekt installiert sind
Versuchen Sie, den TypeScript-Compiler direkt auszuführen:
npx tscWenn weiterhin Probleme bestehen, können Sie die vorkompilierten Dateien im Verzeichnis
buildverwenden, indem Sie Folgendes ausführen:node path\to\mcp-server-ftp\build\index.js
Konfigurationsoptionen
Umgebungsvariable | Beschreibung | Standardwert |
| FTP-Server-Hostname oder IP-Adresse | localhost |
| FTP-Server-Port | 21 |
| FTP-Benutzername (unterstützt Verschlüsselung) | anonymous |
| FTP-Passwort (unterstützt Verschlüsselung) | (leerer String) |
| Sicheres FTP (FTPS) verwenden, wird ignoriert, wenn | false |
| Zu verwendendes Protokoll: | ftp |
| Pfad zum privaten SSH-Schlüssel für SFTP (z. B. | (automatische Erkennung) |
| Passphrase für den privaten SSH-Schlüssel (unterstützt Verschlüsselung) | (leerer String) |
| 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_PASSPHRASEwird verwendet, um den Schlüssel zu entschlüsseln, falls er passwortgeschützt ist.Passwort – wenn kein Schlüssel gefunden wird, wird
FTP_PASSWORDfür die Passwortauthentifizierung verwendet.
Schlüsselerkennung
Der Server sucht in dieser Reihenfolge nach einem privaten Schlüssel:
Der Pfad in
FTP_PRIVATE_KEY_PATH(falls gesetzt)~/.ssh/id_ed25519~/.ssh/id_rsa~/.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 |
| Inhalt eines FTP-Verzeichnisses auflisten |
| Datei vom FTP-Server herunterladen |
| Datei auf den FTP-Server hochladen |
| Neues Verzeichnis auf dem FTP-Server erstellen |
| Datei vom FTP-Server löschen |
| 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=truesetzen, 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