agentsclimarketplace

FtpSkill

Skill JunSuzuki1973/ftpSkill

レンタルサーバーへの自動デプロイと管理を行う汎用的なスキル。SSH/SFTP接続でファイルのアップロード、ダウンロード、権限変更、削除などを自動化します。From its SKILL.md

Install
npx -y skills add JunSuzuki1973/ftpSkill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

11.4 KB, ~4.0k tokens by cl100k_base, as published. Nobody here has run it

Agent Skill: sftp-deployer

概要

レンタルサーバーへの自動デプロイと管理を行う汎用的なスキルセットです。GUIベースのFTPクライアントと同等の機能をコマンドラインから利用でき、AIエージェントが自動的に操作できます。

対応サーバー

基本要件

  • ✅ SSH/SFTP接続が可能な任意のサーバー
  • ✅ パスワード認証・SSH公開鍵認証の両方に対応
  • ✅ ほぼすべてのレンタルサーバー、VPS、クラウドサーバーで利用可能

認証方式

  • パスワード認証: .envFTP_PASSを設定
  • 公開鍵認証: .envFTP_KEY_FILEを設定
  • 柔軟な対応: サーバーの仕様に合わせて認証方式を選択可能

対応サーバー例

  • Xserver、さくらインターネット、ロリポップ、ConoHa WING、mixhostなど
  • AWS EC2、Google Cloud、Azure、DigitalOcean、Linodeなど
  • 自宅サーバー、Raspberry Piなど(SSH対応であれば何でもOK)

トリガー

  • ユーザーが「デプロイして」「サーバーにアップして」「ファイルを確認して」などと指示した場合

使用可能なツール

📤 アップロード・デプロイ

  • sftp_deploy.py - ファイル/ディレクトリのアップロード
  • sftp_mkdir.py - リモートディレクトリの作成

📥 ダウンロード・バックアップ

  • sftp_download.py - ファイル/ディレクトリのダウンロード

📋 確認・一覧表示

  • sftp_list.py - ファイル一覧表示(詳細情報付き)

🔧 管理・操作

  • sftp_chmod.py - パーミッション変更
  • sftp_delete.py - ファイル/ディレクトリの削除

🔍 その他

  • find_remote_path.py - リモートパス探索

主要な使用例

1. デプロイ(アップロード)

# デフォルトパスにデプロイ
python scripts/sftp_deploy.py my_website

# 特定のパスにデプロイ
python scripts/sftp_deploy.py my_website /var/www/html

# テスト実行(Mock モード)
python scripts/sftp_deploy.py my_website --mock

2. ダウンロード(バックアップ)

# デフォルトパスからダウンロード
python scripts/sftp_download.py ./backup

# 特定のファイルをダウンロード
python scripts/sftp_download.py /var/www/html/config.php ./config_backup.php

# ディレクトリ全体をバックアップ
python scripts/sftp_download.py /var/www/html ./website_backup

3. ファイル一覧表示

# シンプルな一覧表示
python scripts/sftp_list.py

# 詳細表示(権限、サイズ、日時)
python scripts/sftp_list.py -l

# 再帰的に表示
python scripts/sftp_list.py -r

# 特定のディレクトリを詳細表示
python scripts/sftp_list.py -l /var/www/html

4. 権限変更

# ファイルを実行可能に
python scripts/sftp_chmod.py /var/www/html/script.sh 755

# ディレクトリの権限変更
python scripts/sftp_chmod.py /var/www/html/uploads 777

# 再帰的に権限変更
python scripts/sftp_chmod.py /var/www/html 755 -r

5. ディレクトリ作成

# 単一ディレクトリ作成
python scripts/sftp_mkdir.py /var/www/html/uploads

# ネストしたディレクトリ作成
python scripts/sftp_mkdir.py /var/www/html/app/data/cache

# 特定の権限で作成
python scripts/sftp_mkdir.py /var/www/html/logs -m 777

6. 削除

# デフォルトパスを削除(確認プロンプトあり)
python scripts/sftp_delete.py

# 特定のパスを削除
python scripts/sftp_delete.py /var/www/html/old_files

自動パーミッション設定(デプロイ時)

ファイル/ディレクトリパーミッション説明
.cgi, .py, .pl, .sh755CGIスクリプト(実行権限)
data/ ディレクトリ707データディレクトリ(書き込み権限)
その他のファイル644標準ファイル
その他のディレクトリ755標準ディレクトリ

AIエージェント向けガイドライン

ユーザーの指示に応じた適切なツール選択

ユーザーの指示例使用するツール備考
「デプロイして」「アップロードして」sftp_deploy.pyデフォルトパスまたは指定パス
「ファイルを確認して」「何があるか見て」sftp_list.py-l オプションで詳細表示
「バックアップして」「ダウンロードして」sftp_download.pyローカルに保存
「実行権限を付けて」「権限を変更して」sftp_chmod.py適切なモード指定
「ディレクトリを作って」sftp_mkdir.py親ディレクトリも自動作成
「削除して」「クリアして」sftp_delete.py確認プロンプトあり

推奨ワークフロー

デプロイ前

  1. sftp_list.py -l で現在の状態確認
  2. 必要に応じて sftp_download.py でバックアップ
  3. sftp_deploy.py でデプロイ
  4. sftp_list.py で結果確認

トラブルシューティング

  1. sftp_list.py -l で権限確認
  2. sftp_chmod.py で権限修正
  3. 必要に応じて sftp_download.py でログ取得

重要な注意事項

⚠️ Pythonについて

  • レンタルサーバーではPythonスクリプトは推奨されません
  • .py ファイルは実行されず、ダウンロードされる可能性があります
  • CGIモードは古く、非効率的です
  • 推奨: HTML、PHP、JavaScriptを使用してください

✅ 推奨される技術スタック

  • HTML - 静的サイト
  • PHP - サーバーサイド処理(レンタルサーバーで標準サポート)
  • JavaScript - クライアントサイド処理

📁 リモートパスの設定

.envFTP_REMOTE_ROOT にデフォルトのデプロイ先を設定できます:

例(Xserver):

FTP_REMOTE_ROOT=./your_domain.com/public_html

例(一般的なレンタルサーバー):

FTP_REMOTE_ROOT=./public_html
FTP_REMOTE_ROOT=./www
FTP_REMOTE_ROOT=/var/www/html

セットアップ手順

1. 必須ファイル: .env

resources/.env.example をコピーして .env を作成し、サーバー情報を設定:

# サーバー接続情報
FTP_HOST=your_server_host.com
FTP_USER=your_username
FTP_PORT=22

# 認証方式(どちらか一方を設定)
# パスワード認証の場合
FTP_PASS=your_password

# SSH鍵認証の場合
FTP_KEY_FILE=path/to/your_key.key

# その他の設定
FTP_TIMEOUT=30
FTP_REMOTE_ROOT=./public_html

2. 必須ライブラリのインストール

pip install -r requirements.txt

requirements.txt の内容:

  • paramiko - SFTP接続
  • python-dotenv - 環境変数管理

3. SSH鍵ファイル(鍵認証の場合)

  • SSH秘密鍵ファイルをプロジェクトルートに配置
  • サーバーの管理画面からダウンロード可能(Xserver、さくらなど)
  • .envFTP_KEY_FILE にファイル名を指定

トラブルシューティング

接続タイムアウト

  • タイムアウト設定は30秒(.envFTP_TIMEOUTで変更可能)
  • ホストキーは自動的に受け入れられます(AutoAddPolicy
  • ファイアウォールやポート設定を確認

ファイルが表示されない

  • デプロイ先パスが正しいか確認
  • Webルートディレクトリに index.html が存在するか確認
  • サーバーのドキュメントルート設定を確認

権限エラー

  • SSH鍵ファイルのパスが正しいか確認
  • .env の設定(ホスト、ユーザー名、ポート)を確認
  • パスワード認証と鍵認証が混在していないか確認

ポート番号

  • 一般的なSSH/SFTPポート: 22
  • Xserverなど一部のサーバー: 10022
  • サーバーのドキュメントで確認してください

サーバー別設定例

Xserver

公開鍵認証のみ対応

FTP_HOST=xs123456.xsrv.jp
FTP_USER=xs123456
FTP_PORT=10022
FTP_KEY_FILE=xs123456.key
FTP_REMOTE_ROOT=./your_domain.com/public_html

さくらインターネット

パスワード認証

FTP_HOST=your_server.sakura.ne.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=./www

公開鍵認証

FTP_HOST=your_server.sakura.ne.jp
FTP_USER=your_username
FTP_PORT=22
FTP_KEY_FILE=sakura_server.key
FTP_REMOTE_ROOT=./www

ロリポップ

パスワード認証

FTP_HOST=your_server.lolipop.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=.

VPS(一般的な設定)

公開鍵認証(推奨)

FTP_HOST=123.456.789.012
FTP_USER=root
FTP_PORT=22
FTP_KEY_FILE=server_key.pem
FTP_REMOTE_ROOT=/var/www/html

パスワード認証

FTP_HOST=123.456.789.012
FTP_USER=root
FTP_PORT=22
FTP_PASS=your_root_password
FTP_REMOTE_ROOT=/var/www/html

ツール一覧クイックリファレンス

ツール機能主なオプション
sftp_deploy.pyアップロード--mock (テスト実行)
sftp_download.pyダウンロード-
sftp_list.py一覧表示-l (詳細), -r (再帰)
sftp_chmod.py権限変更-r (再帰)
sftp_mkdir.pyディレクトリ作成-m (モード指定)
sftp_delete.py削除(確認プロンプトあり)

AIエージェントでの使用方法

このスキルはAntigravityClaude DesktopClaude Codeのいずれでも使用可能です。

スキルの配置

以下のいずれかの方法でスキルフォルダを配置してください:

  1. Antigravity の場合:

    • プロジェクトの .agent/skills/ftpSkill/ ディレクトリに配置
    • 例: E:\MyProject\.agent\skills\ftpSkill\
    • .agent/skills/ への配置が推奨されます
    # .agent/skills ディレクトリを作成
    New-Item -ItemType Directory -Path ".agent\skills" -Force
    
    # ftpSkill フォルダをコピー
    Copy-Item -Recurse ftpSkill ".agent\skills\ftpSkill"
    
  2. Claude Desktop の場合:

    • ~/.claude/skills/sftp-deployer/
  3. Claude Code の場合:

    • プロジェクトルートの .agent/skills/sftp-deployer/

初期設定

# 依存関係をインストール
cd .agent\skills\ftpSkill
pip install -r requirements.txt

# .env ファイルを作成
Copy-Item resources\.env.example .env

# .env を編集してサーバー情報を設定
notepad .env

使用例

スキルが配置されると、AIエージェントは自動的にこのスキルを認識し、以下のような指示に対応できます:

「このWebサイトをサーバーにデプロイして」
「サーバーのファイル一覧を確認して」
「サーバーからバックアップをダウンロードして」
「uploads フォルダの権限を777に変更して」

AIエージェントは適切なツールを自動選択し、必要な操作を実行します。

What ships with it: 22 files

95.6 KB alongside SKILL.md, 9 of them executable

examples/

scripts/

Keep looking

Skills are one crate of 326,422. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.