ssh-connect MCP server について
ssh-connect MCP server は、SSH ホストへの接続やリモートファイル操作を行う MCP ツールを提供します。リモートコマンドの実行、ファイル転送、ディレクトリ一覧に対応し、パスワードまたは鍵で認証できます。
主な機能
- 01SSH 接続と切断
- 02タイムアウト指定付きのリモートコマンド実行
- 03ファイルのアップロードとダウンロード
- 04種類とサイズ付きのリモートファイル一覧
- 05パスワードまたは鍵による認証
活用シーン
- 01SSH ホストでのコマンド実行
- 02ローカルとリモート間のファイル転送
- 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
このスクリプトでは、次の処理が行われます。
- 必要な依存関係をインストールします
- Cline または Claude Desktop(あるいは両方)に SSH MCP サーバーをインストールします
- SSH MCP サーバーをテストします
手動セットアップ
依存関係
SSH MCP サーバーを使用する前に、必要な依存関係をインストールしてください。
./install_dependencies.sh
このスクリプトは、SSH 接続に必要な Python パッケージの paramiko をインストールします。
自動インストール
SSH MCP サーバーを自動的にインストールするための Python スクリプトが 2 つ用意されています。
- Cline の場合:
./install_ssh_mcp.py
- Claude Desktop の場合:
./install_ssh_mcp_claude.py
これらのスクリプトは、次の処理を行います。
- 設定ファイルの場所を検出します
- SSH 接続パラメーターの入力を求めます
- SSH MCP サーバーの設定で設定ファイルを更新します
手動インストール
Claude Desktop
Claude Desktop の設定ファイルの例が claude-desktop-config-example.json に用意されています。このファイルでは、Claude Desktop で SSH MCP サーバーを設定する方法を示しています。
Claude Desktop に SSH MCP サーバーをインストールするには、次の手順を実行します。
-
Claude Desktop の設定ファイルを見つけます。
- macOS の場合:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows の場合:
%APPDATA%/Claude/claude_desktop_config.json
- macOS の場合:
-
設定ファイルの
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": []
}
}
}
- 変更を適用するため、Claude Desktop を再起動します。
注:プレースホルダーの値を、実際の SSH 接続情報に置き換えてください。
開発
ビルドと公開
パッケージを配布できる状態にするには、次の手順を実行します。
- 依存関係を同期し、ロックファイルを更新します。
uv sync
- パッケージの配布物をビルドします。
uv build
これにより、dist/ ディレクトリにソース配布物と wheel 配布物が作成されます。
- 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 にブラウザーからアクセスして、デバッグを開始できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。