mcpField
S
ssh-connect MCP server

ssh-connect MCP server

ローカル
github.com/t-suganuma開発ツール482 週間前に更新

ssh-connect MCP server について

ssh-connect MCP server は、SSH ホストへの接続やリモートファイル操作を行う MCP ツールを提供します。リモートコマンドの実行、ファイル転送、ディレクトリ一覧に対応し、パスワードまたは鍵で認証できます。

主な機能

  1. 01SSH 接続と切断
  2. 02タイムアウト指定付きのリモートコマンド実行
  3. 03ファイルのアップロードとダウンロード
  4. 04種類とサイズ付きのリモートファイル一覧
  5. 05パスワードまたは鍵による認証

活用シーン

  1. 01SSH ホストでのコマンド実行
  2. 02ローカルとリモート間のファイル転送
  3. 03リモートディレクトリの内容確認

MCP 対応

SSH 接続、コマンド実行、ファイル転送、一覧取得のツールを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

ssh-connect MCP サーバー

** このプロジェクトのコードはすべて、生成 AI によって作成されました。 **

SSH 接続とファイル操作のための MCP サーバーです。

コンポーネント

ツール

このサーバーは、SSH 関連の複数のツールを実装しています。

  • connect:SSH サーバーに接続します

    • 環境変数を上書きするためのオプションパラメーター:host、port、username、password、key_path、key_passphrase
    • 接続ステータスを返します
  • disconnect:SSH サーバーから切断します

    • パラメーターは不要です
    • 切断ステータスを返します
  • execute:SSH サーバー上でコマンドを実行します

    • 必須パラメーター:command(文字列)
    • オプションパラメーター:timeout(整数、秒単位、デフォルト:60)
    • コマンドの出力(stdout と stderr)と終了ステータスを返します
  • upload:SSH サーバーにファイルをアップロードします

    • 必須パラメーター:local_path、remote_path
    • アップロードステータスを返します
  • download:SSH サーバーからファイルをダウンロードします

    • 必須パラメーター:remote_path、local_path
    • ダウンロードステータスを返します
  • list_files:SSH サーバー上のディレクトリ内のファイルを一覧表示します

    • 必須パラメーター:path
    • ファイルの種類とサイズの情報を含むファイル一覧を返します

設定

SSH 接続パラメーターは、MCP 設定の環境変数を使用して設定できます。

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

認証には、SSH_PASSWORD または SSH_KEY_PATH のいずれかを指定する必要があります。

設定例

MCP 設定ファイルの例として、mcp-config-example.json が用意されています。これをテンプレートとして、SSH MCP サーバーを設定できます。

{
  "mcpServers": {
    "ssh-connect": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/ssh-connect",
        "run",
        "ssh-connect"
      ],
      "env": {
        "SSH_HOST": "example.com",
        "SSH_PORT": "22",
        "SSH_USERNAME": "username",
        "SSH_PASSWORD": "password",
        "SSH_KEY_PATH": "/path/to/private_key",
        "SSH_KEY_PASSPHRASE": "key_passphrase"
      }
    }
  }
}

注:通常は、SSH_PASSWORD または SSH_KEY_PATH(必要に応じて SSH_KEY_PASSPHRASE を指定)のどちらか一方を指定すれば十分です。両方を指定する必要はありません。

例

SSH MCP サーバーの使い方を示す Python スクリプトの例が、examples ディレクトリに用意されています。

  • ssh_example.py:SSH サーバーへの接続、コマンドの実行、ファイルのアップロード/ダウンロード、ディレクトリ内容の一覧表示、切断の方法を示します。

例を実行するには:

python examples/ssh_example.py

この例では、SSH MCP サーバーがすでに設定され、実行中であることを前提としています。

Cline での使用

README.md ファイルを読まなくても Cline が SSH MCP サーバーの使い方を理解できるよう、以下のファイルが用意されています。

  • cline_ssh_usage_example.md:Cline で SSH MCP サーバーを使用するためのクイックリファレンスガイドです。コマンド例と一連のワークフローが記載されています。
  • create_test_file.py:アップロード/ダウンロードのテスト用ファイルを作成するスクリプトです。
  • test_ssh_mcp.sh:テスト用ファイルを作成し、Cline で SSH MCP サーバーをテストする手順を表示するシェルスクリプトです。
  • test_ssh_mcp.py:Cline を使わずに、Python から SSH MCP サーバーを直接使用する方法を示す Python スクリプトです。
  • ssh_mcp_guide.html:Cline で SSH MCP サーバーを使用するための例と一連のワークフローを含む HTML ガイドです。

Cline で SSH MCP サーバーをテストするには:

./test_ssh_mcp.sh

テスト用ファイルが作成され、Cline で SSH MCP サーバーをテストする手順が表示されます。

Python から SSH MCP サーバーを直接テストするには:

./test_ssh_mcp.py

接続、コマンドの実行、ファイルのアップロード/ダウンロード、切断を含む、SSH MCP サーバーの一連のテストが実行されます。

クイックスタート

インストール
オールインワンセットアップ

SSH MCP サーバーのセットアップとテストを一括で行うには、オールインワンセットアップスクリプトを使用できます。

./setup_and_test.sh

このスクリプトでは、次の処理が行われます。

  1. 必要な依存関係をインストールします
  2. Cline または Claude Desktop(あるいは両方)に SSH MCP サーバーをインストールします
  3. SSH MCP サーバーをテストします
手動セットアップ
依存関係

SSH MCP サーバーを使用する前に、必要な依存関係をインストールしてください。

./install_dependencies.sh

このスクリプトは、SSH 接続に必要な Python パッケージの paramiko をインストールします。

自動インストール

SSH MCP サーバーを自動的にインストールするための Python スクリプトが 2 つ用意されています。

  1. Cline の場合:
./install_ssh_mcp.py
  1. Claude Desktop の場合:
./install_ssh_mcp_claude.py

これらのスクリプトは、次の処理を行います。

  1. 設定ファイルの場所を検出します
  2. SSH 接続パラメーターの入力を求めます
  3. SSH MCP サーバーの設定で設定ファイルを更新します
手動インストール
Claude Desktop

Claude Desktop の設定ファイルの例が claude-desktop-config-example.json に用意されています。このファイルでは、Claude Desktop で SSH MCP サーバーを設定する方法を示しています。

Claude Desktop に SSH MCP サーバーをインストールするには、次の手順を実行します。

  1. Claude Desktop の設定ファイルを見つけます。

    • macOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
    • Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
  2. 設定ファイルの mcpServers オブジェクトに SSH MCP サーバーの設定を追加します。

{
  "mcpServers": {
    "ssh-connect": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/ssh-connect",
        "run",
        "ssh-connect"
      ],
      "env": {
        "SSH_HOST": "example.com",
        "SSH_PORT": "22",
        "SSH_USERNAME": "username",
        "SSH_PASSWORD": "password",
        "SSH_KEY_PATH": "/path/to/private_key",
        "SSH_KEY_PASSPHRASE": "key_passphrase"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
  1. 変更を適用するため、Claude Desktop を再起動します。

注:プレースホルダーの値を、実際の SSH 接続情報に置き換えてください。

開発

ビルドと公開

パッケージを配布できる状態にするには、次の手順を実行します。

  1. 依存関係を同期し、ロックファイルを更新します。
uv sync
  1. パッケージの配布物をビルドします。
uv build

これにより、dist/ ディレクトリにソース配布物と wheel 配布物が作成されます。

  1. PyPI に公開します。
uv publish

注:環境変数またはコマンドフラグで PyPI の認証情報を設定する必要があります。

  • トークン:--token または UV_PUBLISH_TOKEN
  • またはユーザー名/パスワード:--username/UV_PUBLISH_USERNAME と --password/UV_PUBLISH_PASSWORD
テスト

SSH MCP サーバーが正しく動作することを確認するためのテストスクリプトが tests ディレクトリに用意されています。

python tests/test_ssh_connect.py

このテストスクリプトでは、SSH サーバーに実際に接続することなく、unittest とモックを使用して SSH MCP サーバーの基本機能をテストします。

デバッグ

MCP サーバーは stdio 経由で実行されるため、デバッグは難しい場合があります。デバッグを最適に行うため、MCP Inspector の使用を強くおすすめします。

次のコマンドを使用すると、npm 経由で MCP Inspector を起動できます。

npx @modelcontextprotocol/inspector uv --directory /path/to/ssh-connect run ssh-connect

起動すると、Inspector に URL が表示されます。その URL にブラウザーからアクセスして、デバッグを開始できます。

コメント

MCP は初めてですか?

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

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