Windows CLI MCP サーバー
Windowsシステム上で安全なコマンドラインインタラクションを実現するMCPサーバー。PowerShell、CMD、Git Bashシェル、そしてSSH経由のリモートシステムへの制御されたアクセスを可能にします。MCPクライアント( Claude Desktopなど)が、 Open Interpreterと同様にシステム上で操作を実行できるようになります。
[!重要] このMCPサーバーは、SSH経由でシステムのコマンドラインインターフェースとリモートシステムへの直接アクセスを提供します。有効にすると、ファイル、環境変数、コマンド実行機能、およびリモートサーバー管理へのアクセスが許可されます。
許可されたパスとSSH接続を確認して制限する
ディレクトリ制限を有効にする
コマンドブロックを構成する
セキュリティへの影響を考慮する
詳細については、構成を参照してください。
特徴
マルチシェルのサポート: PowerShell、コマンドプロンプト (CMD)、Git Bash でコマンドを実行します。
SSHサポート: SSH経由でリモートシステム上でコマンドを実行する
リソースの公開: SSH 接続、現在のディレクトリ、および構成を MCP リソースとして表示します。
セキュリティ管理:
コマンドと SSH コマンドのブロック (フルパス、大文字と小文字の区別)
作業ディレクトリの検証
最大コマンド長制限
コマンドのログ記録と履歴の追跡
スマートな引数検証
設定可能:
カスタムセキュリティルール
シェル固有の設定
SSH接続プロファイル
パス制限
ブロックされたコマンドリスト
サーバーが MCP クライアントに提供するツールとリソースの詳細については、 APIセクションを参照してください。
注: サーバーは、設定されたディレクトリ内、許可されたコマンド、および設定された SSH 接続での操作のみを許可します。
Related MCP server: mcp-shell-server
Claude Desktopでの使用
これをclaude_desktop_config.jsonに追加します:
特定の設定ファイルで使用する場合は、 --configフラグを追加します。
設定後、次のことが可能になります。
利用可能なツールを使用して直接コマンドを実行する
リソースセクションで構成されたSSH接続とサーバー構成を表示します。
提供されたツールを使用してSSH接続を管理する
構成
サーバーはJSON構成ファイルを使用して動作をカスタマイズします。セキュリティ制御、シェル構成、SSH接続の設定を指定できます。
デフォルトの設定ファイルを作成するには、次のいずれかを実行します。
a) config.json.exampleをconfig.jsonにコピーするか、
**b)**実行:
次に、 「Claude Desktop での使用」セクションで説明されているように、
--configフラグを設定して構成ファイルを指定します。
構成場所
サーバーは、次の場所 (順番に) で構成を検索します。
--configフラグで指定されたパス現在のディレクトリの./config.json
ユーザーのホームディレクトリ内の ~/.win-cli-mcp/config.json
設定ファイルが見つからない場合、サーバーはデフォルトの(制限された)設定を使用します。
デフォルト設定
注:デフォルト設定は制限を厳しくし、セキュリティを強化するように設計されています。各設定の詳細については、「構成設定」セクションをご覧ください。
構成設定
設定ファイルは、 security 、 shells 、 ssh 3 つの主要なセクションに分かれています。
セキュリティ設定
シェルの構成
SSH設定
API
ツール
実行コマンド
指定されたシェルでコマンドを実行する
入力:
shell(文字列): 使用するシェル ("powershell", "cmd", または "gitbash")command(文字列): 実行するコマンドworkingDir(オプションの文字列): 作業ディレクトリ
コマンド出力をテキストとして返すか、実行が失敗した場合はエラーメッセージを返します。
コマンド履歴を取得する
実行されたコマンドの履歴を取得する
入力:
limit(オプションの数値)タイムスタンプ付きのコマンド履歴を出力とともに返します
ssh_execute
SSH経由でリモートシステムでコマンドを実行する
入力:
connectionId(文字列): 使用するSSH接続のIDcommand(文字列): 実行するコマンド
コマンド出力をテキストとして返すか、実行が失敗した場合はエラーメッセージを返します。
ssh_切断
SSHサーバーから切断する
入力:
connectionId(文字列): 切断するSSH接続のID
確認メッセージを返す
SSH接続を作成する
新しいSSH接続を作成する
入力:
connectionId(文字列): 新しいSSH接続のIDconnectionConfig(オブジェクト): ホスト、ポート、ユーザー名、パスワードまたは privateKeyPath を含む接続構成の詳細
確認メッセージを返す
read_ssh_connections
設定されたすべてのSSH接続を読み取る
設定からすべてのSSH接続のリストを返します
アップデート_ssh_接続
既存のSSH接続を更新する
入力:
connectionId(文字列): 更新するSSH接続のIDconnectionConfig(オブジェクト): 新しい接続構成の詳細
確認メッセージを返します
SSH接続の削除
SSH接続を削除する
入力:
connectionId(文字列): 削除するSSH接続のID
確認メッセージを返す
現在のディレクトリを取得する
サーバーの現在の作業ディレクトリを取得する
現在の作業ディレクトリのパスを返します
リソース
SSH接続
URI 形式:
ssh://{connectionId}機密情報がマスクされた接続の詳細が含まれています
構成されたSSH接続ごとに1つのリソース
例:
ssh://raspberry-pi「raspberry-pi」接続の設定を表示します
SSH設定
URI:
ssh://config全体的な SSH 構成とすべての接続 (パスワードはマスクされています) が含まれます
defaultTimeout、maxConcurrentSessions、接続リストなどの設定を表示します
現在のディレクトリ
URI:
cli://currentdirCLIサーバーの現在の作業ディレクトリが含まれます
デフォルトでコマンドが実行されるパスを表示します
CLI設定
URI:
cli://configCLI サーバー構成が含まれます (機密データは除く)
セキュリティ設定、シェル構成、SSH設定を表示します
セキュリティに関する考慮事項
組み込みのセキュリティ機能(常時有効)
次のセキュリティ機能はサーバーにハードコードされており、無効にすることはできません。
大文字と小文字を区別しないコマンド ブロッキング: すべてのコマンド ブロッキングは大文字と小文字を区別しません (例: 「DEL.EXE」、「del.cmd」などは、blockedCommands に「del」が含まれている場合すべてブロックされます)
スマート パス解析: サーバーは完全なコマンド パスを解析してバイパスの試みを防止します (「rm」がブロックされている場合は「C:\Windows\System32\rm.exe」もブロックします)
コマンド解析インテリジェンス: 誤検知を回避します (例: 「warm_dir」は「rm」が blockedCommands にあるからといってブロックされるわけではありません)
入力検証: すべてのユーザー入力は実行前に検証されます
シェルプロセス管理: プロセスは実行後またはタイムアウト後に適切に終了されます
機密データのマスキング: リソース内のパスワードは自動的にマスクされます (******** に置き換えられます)
設定可能なセキュリティ機能(デフォルトで有効)
これらのセキュリティ機能は、config.json ファイルを通じて構成できます。
コマンドブロッキング:
blockedCommands配列で指定されたコマンドがブロックされます (デフォルトでは、rm、del、format などの危険なコマンドが含まれます)引数のブロック:
blockedArguments配列で指定された引数はブロックされます (デフォルトでは潜在的に危険なフラグが含まれます)コマンドインジェクション保護: コマンドチェーンを防止します (
enableInjectionProtection: trueによりデフォルトで有効)作業ディレクトリの制限: コマンドの実行を指定されたディレクトリに制限します (
restrictWorkingDirectory: trueによりデフォルトで有効)コマンドの長さ制限: コマンドの最大長を制限します (デフォルト: 2000 文字)
コマンドタイムアウト: 実行時間が長すぎるコマンドを終了します (デフォルト: 30 秒)
コマンドログ: コマンド履歴を記録します (
logCommands: trueによりデフォルトで有効)
重要なセキュリティ警告
これらは機能ではありませんが、知っておくべき重要なセキュリティ上の考慮事項です。
環境アクセス: コマンドは環境変数にアクセスする可能性があり、そこには機密情報が含まれている可能性があります。
ファイルシステムアクセス: コマンドは許可されたパス内のファイルの読み取り/書き込みが可能です。機密データへのアクセスを防ぐため、
allowedPathsを慎重に構成してください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。