mcpField
S
safe-ssh-mcp

safe-ssh-mcp

ローカル
github.com/Aresoクラウド・インフラ810 週間前に更新

safe-ssh-mcp について

safe-ssh-mcpは、SSH経由でリモートホストの読み取り専用診断を行うMCPサーバーです。DevOpsやSysOps向けに、汎用シェルではなく、限定されたシステム監視・状態確認ツールを提供します。

主な機能

  1. 01SSH経由の読み取り専用診断
  2. 02ディスク、ログ、稼働時間の確認
  3. 03systemdユニットとタイマーの確認
  4. 04パスワードとSSH鍵による認証

活用シーン

  1. 01リモートホストのディスク容量を確認
  2. 02失敗したsystemdサービスを調査
  3. 03システム状態とログを確認

MCP 対応

クライアントに範囲を限定したSSH読み取り専用診断ツールを提供し、SSHパスワードまたは秘密鍵での認証に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"areso-safe-ssh": {
"command": "uvx",
"args": [
"safe-ssh-mcp"
]
}
}
}
起動コマンドuvx safe-ssh-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisafe-ssh-mcp0.1.15

ツール

24

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
hoststringはい
portintegerいいえ
userstringはい
timeoutintegerいいえ
key_pathanyいいえ
passwordanyいいえ
accept_new_hostkeybooleanいいえ

詳細

Safe SSH MCP サーバー

SSH 経由で読み取り専用の診断コマンドを実行する、安全でスコープを限定した SSH MCP サーバーです。
このプロジェクトで「安全」とは、特にホストの安全性を指します。リモートシステムへの変更を防ぎ、運用上の損害のリスクを低減するように設計されています。外部エージェントによるコマンド出力の悪用を防ぐことは保証しません。

バッジ

Snyk Vulnerability Database report - セキュリティチェック
PyPI Downloads

概要

この MCP サーバーの中核となる理念は、安全性を最優先することです。AI エージェントに制限のない bash シェルを提供するのではなく、システムの診断と監視に使用する、慎重に選定された読み取り専用コマンドのみを公開します。

利用可能なツール(一部)

  1. get_disk_free : df -h
  2. get_disk_usage : find <path> -mindepth 1 -maxdepth 1 -exec du -sh -- {} + 2>/dev/null | sort -rh | head -n 20
  3. get_dmesg : dmesg
  4. get_uptime : uptime
  5. get_current_datetime : date
  6. get_distroname_version : cat /etc/os-release
  7. get_systemd_list_all : systemctl list-units --all --no-pager
  8. get_systemd_list_failed : systemctl list-units --state=failed --no-pager
  9. get_systemd_list_timers : systemctl list-timers --no-pager
  10. get_crontab_tasks: crontab -l
  11. get_systemd_status : systemctl status {daemon}
  12. 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
  1. SSH アカウントのパスワード:MCP ツールに password を渡します。秘密鍵のパスフレーズには使用しないでください。

  2. 保護されていない SSH 鍵:key_path を使用します。デフォルトの ENV_VAR 設定も、保護されていない鍵に対応しています。SSH_KEY_PASSPHRASE は不要です。

  3. 環境変数を使用する、パスフレーズで保護された SSH 鍵:ssh_key_passphrase_method=ENV_VAR のままにし、MCP サーバーを起動する環境で SSH_KEY_PASSPHRASE を設定して、key_path を指定します。

    export SSH_KEY_PASSPHRASE='your-key-passphrase'
    safe-ssh-mcp
    
  4. 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
    
  5. macOS Dock から起動した Cursor:KEYCHAIN の使用を推奨します。任意のターミナルウィンドウから ssh-add を実行できます。macOS のログインセッションの SSH エージェントが更新されるため、Cursor をそのターミナルから起動する必要はありません。

    ssh-add --apple-use-keychain ~/.ssh/id_ed25519
    ssh-add -l
    

    mcp_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 はサーバープロセスの環境にパスフレーズを保存するため、プロセスへのアクセスを制限し、ソース管理に含めないようにしてください。

変更履歴

プロジェクトの内容

  1. mcp_ssh.py - SSH MCP サーバー
  2. mcp_config.ini - サーバーの設定
  3. check_health_sse.py - サーバーのツールを確認し、稼働しているかどうかを確認します(SSE トランスポート)
  4. 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 エージェントを安全に接続できます。

コメント

MCP は初めてですか?

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

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