Remote Session Mcp について
Remote Session Mcpは、永続的なSSHセッションを通じてリモートホストを管理するMCPサーバーです。コマンド間でシェルの状態を保ち、SSH設定から接続情報を読み込みます。
主な機能
- 01永続SSHセッションの作成と管理
- 02ディレクトリと環境変数の状態保持
- 03~/.ssh/configからホスト情報を取得
- 04リモートファイルのアップロードとダウンロード
活用シーン
- 01連続したリモートコマンドによるアプリのデプロイ
- 02状態を保つシェルコマンドでのサーバーデバッグ
- 03リモートファイルの管理と転送
MCP 対応
ホスト一覧、セッション管理、コマンド実行、ファイル転送のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
リモートセッション MCP サーバー
AI アシスタントが永続的な SSH セッションを管理し、リモートサーバーでコマンドを実行できるようにする Model Context Protocol(MCP)サーバーです。
主な利点
状態を維持する永続セッション
コマンドを個別に実行する SSH ツールとは異なり、このサーバーは invoke_shell() を使用して、複数のコマンドにわたって状態が維持される対話型シェルセッションを保持します。
| 機能 | 永続セッション | 単一コマンド |
|---|---|---|
作業ディレクトリ(cd) | 維持されます | コマンドごとに失われます |
環境変数(export) | 維持されます | コマンドごとに失われます |
| 複数ステップのワークフロー | 自然な流れで実行できます | 手動でコンテキストを渡す必要があります |
| AI のコンテキスト認識 | pwd を自動的に追跡します | 状態を追跡しません |
一般的なワークフロー:
create → execute("cd /app") → execute("export ENV=prod") → execute("./deploy.sh") → close
コマンドを順に組み合わせて実行する、AI 主導のデプロイ、デバッグ、サーバー管理タスクに最適です。
SSH 設定との自動連携
- 接続パラメーターを
~/.ssh/configから自動的に解析します - 鍵ベース認証、カスタムポート、踏み台ホスト、および標準的な SSH オプションすべてをサポートします
- 認証情報や接続の詳細をコードに直接記述する必要はありません
インストール
# Using uv (recommended)
uv pip install -e .
# Or using pip
pip install -e .
使用方法
1. SSH を設定する
サーバーが ~/.ssh/config に設定されていることを確認してください。
Host production
HostName 192.168.1.100
User deploy
IdentityFile ~/.ssh/id_rsa
2. MCP サーバーを実行する
remote-session-mcp
# Or: python -m remote_session_mcp
3. Claude Code との連携
プロジェクト内に .claude/settings.json または mcp.json を作成します。
{
"mcpServers": {
"remote-session": {
"command": "uv",
"args": ["run", "remote-session-mcp"],
"cwd": "/path/to/sshmcp"
}
}
}
4. 利用可能なツール
| ツール | 説明 |
|---|---|
hosts | ~/.ssh/config にあるすべてのホストを一覧表示します |
create | 永続的な SSH セッションを作成します |
execute | コマンドを実行します(状態は維持されます) |
close | セッションを終了します |
sessions | アクティブなセッションを一覧表示します |
upload | リモートサーバーにファイルをアップロードします |
download | リモートサーバーからファイルをダウンロードします |
例:アプリケーションをデプロイする
// 1. Create session
{"tool": "create", "arguments": {"host": "production"}}
// 2. Navigate and deploy (state persists)
{"tool": "execute", "arguments": {"session_id": "session_abc", "command": "cd /var/www/myapp"}}
{"tool": "execute", "arguments": {"session_id": "session_abc", "command": "git pull"}}
{"tool": "execute", "arguments": {"session_id": "session_abc", "command": "npm install"}}
{"tool": "execute", "arguments": {"session_id": "session_abc", "command": "sudo systemctl restart myapp"}}
// 3. Close session
{"tool": "close", "arguments": {"session_id": "session_abc"}}
設定(任意)
カスタム設定を行うには、~/.remote-session/config.json を作成します。
{
"enable_raw_output": false,
"ssh_config_path": "~/.ssh/config"
}
| オプション | デフォルト | 説明 |
|---|---|---|
enable_raw_output | false | ANSI コードのみを除去した生の出力を返します |
ssh_config_path | ~/.ssh/config | SSH 設定ファイルのカスタムパス |
制限事項
- Linux/POSIX のみ - POSIX 互換のシェルとコマンド(
pwd、echo $?)を前提としています - 対話型シェルが必要 - リモートサーバーが対話型シェルセッションをサポートしている必要があります
- セッションのタイムアウト - セッションは非アクティブ状態が 1 時間続くと自動的に終了します(設定可能)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。