safe-ssh-mcp について
safe-ssh-mcpは、SSH経由でリモートホストの読み取り専用診断を行うMCPサーバーです。DevOpsやSysOps向けに、汎用シェルではなく、限定されたシステム監視・状態確認ツールを提供します。
主な機能
- 01SSH経由の読み取り専用診断
- 02ディスク、ログ、稼働時間の確認
- 03systemdユニットとタイマーの確認
- 04パスワードとSSH鍵による認証
活用シーン
- 01リモートホストのディスク容量を確認
- 02失敗したsystemdサービスを調査
- 03システム状態とログを確認
MCP 対応
クライアントに範囲を限定したSSH読み取り専用診断ツールを提供し、SSHパスワードまたは秘密鍵での認証に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
24掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| host | string | はい | |
| port | integer | いいえ | |
| user | string | はい | |
| timeout | integer | いいえ | |
| key_path | any | いいえ | |
| password | any | いいえ | |
| accept_new_hostkey | boolean | いいえ |
詳細
Safe SSH MCP サーバー
SSH 経由で読み取り専用の診断コマンドを実行する、安全でスコープを限定した SSH MCP サーバーです。
このプロジェクトで「安全」とは、特にホストの安全性を指します。リモートシステムへの変更を防ぎ、運用上の損害のリスクを低減するように設計されています。外部エージェントによるコマンド出力の悪用を防ぐことは保証しません。
バッジ
概要
この MCP サーバーの中核となる理念は、安全性を最優先することです。AI エージェントに制限のない bash シェルを提供するのではなく、システムの診断と監視に使用する、慎重に選定された読み取り専用コマンドのみを公開します。
利用可能なツール(一部)
- get_disk_free :
df -h - get_disk_usage :
find <path> -mindepth 1 -maxdepth 1 -exec du -sh -- {} + 2>/dev/null | sort -rh | head -n 20 - get_dmesg :
dmesg - get_uptime :
uptime - get_current_datetime :
date - get_distroname_version :
cat /etc/os-release - get_systemd_list_all :
systemctl list-units --all --no-pager - get_systemd_list_failed :
systemctl list-units --state=failed --no-pager - get_systemd_list_timers :
systemctl list-timers --no-pager - get_crontab_tasks:
crontab -l - get_systemd_status :
systemctl status {daemon} - get_top :
top -b -n 1 -c
クリックして利用可能なツールの全一覧を開きます。
呼び出し例
okay, could u check disk usage on /root/ path with help of safe-ssh-mcp server on a remote myserver.mydomain.pro using root and /Users/myUser/.ssh/id_rsa to login?
接続方法
このサーバーは、SSH アカウントのパスワード認証と秘密鍵認証に対応しています。秘密鍵のパスフレーズの取得元は、mcp_config.ini で設定してください。
# ENV_VAR (SSH_KEY_PASSPHRASE) or KEYCHAIN (ssh-agent)
ssh_key_passphrase_method=ENV_VAR
-
SSH アカウントのパスワード:MCP ツールに
passwordを渡します。秘密鍵のパスフレーズには使用しないでください。 -
保護されていない SSH 鍵:
key_pathを使用します。デフォルトのENV_VAR設定も、保護されていない鍵に対応しています。SSH_KEY_PASSPHRASEは不要です。 -
環境変数を使用する、パスフレーズで保護された SSH 鍵:
ssh_key_passphrase_method=ENV_VARのままにし、MCP サーバーを起動する環境でSSH_KEY_PASSPHRASEを設定して、key_pathを指定します。export SSH_KEY_PASSPHRASE='your-key-passphrase' safe-ssh-mcp -
macOS Keychain/SSH エージェント:
ssh_key_passphrase_method=KEYCHAINを設定し、MCP サーバーを起動するのと同じユーザーセッションで鍵のロックを解除します。サーバーはssh-agentから SSH 署名を受け取ります。鍵のパスフレーズやkey_pathは読み取りません。ssh-add --apple-use-keychain ~/.ssh/id_ed25519 # Optional: make the loaded identity expire after one hour. ssh-add -t 1h ~/.ssh/id_ed25519 # Remove one identity, or clear every loaded identity. ssh-add -d ~/.ssh/id_ed25519 ssh-add -D -
macOS Dock から起動した Cursor:
KEYCHAINの使用を推奨します。任意のターミナルウィンドウからssh-addを実行できます。macOS のログインセッションの SSH エージェントが更新されるため、Cursor をそのターミナルから起動する必要はありません。ssh-add --apple-use-keychain ~/.ssh/id_ed25519 ssh-add -lmcp_config.iniを変更した後、Cursor で MCP サーバーを再起動してください(または Cursor を完全に終了して再度開いてください)。KEYCHAINモードでツールを呼び出す場合は、key_pathを省略してください。エージェントが読み込み済みの ID から選択します。ENV_VARを使用する必要がある場合は、Dock から Cursor を開く前に macOS の launchd セッションで設定し、Cursor を完全に終了して再度開いてください。launchctl setenv SSH_KEY_PASSPHRASE 'your-key-passphrase'この値は現在のログインセッション中のみ有効です。また、コマンドにパスフレーズを直接記述すると、シェルの履歴に保存される可能性があります。
KEYCHAINの使用を推奨します。
KEYCHAIN を使用する場合、MCP サーバーはそのユーザーセッションから SSH_AUTH_SOCK を継承する必要があります。デスクトップアプリケーションから起動される stdio サーバーでは、通常これは自動的に行われます。ENV_VAR はサーバープロセスの環境にパスフレーズを保存するため、プロセスへのアクセスを制限し、ソース管理に含めないようにしてください。
変更履歴
プロジェクトの内容
- mcp_ssh.py - SSH MCP サーバー
- mcp_config.ini - サーバーの設定
- check_health_sse.py - サーバーのツールを確認し、稼働しているかどうかを確認します(SSE トランスポート)
- check_health_stdio.py - サーバーのツールを確認し、稼働しているかどうかを確認します(stdio トランスポート)
互換性
MacOS 上の Python3.11 からリモートの Ubuntu サーバーに接続して手動テスト済みです
Python 3.11、3.12、3.13、3.14 で自動テスト済みです
MCP レジストリ
mcp-name: io.github.Areso/safe-ssh-mcp
ライセンス
このプロジェクトは GNU AGPLv3 ライセンスの下でライセンスされています。
AGPL を採用している理由
このサーバーは中核的なインフラストラクチャとして機能し、ビジネスロジックは含んでいません。AGPL ライセンスを採用することで、サーバーに追加されたセキュリティの改善、バグ修正、新しい診断ツールがオープンソースコミュニティに共有されるようにしています。
クライアント開発者への注意
MCP クライアントは、標準のプロセス間通信(IPC)またはネットワークプロトコル(HTTP/SSE など)を介してこのサーバーと通信するため、AGPL ライセンスが接続するクライアントアプリケーションに「感染」したり、制限を課したりすることはありません。
このサーバーには、ライセンス条項に違反することなく、プロプライエタリ、クローズドソース、またはパーミッシブライセンス(MIT、Apache 2.0 など)の AI エージェントを安全に接続できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。