MCP Server for FTP Access
FTPアクセス用MCPサーバー
このModel Context Protocol (MCP) サーバーは、FTPサーバーと対話するためのツールを提供します。Claude.appからFTPサーバー上のディレクトリ一覧表示、ファイルのダウンロードとアップロード、ディレクトリ作成、ファイル/ディレクトリの削除が可能になります。
機能
ディレクトリ内容の一覧表示: FTPサーバー上のファイルやフォルダーを表示
ファイルのダウンロード: FTPサーバーからファイルの内容を取得
ファイルのアップロード: 新規ファイルの作成や既存ファイルの更新
ディレクトリの作成: FTPサーバー上に新しいフォルダーを作成
ファイル/ディレクトリの削除: ファイルやディレクトリを削除
Related MCP server: Notion MCP Server
インストール
Smithery経由でのインストール
Smithery を使用してClaude Desktop用のmcp-server-ftpを自動的にインストールするには:
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.batbuild-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
設定オプション
環境変数 | 説明 | デフォルト |
| FTPサーバーのホスト名またはIPアドレス | localhost |
| FTPサーバーのポート | 21 |
| FTPユーザー名 (暗号化対応) | anonymous |
| FTPパスワード (暗号化対応) | (空文字) |
| セキュアFTP (FTPS) を使用。 | false |
| 使用するプロトコル: | ftp |
| SFTP用SSH秘密鍵へのパス (例: | (自動検出) |
| SSH秘密鍵のパスフレーズ (暗号化対応) | (空文字) |
| 資格情報を復号するための64文字の16進数AES-256キー | (無効) |
SSH / SFTPサポート
通常のFTPやFTPSに加え、このサーバーはSFTP(SSH File Transfer Protocol)をサポートしています。これは暗号化されたSSH接続上で実行され、FTPSとは無関係です。
FTP_PROTOCOL=sftp を設定して、サーバーをSFTPモードに切り替えます。デフォルトのポートは 22 に変更されます。
認証
SFTPは、自動的に選択される2つの認証方法をサポートしています:
秘密鍵 — 鍵が見つかった場合(下記参照)、認証に使用されます。
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の設定ファイルにプレーンテキストのパスワードを保存することはセキュリティ上のリスクです。このサーバーは FTP_USER と FTP_PASSWORD に対してAES-256-GCM暗号化をサポートしているため、設定ファイルには暗号文のみを含めることができます。
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操作を実行できます:
"FTPサーバーの /public ディレクトリにあるファイル一覧を表示して"
"FTPサーバーから /data/report.txt ファイルをダウンロードして"
"このテキストを notes.txt という名前のファイルとしてFTPサーバーにアップロードして"
"FTPサーバー上に 'backups' という新しいディレクトリを作成して"
"FTPサーバーから obsolete.txt ファイルを削除して"
"FTPサーバーから空のディレクトリ /old-project を削除して"
利用可能なツール
ツール名 | 説明 |
| FTPディレクトリの内容を一覧表示 |
| FTPサーバーからファイルをダウンロード |
| FTPサーバーにファイルをアップロード |
| FTPサーバー上に新しいディレクトリを作成 |
| FTPサーバーからファイルを削除 |
| FTPサーバーからディレクトリを削除 |
セキュリティ上の考慮事項
設定ファイルにプレーンテキストのパスワードを保存しないよう、資格情報の暗号化 機能を使用してください。
可能であれば、通常のFTPやFTPSよりもSFTP (
FTP_PROTOCOL=sftp) を優先してください。これはSSHを使用し、証明書の管理を必要としません。サーバーが対応しているがSFTPが利用できない場合は、
FTP_SECURE=trueを設定してFTPS(セキュアFTP)の使用を検討してください。サーバーは、アップロードおよびダウンロードのためにシステムのテンポラリディレクトリに一時ファイルを作成します。
ライセンス
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