Skip to main content
Glama
tadasant

MCP Server: SSH Rails Runner

by tadasant

MCP サーバー: SSH Rails ランナー

SSH経由でRailsコンソールコマンドを安全にリモート実行できるMCPサーバー。このサーバーは、デプロイされたRails環境において、読み取り専用操作と慎重に管理されたミューテーションの両方のためのツールを提供します。

これはCursorと非常に相性が良いです。Cursor Composerを使ってRailsモデルファイルをコンテキストとして読み込み、 execute_read_only 、 dry_run_mutate 、 execute_mutateツールを使ってデータベースに変更を加えることができます。データのラングリングや分析を行うために、複雑な管理UIを苦労して操作する必要はありません。

例

例

Related MCP server: SSH Read-Only MCP Server

特徴

  • SSH経由のリモートRailsコンソール実行

  • 安全な読み取り専用操作

  • 突然変異のドライラン機能

  • 承認された変異の実行

  • コードスニペットのリソース管理

インストール

npm install
npm run build

構成

次の環境変数を設定します。

SSH_HOST=your.remote.host
SSH_USER=your_ssh_user
SSH_PRIVATE_KEY_PATH=your_SSH_PRIVATE_KEY_PATH
RAILS_WORKING_DIR=/path/to/rails/app

Claude Desktopでの使用

Claude Desktop 構成に追加:

{
  "mcpServers": {
    "ssh-rails-runner": {
      "command": "npx",
      "args": ["mcp-server-ssh-rails-runner"],
      "env": {
        "SSH_HOST": "your.remote.host",
        "SSH_USER": "your_ssh_user",
        "SSH_PRIVATE_KEY_PATH": "your_SSH_PRIVATE_KEY_PATH",
        "RAILS_WORKING_DIR": "/path/to/rails/app/root",
        "PROJECT_NAME_AS_CONTEXT": "Name that shows up in tool descriptions to help the LLM describe what kind of Rails project we're working with.",
        "CODE_SNIPPET_FILE_DIRECTORY": "/path/to/store/code/snippets/locally"
      }
    }
  }
}

CODE_SNIPPET_FILE_DIRECTORYが指定されていない場合、スニペットは一時ディレクトリ(例: /tmp/mcp-ssh-rails-runner-code-snippets )に保存されます。PROJECT_NAME_AS_CONTEXT PROJECT_NAME_AS_CONTEXTオプションであり、ツールの説明でプロジェクトのコンテキストを識別するのに役立ちます。

利用可能なツール

サーバーは準備 -> 実行ワークフローを使用するようになりました。

mcp_ssh_rails_runner_prepare_code_snippet

  • 引数: name (文字列、ファイル名用)、 type (列挙型: "readOnly" | "mutate")、 code (文字列、Ruby コード)、 description (文字列、オプション)。

  • 機能: 提供された Ruby コードをcode_snippet_<name>.jsonという名前のローカル ファイルに保存し、読み取り専用または変更可能としてマークして、レビュー用にファイルを開きます。

  • 戻り値: 作成されたスニペットのfile:// URI。

mcp_ssh_rails_runner_execute_code_snippet_read_only

  • 引数: uri (文字列、 prepareCodeSnippetからのfile:// URI)。

  • 機能: URI からコード スニペットを読み取り、それがreadOnlyとしてマークされていることを確認し、コードの安全性チェックを実行して実行します。

  • 戻り値: Rails コマンドの出力。

mcp_ssh_rails_runner_execute_code_snippet_mutate

  • 引数: uri (文字列、 prepareCodeSnippetからのfile:// URI)。

  • 機能:**危険ゾーン!**コードスニペットを読み取り、 mutateとしてマークされていることを確認し、直接実行します。このツールには、ドライランやそれ以上の安全性チェックは行われません。

  • 戻り値: Rails コマンドの出力。

  • 使用方法:ユーザーが準備されたコード ( prepareCodeSnippetから開いたファイル経由) を確認し、ミューテーションを実行することを明示的に確認した後にのみ、これを呼び出します。

セキュリティに関する考慮事項

  • リモート環境へのアクセスが (一時的に) 提供されている、独自のローカル マシンからの信頼できる SSH エンドポイントでのみ使用してください。

  • **重要なのは、 executeCodeSnippetMutateでミューテーションを実行する前に、必ずprepareCodeSnippetで保存したコードを確認することです。**ミューテーションの確認は、ユーザーと呼び出し元のAIの責任となります。

ライセンス

マサチューセッツ工科大学

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables SSH connections and remote command execution with persistent session management and real-time browser-based terminal monitoring. Supports multiple simultaneous SSH sessions with command history tracking and live WebSocket streaming of terminal output.
    6
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables secure remote SSH command execution with strict read-only enforcement, allowing safe delegation of SSH access to Claude while preventing write operations. Supports connection pooling, command validation, and comprehensive logging for audit trails.
    5
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables remote shell command execution and file operations with restricted/unrestricted modes, background tasks, safe editing, and code search.
    MIT