Ssh Mcp Pro について
Ssh Mcp Proは、ポリシーに基づいてSSH操作やインフラのワークフローを制御するTypeScript製MCPサーバーです。制限付きのリモートアクセスが必要なチーム向けに、ローカルとリモートの利用に応じたセキュリティ設定とツールプロファイルを備えています。
主な機能
- 01SSHセッションの開始と管理
- 02ポリシーで制限されたコマンド実行
- 03ホストとSSHポリシーの確認
- 04ファイル管理と成果物の転送
- 05トンネル作成とパッケージ・サービス状態の維持
- 06ツールプロファイルとアクセス制御の設定
活用シーン
- 01保守前のリモートホスト確認
- 02インフラ上で許可済みコマンドを実行
- 03パスとサイズ制限下でのファイル転送
- 04制限付きコネクタプロファイルのリモート公開
MCP 対応
MCPクライアントにSSH、プロセス、ファイルシステム、転送、トンネル、システム関連のツール、リソース、プロンプトを公開します。stdioまたはStreamable HTTPで接続でき、ポリシーとプロファイルで利用可能な操作を制御します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y ssh-mcp-proSSH_MCP_HTTP_ALLOWED_ORIGINSComma-separated allowed browser origins for Streamable HTTP clients. Keep this restricted when not using loopback.SSH_MCP_HTTP_BEARER_TOKEN_FILEシークレットPath to a bearer token file. Required for non-loopback HTTP bindings.SSH_MCP_HTTP_PUBLIC_URLStable HTTPS public /mcp URL. Required for non-loopback HTTP bindings.SSH_MCP_HTTP_TRUST_PROXYSet to true only behind a trusted reverse proxy that controls forwarded headers.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
46掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
ssh-mcp-pro
ssh-mcp-pro は、SSH 自動化のためのセキュアな Model Context Protocol(MCP)サーバーです。MCP 対応クライアントから SSH セッションを開き、ホストを調査し、制限付きコマンドを実行し、ファイルを管理し、成果物を転送し、トンネルを作成し、ポリシーで制御されたツールを通じて冪等なパッケージやサービスの作業を実行できます。
前提条件
- Node.js
>=22.22.2または>=24.15.0または>=26.3.0 - pnpm
>=11.0.9 - 対象ホストへの SSH アクセス
- Docker(ローカル統合テストとコンテナイメージのビルドにのみ必要)
インストール
pnpm でグローバルにインストールします:
pnpm add --global ssh-mcp-pro
ssh-mcp-pro --version
グローバルにインストールせずに実行します:
npx ssh-mcp-pro
pnpm のみの環境では、次のようにします:
pnpm dlx ssh-mcp-pro
リリースタグ用のコンテナイメージは GitHub Container Registry に公開されています:
docker run --rm ghcr.io/oaslananka/ssh-mcp-pro:1.0.0 --version
イメージは linux/amd64 と linux/arm64 向けに、正確な semver と Git タグのエイリアスで公開されています。本番環境へのデプロイでは、リリースワークフローに記録されたダイジェスト固定の参照を使用してください。タグポリシー、ダイジェスト固定の例、レジストリの検証手順については、Docker の使用方法を参照してください。
クイックスタート
汎用の stdio MCP 設定:
{
"name": "ssh-mcp-pro",
"command": "ssh-mcp-pro",
"type": "stdio"
}
VS Code 設定形式:
{
"mcp.servers": {
"ssh-mcp-pro": {
"type": "stdio",
"command": "ssh-mcp-pro",
"args": []
}
}
}
Claude Desktop 形式:
{
"mcpServers": {
"ssh-mcp-pro": {
"command": "ssh-mcp-pro",
"args": []
}
}
}
登録後は、ホストキーの厳格なポリシーを設定して、検出から開始します:
List configured SSH hosts, open a session to bastion.example.com as deploy with hostKeyPolicy=strict, then run os_detect.
使用方法
ssh-mcp-pro は、stdio 経由で MCP クライアントから使用するか、リモートでも安全なコネクタープロファイル用に HTTP トランスポートを実行します。読み取り専用の検出ツールから始めて、有効なポリシーを確認し、リモートコマンドを実行する前に明示的なセッションを作成してください:
List configured SSH hosts, explain the active SSH policy, connect to the selected host, then report its operating system and disk usage.
追加のワークフローについては examples/README.md を、クライアント固有のセットアップについては INSTALL.md を参照してください。
設定
src/config.ts で解析されるすべての SSH_MCP_* 環境変数を以下に示します。カンマ区切りの設定では、改行区切りの値も使用できます。
| 変数 | デフォルト | 用途 |
|---|---|---|
SSH_MCP_MAX_SESSIONS | 20 | 同時 SSH セッションの最大数。 |
SSH_MCP_SESSION_TTL | 900000 | セッションの有効期間(ミリ秒)。 |
SSH_MCP_COMMAND_TIMEOUT | 30000 | リモートコマンドのデフォルトのタイムアウト(ミリ秒)。 |
SSH_MCP_MAX_COMMAND_OUTPUT_BYTES | 1048576 | コマンド結果ごとにバッファーされる stdout/stderr の最大バイト数。 |
SSH_MCP_MAX_STREAM_CHUNKS | 4096 | 保持されるストリーミングチャンクの最大数。 |
SSH_MCP_MAX_FILE_SIZE | 10485760 | テキスト向けファイル読み取りで返される最大バイト数。 |
SSH_MCP_MAX_FILE_WRITE_BYTES | 10485760 | バッファリング前に受け付ける書き込みペイロードの最大サイズ。 |
SSH_MCP_MAX_TRANSFER_BYTES | 52428800 | アップロードまたはダウンロードの最大転送サイズ。 |
SSH_MCP_DEBUG | false | デバッグ向けの設定動作を有効にします。 |
SSH_MCP_RATE_LIMIT | true | MCP リクエストのグローバルレートリミッターを有効にします。 |
SSH_MCP_RATE_LIMIT_MAX | 100 | レート制限ウィンドウあたりの最大リクエスト数。 |
SSH_MCP_RATE_LIMIT_PER_SESSION | true | ツール引数に sessionId が含まれる場合に、セッションごとの MCP リクエストレート制限を有効にします。 |
SSH_MCP_RATE_LIMIT_PER_SESSION_MAX | 50 | SSH セッションごとのレート制限ウィンドウあたりの最大リクエスト数。 |
SSH_MCP_RATE_LIMIT_PER_SESSION_WINDOW_MS | 60000 | セッションごとのレート制限ウィンドウ(ミリ秒)。 |
SSH_MCP_RATE_LIMIT_WINDOW_MS | 60000 | レート制限ウィンドウ(ミリ秒)。 |
SSH_MCP_STRICT_HOST_KEY | unset | 厳格なホストキー検証と安全でないホストキー検証を切り替える、従来のブール値エイリアス。 |
SSH_MCP_HOST_KEY_POLICY | strict | ホストキーモード:strict、accept-new、または insecure。 |
SSH_MCP_KNOWN_HOSTS_PATH | ~/.ssh/known_hosts | 厳格なホストキー検証に使用する known hosts ファイル。 |
SSH_MCP_ALLOW_ROOT_LOGIN | false | root での SSH ログインを許可し、ポリシーにも反映します。 |
SSH_MCP_ALLOWED_CIPHERS | empty | SSH 暗号の任意の許可リスト。 |
SSH_MCP_POLICY_FILE | unset | ポリシーの一部を上書きする JSON ファイル。 |
SSH_MCP_POLICY_MODE | enforce | ポリシー判定モード:enforce または explain。 |
SSH_MCP_ALLOW_RAW_SUDO | false | 生の proc_sudo を許可します。ensure_* ツールの使用を推奨します。 |
SSH_MCP_ALLOW_DESTRUCTIVE_COMMANDS | false | 破壊的コマンドポリシーに該当するコマンドを許可します。 |
SSH_MCP_ALLOW_DESTRUCTIVE_FS | false | fs_rmrf などの破壊的なファイルシステム操作を許可します。 |
SSH_MCP_ALLOWED_HOSTS | empty | ポリシーとリモートコネクターの安全性チェックに使用するホスト許可リスト。 |
SSH_MCP_COMMAND_ALLOW | empty | コマンドの許可パターン。 |
SSH_MCP_COMMAND_DENY | empty | コマンドの拒否パターン。 |
SSH_MCP_PATH_ALLOW_PREFIXES | /tmp,/var/tmp,/home,/Users | ファイルシステムポリシーで許可されるリモートパスのプレフィックス。 |
SSH_MCP_PATH_DENY_PREFIXES | /etc/sudoers,/etc/shadow,/etc/passwd,/boot,/dev,/proc | ファイルシステムポリシーで拒否されるリモートパスのプレフィックス。 |
SSH_MCP_LOCAL_PATH_ALLOW_PREFIXES | OS temp directory | 転送操作で許可されるローカルパス。 |
SSH_MCP_LOCAL_PATH_DENY_PREFIXES | empty | 転送操作で拒否されるローカルパス。 |
SSH_MCP_TUNNEL_ALLOW_BIND_HOSTS | 127.0.0.1,localhost,::1 | トンネルで許可されるローカルバインドホスト。 |
SSH_MCP_TUNNEL_DENY_BIND_HOSTS | 0.0.0.0,:: | トンネルで拒否されるローカルバインドホスト。 |
SSH_MCP_TUNNEL_ALLOW_REMOTE_HOSTS | empty | トンネルのリモートターゲットホストに対する任意の許可リスト。 |
SSH_MCP_TUNNEL_DENY_REMOTE_HOSTS | empty | トンネルのリモートターゲットホストに対する任意の拒否リスト。 |
SSH_MCP_TUNNEL_ALLOW_PORTS | empty | トンネルポートの任意の許可リスト。 |
SSH_MCP_TUNNEL_DENY_PORTS | empty | トンネルポートの任意の拒否リスト。 |
SSH_MCP_HTTP_HOST | 127.0.0.1 | Streamable HTTP のバインドホスト。 |
SSH_MCP_HTTP_PORT | 3000 | Streamable HTTP のバインドポート。 |
SSH_MCP_HTTP_ALLOWED_ORIGINS | http://127.0.0.1,http://localhost | HTTP クライアントで許可されるブラウザーオリジン。 |
SSH_MCP_HTTP_BEARER_TOKEN_FILE | unset | HTTP トランスポート用のベアラートークンファイル。ループバック以外でベアラー認証を使用するデプロイでは必須です。 |
SSH_MCP_ENABLE_LEGACY_SSE | false | 従来の SSE 互換性を有効にします。 |
SSH_MCP_HTTP_MAX_REQUEST_BODY_BYTES | 1048576 | HTTP リクエストボディの最大サイズ。 |
SSH_MCP_HTTP_MAX_SESSIONS | 20 | アクティブな Streamable HTTP MCP セッションの最大数。まず期限切れのセッションをクリーンアップします。容量がまだ上限に達している場合は、放置されたクライアントによって 502 エラーが継続しないよう、最も長くアイドル状態にあるセッションを削除します。ChatGPT/Cloudflare の本番デプロイでは 100 を使用してください。 |
SSH_MCP_HTTP_SESSION_IDLE_TTL_MS | 900000 | HTTP MCP セッションのアイドルタイムアウト(ミリ秒)。クライアントが DELETE せずにセッションを放置する可能性がある ChatGPT/Cloudflare の本番デプロイでは 300000 を使用してください。 |
SSH_MCP_HTTP_PUBLIC_URL | unset | 保護されたリソースのメタデータに使用する、安定した公開 HTTPS MCP URL。 |
SSH_MCP_HTTP_TRUST_PROXY | false | リバースプロキシの転送ヘッダーを信頼します。 |
SSH_MCP_TOOL_PROFILE | full | 有効なツール公開プロファイル。 |
SSH_MCP_CONNECTOR_PROFILE | full | SSH_MCP_TOOL_PROFILE のエイリアス。 |
SSH_MCP_CONNECTOR_CREDENTIAL_PROVIDER | none | 認証情報プロバイダー:none、agent、または command。 |
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND | unset | プロバイダーが command の場合に使用する外部認証情報コマンド。 |
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND_ARGS | empty | 外部認証情報コマンドに渡す引数。 |
SSH_MCP_CONNECTOR_CREDENTIAL_COMMAND_TIMEOUT_MS | 5000 | 認証情報コマンドのタイムアウト(ミリ秒)。 |
SSH_MCP_CONNECTOR_DEFAULT_USERNAME | unset | コネクターブローカーのフローで使用するデフォルトのユーザー名。 |
SSH_MCP_HTTP_AUTH_MODE | bearer | HTTP 認証モード:bearer または oauth。 |
SSH_MCP_OAUTH_ISSUER | unset | 想定される OAuth 発行者。 |
SSH_MCP_OAUTH_AUDIENCE | unset | 想定される OAuth オーディエンス。 |
SSH_MCP_OAUTH_JWKS_URL | unset | OAuth JWKS URL。 |
SSH_MCP_OAUTH_RESOURCE | unset | OAuth 保護リソース識別子。 |
SSH_MCP_OAUTH_REQUIRED_SCOPES | ssh-mcp-pro.read | 必須の OAuth スコープ。 |
SSH_MCP_OAUTH_ALLOWED_ALGORITHMS | unset | JWT アルゴリズムの任意のカンマ区切り許可リスト。例:RS256,ES256。未設定の場合は、組み込み OAuth 検証機能のデフォルトが使用されます。 |
SSH_MCP_REMOTE_AGENT_MCP_PASSTHROUGH | unset | 1、true、yes、または on に設定すると、/mcp リクエストがリモートコントロールプレーンを迂回し、Streamable HTTP MCP ハンドラーに到達するようにします。コネクターのルーティング移行時にのみ使用してください。 |
パーサーは、SSH_MCP_* 以外の互換エイリアス PORT、KNOWN_HOSTS_PATH、STRICT_HOST_KEY_CHECKING も受け付けます。 |
ツールプロファイル
full は、登録されているすべてのツール、リソース、プロンプトを公開します。それ以外の各プロファイルでは、プロファイルごとに明示的な許可リストを使用します。chatgpt と claude は、現在 remote-safe と同じ基本コネクターツールを公開しており、クライアント固有の拡張セットは今後の追加に備えて空になっています。
| プロファイル | 公開されるツール | 公開されるリソース | 公開されるプロンプト |
|---|---|---|---|
full | SSH、プロセス、ファイルシステム、転送、確保、トンネル、コネクター、システムに関するすべてのツール。 | すべてのランタイムリソース。 | すべてのプロンプト。 |
remote-safe | connector_status、ssh_hosts_list、ssh_policy_explain、ssh_host_inspect、ssh_mutation_plan。 | ssh-mcp-pro://capabilities/support-matrix。 | inspect-host-capabilities、plan-mutation。 |
chatgpt | 基本のリモートコネクターツールと、空の ChatGPT 拡張セット。 | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 |
claude | 基本のリモートコネクターツールと、空の Claude 拡張セット。 | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 |
remote-readonly | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 |
remote-broker | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 | remote-safe と同じリモートコネクターのサブセット。 |
SSH_MCP_CHATGPT_EXTRA_TOOLS と SSH_MCP_CLAUDE_EXTRA_TOOLS を使用すると、ループバック限定の開発において各プロファイルを拡張できます。ループバック以外からの HTTP 起動では、解決済みのツールセット全体が標準の remote-safe 許可リストに照らして検証され、不明なツール、セッションツール、転送ツール、ファイルシステム変更ツール、プロセスツール、sudo ツール、サービス変更ツール、トンネルツールが拒否されます。起動エラーには、拒否されたツール名のみが表示されます。ローカルで拡張を追加しても、そのツールが公開コネクターでの利用を承認されたことにはなりません。
セキュリティの既定値
ssh-mcp-pro は、厳格な SSH ホストキー検証を有効にして起動し、root ログインを拒否し、ポリシーで許可されていない限り、raw sudo、破壊的なコマンド、ファイルシステム操作をブロックします。また、認証、オリジン、公開 HTTPS URL、厳格なホストキー検証、remote-safe ツールプロファイル、ホスト許可リストが設定されていない場合、ループバック以外からの HTTP 起動を拒否します。脆弱性の報告については SECURITY.md を、これらの既定値の設計根拠については SECURITY_DECISIONS.md を参照してください。
関連ドキュメント
- INSTALL.md では、クライアントのセットアップ全般とトラブルシューティングについて説明しています。
- API リファレンス は、公開されている TypeScript エントリーポイントから生成されています。
- CHANGELOG.md には、Keep a Changelog 形式でリリース履歴を記録しています。
- AGENTS.md では、エージェント向けの運用ガイダンスについて説明しています。
- examples/README.md には、ワークフローの例が含まれています。
- ARCHITECTURE.md では、主要なサブシステムと ADR について説明しています。
- REGISTRY_SUBMISSION.md では、MCP Registry への登録準備状況を記録しています。
- docs/tutorials/getting-started.md、 docs/how-to/、docs/reference/、 docs/explanation/ では、上記のドキュメントを タスク別(チュートリアル、ハウツー、リファレンス、解説)に整理しています。
- docs/troubleshooting.md では、よくある障害について説明しています。
プロジェクトの健全性とガバナンス
- GOVERNANCE.md には、現在の意思決定方法が記載されています。
- MAINTAINERS.md には、現在のメンテナーが記載されています。
- ROADMAP.md では、既知のプロセス上の課題と、その解消に向けた計画を追跡しています。
- CODE_OF_CONDUCT.md では、コミュニティにおける行動規範を定めています。
- docs/repo-maturity-report.md は、このリポジトリのオープンソースおよび OpenSSF の成熟度を証拠に基づいて監査したもので、まだ整備されていない項目も含まれています。
貢献
セットアップ、品質ゲート、コミットのルール、プルリクエストの要件については、CONTRIBUTING.md を参照してください。参加にあたっては、行動規範が適用されます。
ライセンス
ssh-mcp-pro は MIT License のもとで利用できます。
エージェントプラグインとランタイム構成
このリポジトリでは、ssh-mcp-pro の製品レベルのエージェントプラグイン、MCP ランタイム構成、製品固有のスキルを管理しています。中央の agent-tools リポジトリにこのプラグインを登録する予定ですが、マニフェストとワークフローの手順は、実際の MCP サーバーパッケージとの同期を保てるよう、このリポジトリに置いています。
| ファイル | 用途 |
|---|---|
.claude-plugin/plugin.json | Claude Code で有効な製品プラグインのマニフェストです。 |
.mcp.json | Claude Code のプロジェクトローカル MCP サーバー構成です。 |
.codex/config.example.toml | Codex CLI の MCP 構成例です。 |
.vscode/mcp.example.json | VS Code / GitHub Copilot ワークスペースの MCP 構成例です。 |
opencode.example.jsonc | OpenCode プロジェクトの MCP 構成例です。 |
.opencode/skills/ | OpenCode ネイティブのミラー化されたスキル定義です。 |
docs/agent-runtime-config.md | エージェントランタイムのセットアップと検証に関するメモです。 |
プラグインのパッケージングをローカルで検証します。
claude plugin validate .
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。