mcpField
R
Remote Session Mcp

Remote Session Mcp

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

Remote Session Mcp について

Remote Session Mcpは、永続的なSSHセッションを通じてリモートホストを管理するMCPサーバーです。コマンド間でシェルの状態を保ち、SSH設定から接続情報を読み込みます。

主な機能

  1. 01永続SSHセッションの作成と管理
  2. 02ディレクトリと環境変数の状態保持
  3. 03~/.ssh/configからホスト情報を取得
  4. 04リモートファイルのアップロードとダウンロード

活用シーン

  1. 01連続したリモートコマンドによるアプリのデプロイ
  2. 02状態を保つシェルコマンドでのサーバーデバッグ
  3. 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_outputfalseANSI コードのみを除去した生の出力を返します
ssh_config_path~/.ssh/configSSH 設定ファイルのカスタムパス

制限事項

  • Linux/POSIX のみ - POSIX 互換のシェルとコマンド(pwd、echo $?)を前提としています
  • 対話型シェルが必要 - リモートサーバーが対話型シェルセッションをサポートしている必要があります
  • セッションのタイムアウト - セッションは非アクティブ状態が 1 時間続くと自動的に終了します(設定可能)

コメント

MCP は初めてですか?

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

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