Super Windows CLI MCP Server について
Super Windows CLI MCP Serverは、MCP経由でWindowsのシェルやファイルシステムを操作したい利用者向けのサーバーです。PowerShell、CMD、Git Bashを設定できますが、SYSTEM権限で動作する設計のため重大なセキュリティリスクがあります。
主な機能
- 01PowerShell、CMD、Git Bashへのアクセス
- 02コマンド実行の設定
- 03ファイルシステムアクセスの設定
- 04SSHコマンド実行オプション
- 05NSSMによるサービス導入と復旧
活用シーン
- 01Windowsマシンでのシェルコマンド実行
- 02設定したパス内のファイルアクセス
- 03設定済みSSHホストでのコマンド実行
MCP 対応
MCPクライアントにWindowsのシェル、ファイルシステム、オプションのSSHコマンド実行機能を公開します。コマンドや許可パスを設定でき、READMEはSYSTEM権限で動作する可能性について警告しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Super Windows CLI MCP サーバー
コマンドラインインターフェイス(MCP)を介して、Windows 環境への無制限のシステムアクセスを提供する、Windows CLI MCP サーバーの強化版フォークです。
ベース: SimonB97 による win-cli-mcp-server。
⚠️ 重大なセキュリティ警告 ⚠️
このサーバーは、Windows 上でSYSTEM レベルの権限で実行されるよう設計されています。これにより、すべてのファイル、プロセス、構成設定を含む、オペレーティングシステム全体への完全かつ無制限のアクセスが可能になります。
- SYSTEM レベルのアクセス権を付与することの影響を十分に理解していない場合は、このサーバーをインストールまたは実行しないでください。
- ネットワークアクセスを完全に管理できる、高度に信頼できる環境でのみこのサーバーを使用してください。
- ネットワークセキュリティは最優先です: アプリケーションレベルの制限は設計上最小限であるため、ファイアウォール、ネットワークのセグメンテーション、厳格なアクセス制御リスト(ACL)を最大限に活用し、このサーバーを実行するマシンを保護してください。
- 構成を慎重に確認してください:
config.jsonのallowedPaths、blockedCommands、その他のセキュリティ設定に特に注意してください。設定を誤ると、システムが簡単に外部へ露出するおそれがあります。
このソフトウェアは責任を持って、自己責任で使用してください。メンテナーは、誤用や使用に起因するセキュリティ侵害について一切の責任を負いません。
機能
- Windows シェル環境(PowerShell、CMD、Git Bash。構成可能)への完全なアクセス。
- コマンドの無制限実行(
config.jsonで構成可能)。 - ファイルシステムへの完全なアクセス(
config.jsonで構成可能)。 - NSSM を使用した SYSTEM レベルのサービスインストールによる、永続化と自動復旧。
- NSSM による自動サービス復旧機能。
- ネットワークバインドの制御(想定されていますが、主にネットワーク/ファイアウォールレベルで管理されます)。
- プライバシー強化のため、PowerShell のテレメトリを無効化。
- パフォーマンス向上のため、シェルプロセスを再利用。
- 長時間実行される処理のためのタイムアウト延長(構成可能)。
前提条件
開始する前に、以下がインストールされていることを確認してください。
- Node.js: バージョン 18.0.0 以降。nodejs.org からダウンロードしてください。(npm が含まれています)。
- NSSM(Non-Sucking Service Manager): 信頼性の高いサービスインストールに必要です。最新バージョンを nssm.cc からダウンロードしてください。
インストール(NSSM を使用する方法 - 推奨)
この方法では、SYSTEM 権限で実行され、自動的に起動する永続的な Windows サービスとしてサーバーをインストールします。
-
クローンまたはダウンロード:
- このリポジトリをクローンします:
git clone <repository-url> - または、ソースコードの
.zipをダウンロードし、適切な場所(例:C:\Servers\SuperWinCLIServer)に展開します。ユーザープロファイルフォルダーは避けてください。
- このリポジトリをクローンします:
-
NSSM を配置:
- nssm.cc から NSSM をダウンロードします。
- zip ファイルを展開します。
- 適切なアーキテクチャのフォルダー(
win32またはwin64)にあるnssm.exeファイルを、このプロジェクトのルートディレクトリ(install-service.ps1と同じフォルダー)にコピーします。
-
依存関係のインストールとビルド:
- プロジェクトのルートディレクトリでターミナル(PowerShell または CMD)を開きます。
- 次を実行します:
npm install - このコマンドは必要な Node.js パッケージをインストールし、TypeScript コードを
distフォルダーにコンパイルするためにnpm run buildも自動的に実行します。
-
config.jsonを設定:- コピー:
config.sample.jsonのコピーを作成し、プロジェクトのルートディレクトリでconfig.jsonという名前にします。 - 編集:
config.jsonを開き、設定を慎重に確認して変更します:security.allowedPaths:重要! サンプルのパスを、サーバーがアクセスする必要のある実際のディレクトリに変更します。セキュリティのため、できる限り具体的に指定してください。不明な場合は、まずプロジェクトディレクトリ自体を指定してください(例:"C:\\Servers\\SuperWinCLIServer"- バックスラッシュを二重にする\\ことを忘れないでください)。サービスは SYSTEM として実行されるため、パスはそのアカウントで有効である必要があります。security.blockedCommands/blockedArguments:デフォルトのリストを確認します。セキュリティポリシーに基づいて、コマンドや引数を追加または削除してください。shells:シェル(PowerShell、CMD、Git Bash)を有効または無効にし、commandのパス(特に Git Bash)を確認します。ssh:SSH 実行機能を使用する場合は設定します(デフォルトでは無効です)。
config.jsonファイルを保存します。
- コピー:
-
インストールスクリプトを実行:
- 管理者として PowerShell を開きます。
- プロジェクトのルートディレクトリに移動します(
cd C:\Servers\SuperWinCLIServer)。 - インストールスクリプトを実行します:
.\install-service.ps1 - このスクリプトは NSSM を使用して、
node.exe dist/index.jsをLocalSystemとして実行するMCPServerサービスをインストールおよび設定し、自動的に起動するようにします。
-
サービスの状態を確認:
- 同じ管理者用 PowerShell ウィンドウで、次を実行します:
Get-Service MCPServer - 状態が
Runningであることを確認します。Stoppedの場合は、NSSM のログまたは Windows イベントビューアー(アプリケーションログとシステムログ)でエラーを確認してください。
- 同じ管理者用 PowerShell ウィンドウで、次を実行します:
設定(config.json)の詳細
security:maxCommandLength:コマンド文字列に許可される最大文字数です。blockedCommands:ブロックするコマンド名(拡張子なし)の配列です(大文字と小文字は区別されません)。blockedArguments:ブロックする完全一致の引数の配列です(大文字と小文字は区別されません)。allowedPaths:重要な設定です。 絶対パスの配列です。restrictWorkingDirectoryが true の場合、作業ディレクトリがこれらのパスのいずれかで始まる場合にのみ、コマンドを実行できます。パスは正規化後、大文字と小文字を区別せずに比較されます(例:"C:\\Tools\\Scripts")。バックスラッシュは二重にしてください。restrictWorkingDirectory:真偽値です。true の場合、作業ディレクトリに対してallowedPathsのチェックを適用します。true のままにしておくことを強く推奨します。logCommands:真偽値です。true の場合、実行したコマンドとその出力(切り詰めたもの)をメモリ内に保存します(maxHistorySizeまで)。maxHistorySize:メモリ内の履歴に保持するコマンドの最大数です。commandTimeout:実行中のコマンドが自動的に終了されるまでの秒数です。enableInjectionProtection:真偽値です。true の場合、コマンド内のシェル演算子(&、|、;など、シェルごとに定義)をブロックしようとします。
shells:利用可能なローカルシェル(powershell、cmd、gitbash)を設定します。enabled:真偽値です。このシェルの使用を許可します。command:シェル実行ファイルへのパスです。args:ユーザーのコマンドの前にシェルへ渡すデフォルト引数の配列です。blockedOperators:このシェルのコマンド内でブロックする文字列または文字の配列です(enableInjectionProtectionが true の場合に使用されます)。
ssh:SSH 経由でのリモートコマンド実行を設定します。enabled:真偽値です。ssh_executeおよびssh_disconnectツールを有効にします。connections:名前付き接続設定(host、port、username、password/privateKeyPath)を含むオブジェクトです。
- 設定のマージ:
config.jsonを読み込む際、securityまたはshellsセクションが含まれている場合、そのセクション全体で該当するデフォルト設定が置き換えられます。securityまたはshells内の個々のフィールドはマージされません。sshセクションは、より細かい単位でマージされます。これらのセクションをカスタマイズする場合、必要なフィールドをすべてconfig.jsonに含めてください。
サービス管理(NSSM)
install-service.ps1 でインストールした後、プロジェクトディレクトリで管理者権限の PowerShell/CMDから、標準の Windows ツールまたは NSSM コマンドを使用してサービスを管理できます。
- 開始:
Start-Service MCPServerまたは.\nssm.exe start MCPServer - 停止:
Stop-Service MCPServerまたは.\nssm.exe stop MCPServer - 再起動:
Restart-Service MCPServerまたは.\nssm.exe restart MCPServer - 状態:
Get-Service MCPServerまたは.\nssm.exe status MCPServer - 設定の編集(詳細):
.\nssm.exe edit MCPServer(NSSM の GUI エディターを開きます) - 設定の表示:
.\nssm.exe dump MCPServer
アンインストール(NSSM)
- 管理者として PowerShell を開きます。
- プロジェクトのルートディレクトリに移動します。
- アンインストールスクリプトを実行します:
.\uninstall-service.ps1 - これにより NSSM を使用して
MCPServerサービスが停止され、削除されます。
代替実行方法(手動/デバッグ)
テストやデバッグのために、サービスとしてインストールせずにサーバーを直接実行できます。
npm installを実行済みであることを確認します。config.jsonが存在し、設定済みであることを確認します。- プロジェクトのルートで通常のターミナル(PowerShell/CMD)を開きます。
- 次を実行します:
npm run start - サーバーはフォアグラウンドで実行されます。停止するには
Ctrl + Cを押します。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。