MCP サーバー SSH クライアント
SSH経由でリモートMCPサーバーに接続するモデルコンテキストプロトコルサーバー(リモートSSHクライアント)。このクライアントは、リモートサーバーでホストされているMCPツールへのアクセスと利用を可能にし、MCP通信のための安全なチャネルを提供します。
特徴
- SSH経由で任意のMCPサーバーに接続します
- すべてのMCPプロトコルコマンドを安全なSSHチャネル経由でプロキシする
- キーベースの認証のサポート
- ツール、プロンプト、リソースを含む MCP 機能のサポート
インストール
uv
管理 Python プロジェクトでは、次のように依存関係を追加します。
あるいは、依存関係にpip
を使用するプロジェクトの場合:
ソースから直接インストールするには:
プロジェクト内でサーバーを実行するには:
一般的な使用例
1. デモサーバーを使ったクイックスタート
様々なMCPツールが設定済みですぐに使える公開デモサーバーを運用しています。(このサーバーは、オープンな分散型レジストリをリリースするまでご利用いただけます。)
このデモ サーバーには、HackerNews、MLB Stats API、Formula 1 API ツールなど、実験に使用できる複数の MCP サーバーが含まれています。
クロード
Claude をこのサーバーに接続するには、Claude デスクトップ設定に以下を追加するだけです。
コマンドライン
2. ローカル開発テスト
独自の SSH サーバーを設定するには、 m2m-mcp-server-ssh-server
を参照してください。
独自の MCP ツールを使用したローカルテストの場合:
上記のコマンドは、ポート 8022 でリッスンしているローカル SSH サーバーに接続しようとします。
ローカルでテストする場合は、キー サーバーを使用することでキー交換を簡素化できます。
上記のコマンドは、ポート 8000 で実行されているキー サーバーの使用を試みます。
3. リモートサーバー接続
独自にホストされた MCP サーバーに接続します。
リモート サーバーでキー サーバーを実行し、クライアントで構成することで、キー交換を簡素化できます。
AI プラットフォームでの使用
クロードデスクトップ統合
Claude デスクトップの設定に以下を追加します:
MCP検査官
デバッグや利用可能なツールの調査:
使用法
コマンドラインオプション
--host
: リモートSSHサーバーホスト(デフォルト: "localhost")--port
: リモートSSHサーバポート(デフォルト: 8022)--username
: SSHユーザー名 (デフォルト: "mcp")--client-key
: クライアント秘密鍵ファイル (デフォルト: "~/.ssh/m2m_mcp_server_ssh_client")--known-hosts
: 既知のホストファイルへのパス(デフォルト: "~/.ssh/known_hosts")--passphrase
: 秘密鍵のパスフレーズ(デフォルト: なし)--disable-host-key-checking
: サーバー署名の検証をスキップする (デフォルト: False)--log-level
: ログレベルを設定する (デフォルト: INFO)
詳細な例
リモートサーバーへの基本接続
ポート 8022 で実行されているリモート MCP サーバー (SSH サーバー) に接続します。
カスタムSSHキーの使用
認証用の特定の SSH キーを指定します。
キーがパスフレーズで保護されている場合:
トラブルシューティングのためのデバッグモード
接続の問題のトラブルシューティングのために詳細なログ記録を有効にします。
キーサーバーの統合
MCP SSH クライアントは、動的なキー交換と検証のためにキー サーバーを使用できます。
キーサーバーを使用する場合:
- クライアントは
http://host:key-server-port/server_pub_key
からサーバーの公開鍵を取得します。 - クライアントは
http://host:key-server-port/register
で公開鍵をサーバーに登録します。 - SSH接続用に一時的な
known_hosts
ファイルが作成されます
この機能は--known-hosts
および--disable-host-key-checking
とは排他的です。
ホストキーのチェックを無効にする
⚠️ セキュリティ警告:
--disable-host-key-checking
を使用すると、接続が中間者攻撃に対して脆弱になります。このオプションは、信頼できるネットワーク内、または開発/テスト目的でのみ使用してください。
Claudeデスクトップ用の設定
Claude 設定に追加:
特定のキーを使用したより安全な構成の場合:
仕組み
MCP Server SSHクライアントは、MCPツール用のMCP Server SSH Server m2m-mcp-server-ssh-server
実行しているリモートサーバーへのSSH接続を確立します。その後、以下の処理を実行します。
- リモート MCP サーバーの機能をミラーリングするローカル プロキシ サーバーを作成します。
- すべてのMCPリクエストをSSH接続を介してリモートサーバーに転送します。
- リモートサーバーからの応答をローカルクライアントに返します
これにより、リモート マシンで実行されているツールを、ローカルにインストールされているかのように使用できるようになります。
認証フロー
セキュリティに関する考慮事項
- 実稼働環境では常にホストキー検証を使用する
- セキュリティを強化するためにパスフレーズで保護されたSSHキーを使用する
- MCP接続には専用のSSHキーの使用を検討してください
- SSHキーファイルに適切な権限(600)を設定します
- リモートサーバー上で、権限が制限された専用のユーザーを使用する
一般的な問題のトラブルシューティング
接続拒否
解決策: ホストとポートが正しいこと、および SSH サービスが実行されていることを確認します。
認証失敗
解決策:キーファイルのパスを確認してください。リモートサーバーに公開鍵がインストールされていることを確認してください。
ホストキーの検証に失敗しました
解決策: ホスト キーをknown_hosts ファイルに追加するか、 --disable-host-key-checking
(テストのみ) を使用します。
依存関係
- anyio (>=4.5.0)
- asyncssh (>=2.20.0)
- mcp (>=1.1.3)
- ピダンティック (>=2.0.0)
発達
開発環境のセットアップ
コード品質
デバッグ
MCP インスペクタを使用してクライアントをデバッグできます。
高度なデバッグを行うには、次のワークフローを使用します。
--log-level DEBUG
でクライアントを起動します- SSH接続パラメータとハンドシェイクプロセスを確認する
- カスタムキーを使用する場合は、正しいパスと権限を確認してください
- まず基本的な接続をテストするために
ssh -v
を直接使用します
貢献
m2m-mcp-server-ssh-client
拡張と改善のための貢献を歓迎します。新機能の追加、既存機能の強化、ドキュメントの改善など、皆様からのご意見は大変貴重です。
プルリクエストは大歓迎です!新しいアイデア、バグ修正、機能強化など、お気軽にご投稿ください。
寄稿ガイドライン
- リポジトリをフォークする
- 機能ブランチを作成する:
git checkout -b feature-name
- 変更をコミットします:
git commit -am 'Add some feature'
- ブランチにプッシュ:
git push origin feature-name
- プルリクエストを送信する
ライセンス
MIT ライセンス - 詳細については LICENSE ファイルを参照してください。
著者
- マシンツーマシン
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
m2m-mcp-server-ssh-client は、MCP サーバーを統合する統合 MCP サーバーインターフェースを提供し、MCP サーバーを集約する m2m-mcp-server-ssh-server バックエンドに SSH 経由で安全に接続します。このセットアップにより、堅牢な SSH キーベース認証を使用して、多様なリモートツールへの安全な単一アクセスが可能になります。
Related MCP Servers
- -securityAlicense-qualityThis MCP server allows you to connect MCP clients with Toolhouse's tools.Last updated -8PythonMIT License
- -securityFlicense-qualityA simple MCP server that allows accessing and executing shell commands on a VM machine through a web-based terminal interface, with automatic tunneling to make the VM accessible from anywhere.Last updated -392JavaScript
- AsecurityFlicenseAqualityA server that enables remote command execution over SSH through the Model Context Protocol (MCP), supporting both password and private key authentication.Last updated -1501JavaScript
- -securityAlicense-qualityA server that enables secure interaction with remote SSH hosts through standardized MCP interface, providing functions like listing hosts, executing commands, and transferring files using native SSH tools.Last updated -1572JavaScriptMIT License