mcpField
M
my-mcp-ssh

my-mcp-ssh

ローカル
github.com/ffpy開発ツール458 週間前に更新

my-mcp-ssh について

my-mcp-sshは、LLMからSSH経由でリモートサーバーに接続し、コマンド実行やファイル転送を行うMCPサーバーです。MCPクライアントからSSHを使うワークフローに適しています。

主な機能

  1. 01SSH接続の管理
  2. 02リモートコマンドの実行
  3. 03ファイルのアップロードとダウンロード
  4. 04セッションの一覧表示と終了

活用シーン

  1. 01リモートサーバーでのコマンド実行
  2. 02SSH経由のファイル転送
  3. 03SSHセッションの再利用や終了

MCP 対応

MCPクライアントに、SSH接続、コマンド実行、セッション管理、ファイル転送のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

my-mcp-ssh

EN doc CN doc

Model Context Protocol(MCP)ベースの SSH 接続ツールです。LLM が SSH 経由でリモートサーバーに安全に接続し、MCP プロトコルを通じてファイル操作を実行できます。

機能

  • SSH 接続管理:リモート SSH サーバーに接続します
  • コマンド実行:リモートサーバーでコマンドを実行します
  • ファイル転送:ファイルをアップロードおよびダウンロードします
  • セッション管理:SSH セッションを維持および終了します

インストール

依存関係
  • Python >= 3.12
  • uv パッケージマネージャー
# Clone the project
git clone https://github.com/ffpy/my-mcp-ssh.git

# Enter the project directory
cd my-mcp-ssh

# Install dependencies
uv sync

使用方法

クライアントでの設定
{
  "mcpServers": {
    "my-mcp-ssh": {
      "command": "uv",
      "args": [
        "--directory",
        "<your_path>/my-mcp-ssh",
        "run",
        "src/main.py"
      ],
      "env": {}
    }
  }
}
環境変数
SSH 接続のデフォルト設定(任意)

環境変数を使用すると、SSH 接続のデフォルト値を設定できます。同じサーバーに頻繁に接続する場合や、自動化された環境で役立ちます。

  • SSH_HOST:SSH サーバーのホスト名または IP アドレス
  • SSH_PORT:SSH サーバーのポート
  • SSH_USERNAME:SSH ユーザー名
  • SSH_PASSWORD:SSH パスワード(パスワード認証を使用する場合)
  • SSH_KEY_PATH:SSH 秘密鍵ファイルのパス(鍵認証を使用する場合)
  • SSH_KEY_PASSPHRASE:SSH 秘密鍵のパスフレーズ(必要な場合)

SSH 環境変数を使用する場面:

  • 繰り返し接続する場合:同じサーバーに何度も接続するとき
  • CI/CD パイプライン:デプロイスクリプトを自動化するとき
  • 開発環境:よく使うサーバーのデフォルト値を設定するとき
  • コンテナのデプロイ:コードを変更せずにデフォルト値を設定するとき

注:connect ツールに渡されたパラメーターは、常に環境変数より優先されます。

サーバー設定

サーバーの追加の動作を設定できます。

  • SESSION_TIMEOUT:セッションタイムアウト(分単位)。デフォルトは 30 分です
  • MAX_OUTPUT_LENGTH:コマンド出力の最大文字数。デフォルトは 5000 文字です
SSH 認証情報ファイル

セキュリティを高めるため、パスワードをパラメーターとして渡す代わりに、SSH 認証情報をローカル設定ファイルに保存できます。

  1. サンプルファイルをコピーします:
cp ssh-credentials.json.example ssh-credentials.json
  1. ssh-credentials.json を実際の認証情報で編集します:
{
  "[email protected]": "your_password",
  "admin@web-[0-9].example.com": "web_password",
  "deploy@server-{dev,test,staging}.company.com": "deploy_password",
  "admin@*.internal.network": "internal_password"
}

対応するパターン:

  • * - 任意の文字列に一致します
  • ? - 任意の 1 文字に一致します
  • [0-9] - 任意の数字に一致します
  • {dev,test,staging} - リスト内のいずれかの選択肢に一致します

認証の優先順位:

  1. connect ツールに渡されたパラメーター(password、key_path)
  2. 認証情報ファイル内の完全一致(username@host)
  3. 認証情報ファイル内のパターン一致(ワイルドカード)
  4. 環境変数のパスワード(SSH_PASSWORD)
  5. 環境変数の鍵(SSH_KEY_PATH)
  6. デフォルトの SSH 鍵(存在する場合は ~/.ssh/id_rsa)

セキュリティ:

  • ファイルのアクセス権限は自動的に 600(所有者のみ読み取り/書き込み可能)に設定されます
  • 誤ってコミットされないよう、ファイルは .gitignore に追加されます

注:

  • 認証情報ファイルの変更は、サーバーを再起動せずにすぐ反映されます
  • 接続を試みるたびにファイルが新たに読み込まれます

ツール一覧

connect

SSH サーバーに接続します

パラメーター:

  • host:SSH サーバーのホスト名または IP アドレス(任意)
  • port:SSH サーバーのポート(任意、デフォルトは 22)
  • username:SSH ユーザー名(任意)
  • password:認証用の SSH パスワード(任意)
  • key_path:認証用 SSH 秘密鍵ファイルのパス(任意)
  • key_passphrase:必要な場合に指定する SSH 秘密鍵のパスフレーズ(任意)
disconnect

SSH セッションを切断します

パラメーター:

  • session_id:切断するセッション ID
list_sessions

アクティブな SSH セッションをすべて一覧表示します

パラメーター:

  • なし
execute

SSH サーバーでコマンドを実行します

パラメーター:

  • session_id:セッション ID
  • command:実行するコマンド
  • stdin:コマンドに渡す入力文字列。デフォルトは空です
  • timeout:コマンドのタイムアウト(秒単位)。デフォルトは 60 秒です
upload

SSH サーバーにファイルをアップロードします

パラメーター:

  • session_id:セッション ID
  • local_path:ローカルファイルのパス
  • remote_path:リモートファイルのパス
ダウンロード

SSH サーバーからファイルをダウンロードします

パラメーター:

  • session_id:セッション ID
  • remote_path:リモートファイルのパス
  • local_path:ローカルファイルのパス

デバッグ

オンラインでデバッグするには、./inspector.sh を実行してください

ライセンス

my-mcp-ssh は Apache License, Version 2.0 のライセンスに基づいています

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。