MCP Server for FTP Access
FTP 액세스를 위한 MCP 서버
이 MCP(Model Context Protocol) 서버는 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 외에도, 이 서버는 암호화된 SSH 연결을 통해 실행되며 FTPS와는 관련이 없는 SSH 파일 전송 프로토콜인 SFTP를 지원합니다.
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 구성 파일에 일반 텍스트 비밀번호를 저장하는 것은 보안 위험이 있습니다. 서버는 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