A Better Mcp ssh Server について
mcpsshは、リモートサーバー上の対話型SSHセッションを管理するAIエージェント向けのGo製MCPサーバーです。PTYを使った永続セッションと、開始・操作・終了のツールを提供します。
主な機能
- 01PTYでSSHセッションを開始
- 02入力送信と出力の読み取り
- 03永続セッションの維持
- 04セッション終了とリソース解放
活用シーン
- 01リモートサーバーでコマンドを実行
- 02対話型シェルのプロンプトに応答
- 03SSHセッション経由でスクリプトを実行
MCP 対応
MCPサーバーは、SSHセッションの開始、稼働中セッションとの対話、終了を行うツールを公開します。セッションは返されるsession IDで識別されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの概要
mcpsshは、AI エージェントの SSH セッション管理を支援するために設計された、Go ベースの Model Context Protocol(MCP)サーバーです。永続的なセッションを作成し、コマンドを送信して、擬似端末(PTY)インターフェースを通じて出力を読み取ることで、AI が SSH 経由でリモートサーバーとやり取りできるようにします。
アーキテクチャと主要コンポーネント
このプロジェクトは、MCP サーバーとそのツールを定義する単一のメインファイルmcpssh.goで構成されています。
コアツール
start_session:PTY を使用して、指定したホストへの新しい SSH 接続を開始します。session_idを返します。interact_session:アクティブな SSH セッションに入力を送信し、出力を読み取ります。これにより、対話型シェルを使用できます(例:プロンプトへの応答、スクリプトの実行)。close_session:アクティブな SSH セッションを終了し、リソースをクリーンアップします。
依存関係
github.com/mark3labs/mcp-go:MCP サーバー SDK。github.com/creack/pty:対話型 SSH セッションの PTY 管理。github.com/google/uuid:セッション ID の生成。
ビルドと実行
前提条件
- Go 1.25.0 以降。
- システムにsshがインストールされていること。macOSで使用しています。
~/.ssh/configファイル
ビルドコマンド
go build -o mcpssh
インストール
codexのインストールでcmd引数を使用
codex mcp add mcpssh -- /your_path_to_mcpssh/mcpssh
geminiでファイル~/.gemini/settings.jsonを編集
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"]
},
"ssh": {
"command": "/your_path_to_mcpssh/mcpssh",
"args": []
}
},
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。