Super Windows CLI MCP Server

スーパー Windows CLI MCP サーバー

コマンドライン インターフェイス (MCP) を介して Windows 環境への無制限のシステム アクセスを提供する Windows CLI MCP サーバーの拡張フォークです。

SimonB97 によるwin-cli-mcp-server をベースにしています


⚠️重大なセキュリティ警告⚠️

このサーバーは、Windows上でSYSTEMレベルの権限で実行されるように設計されています。これにより、すべてのファイル、プロセス、構成設定を含むオペレーティングシステム全体への完全かつ無制限のアクセスが許可されます。

  • システム レベルのアクセスを許可することの影響を完全に理解していない限り、このサーバーをインストールまたは実行しないでください
  • このサーバーは、ネットワーク アクセスを完全に制御できる信頼性の高い環境のみ使用してください。
  • **ネットワーク セキュリティが最も重要です:**アプリケーション レベルの制限は設計上最小限に抑えられているため、このサーバーを実行しているマシンを保護するには、ファイアウォール、ネットワーク セグメンテーション、および厳格なアクセス制御リスト (ACL) に大きく依存します。
  • 設定をよく確認してください: config.json内のallowedPathsblockedCommands 、その他のセキュリティ設定に特に注意してください。設定ミスがあると、システムが簡単に危険にさらされる可能性があります。

このソフトウェアは自己責任でご使用ください。メンテナーは、本ソフトウェアの使用に起因する誤用やセキュリティ侵害について一切の責任を負いません。


特徴

  • Windows シェル環境への完全なアクセス (PowerShell、CMD、Git Bash - 構成可能)。
  • 制限のないコマンド実行 ( config.jsonで構成可能)。
  • 完全なファイル システム アクセス ( config.json経由で構成可能)。
  • 永続性と自動回復のために NSSM を介したシステム レベルのサービスのインストール。
  • NSSM によって提供される自動サービス回復機能。
  • ネットワーク バインディング コントロール (意図されていますが、主にネットワーク/ファイアウォール レベルで管理されます)。
  • プライバシー強化のため PowerShell テレメトリを無効にしました。
  • パフォーマンス向上のためのプロセスの再利用 (シェルの場合)。
  • 長時間実行される操作のタイムアウトを延長します (構成可能)。

前提条件

始める前に、以下がインストールされていることを確認してください。

  1. Node.js **:**バージョン18.0.0以降。nodejs.orgからダウンロードしてください。(npmが含まれています)。
  2. **NSSM(Non-Sucking Service Manager):**信頼性の高いサービスのインストールに必要です。最新バージョンはnssm.ccからダウンロードしてください。

インストール(NSSM の使用 - 推奨)

この方法では、サーバーは SYSTEM 権限で実行され、自動的に起動する永続的な Windows サービスとしてインストールされます。

  1. クローンまたはダウンロード:
    • このリポジトリをクローンします: git clone <repository-url>
    • または、ソースコードの.zipファイルをダウンロードし、適切な場所(例: C:\Servers\SuperWinCLIServer )に解凍してください。ユーザープロファイルフォルダは避けてください。
  2. NSSMを配置する:
    • nssm.ccから NSSM をダウンロードします。
    • zip ファイルを解凍します。
    • 適切なアーキテクチャ フォルダー ( win32またはwin64 ) からnssm.exeファイルをこのプロジェクトのルート ディレクトリ( install-service.ps1と同じフォルダー) にコピーします。
  3. 依存関係のインストールとビルド:
    • プロジェクトのルート ディレクトリでターミナル (PowerShell または CMD) を開きます。
    • 実行: npm install
    • このコマンドは、必要な Node.js パッケージをインストールし、 npm run buildを自動的に実行して、TypeScript コードをdistフォルダーにコンパイルします。
  4. 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ファイルを保存します
  5. インストール スクリプトを実行します:
    • PowerShell を管理者として開きます。
    • プロジェクトのルート ディレクトリ ( cd C:\Servers\SuperWinCLIServer ) に移動します。
    • インストール スクリプトを実行します: .\install-service.ps1
    • このスクリプトは NSSM を使用してMCPServerサービスをインストールおよび構成し、 node.exe dist/index.jsLocalSystemとして実行して自動的に起動します。
  6. サービスステータスの確認:
    • 同じ管理PowerShellウィンドウで、 Get-Service MCPServer実行します。
    • ステータスはRunningになっているはずです。 Stoppedいる場合は、NSSMログまたはWindowsイベントビューアー(アプリケーションログとシステムログ)でエラーを確認してください。

設定( config.json )の詳細

  • security
    • maxCommandLength : コマンド文字列で許可される最大文字数。
    • blockedCommands : ブロックするコマンド名 (拡張子なし) の配列 (大文字と小文字は区別されません)。
    • blockedArguments : ブロックする正確な引数の配列 (大文字と小文字は区別されません)。
    • allowedPaths :**重要な設定です。**絶対パスの配列です。restrictWorkingDirectory restrictWorkingDirectory true の場合、コマンドは作業ディレクトリがこれらのパスのいずれかで始まる場合にのみ実行されます。パスは正規化後、大文字と小文字を区別せずに比較されます。二重のバックスラッシュを使用してください(例: "C:\\Tools\\Scripts" )。
    • restrictWorkingDirectory : ブール値。true の場合、作業ディレクトリに対してallowedPathsチェックを強制します。true 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 : 名前付き接続構成 (ホスト、ポート、ユーザー名、パスワード/秘密キーパス) を含むオブジェクト。
  • 設定のマージ: config.jsonが読み込まれる際、 securityまたはshellsセクションが含まれている場合、そのセクション全体securityそのセクションのデフォルト設定を置き換えます。security またはshells内の個々のフィールドはマージされませ。ssh セクションはより細かくマージされます。 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)

  1. PowerShell を管理者として開きます。
  2. プロジェクトのルート ディレクトリに移動します。
  3. アンインストール スクリプトを実行します: .\uninstall-service.ps1
  4. これは NSSM を使用してMCPServerサービスを停止および削除します。

代替実行(手動/デバッグ)

テストやデバッグの目的で、サーバーをサービスとしてインストールせずに直接実行することができます。

  1. npm installが実行されていることを確認してください。
  2. config.jsonが存在し、構成されていることを確認します。
  3. プロジェクト ルートで通常のターミナル (PowerShell/CMD) を開きます。
  4. 実行: npm run start
  5. サーバーはフォアグラウンドで実行されます。停止するにはCtrl + Cを押してください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
-
license - not tested
-
quality - not tested

SYSTEM レベルの権限で Windows 環境への無制限のシステム アクセスを提供し、ファイル、プロセス、構成設定を完全に制御できるコマンド ライン インターフェイス サーバーです。

  1. ⚠️ CRITICAL SECURITY WARNING ⚠️
    1. Features
      1. Prerequisites
        1. Installation (Using NSSM - Recommended)
          1. Configuration (config.json) Details
            1. Service Management (NSSM)
              1. Uninstallation (NSSM)
                1. Alternative Execution (Manual/Debug)
                  1. License
                    ID: w1n3t3gdec