CLI MCP サーバー
包括的なセキュリティ機能を使用して制御されたコマンドライン操作を実行するための安全なモデル コンテキスト プロトコル (MCP) サーバー実装。
目次
概要
このMCPサーバーは、コマンドホワイトリスト、パス検証、実行制御などの堅牢なセキュリティ対策により、安全なコマンドライン実行を実現します。セキュリティを維持しながら、LLMアプリケーションへの制御されたCLIアクセスを提供するのに最適です。
特徴
- 🔒 厳格な検証による安全なコマンド実行
- ⚙️ 'all' オプションでコマンドとフラグのホワイトリストを設定可能
- 🛡️ パストラバーサルの防止と検証
- 🚫 シェルオペレータインジェクション保護
- ⏱️ 実行タイムアウトと長さの制限
- 📝 詳細なエラーレポート
- 🔄非同期操作のサポート
- 🎯 作業ディレクトリの制限と検証
構成
環境変数を使用してサーバーを構成します。
変数 | 説明 | デフォルト |
---|---|---|
ALLOWED_DIR | コマンド実行のベースディレクトリ(必須) | なし(必須) |
ALLOWED_COMMANDS | 許可されたコマンドのコンマ区切りリストまたは「すべて」 | ls,cat,pwd |
ALLOWED_FLAGS | 許可されるフラグのカンマ区切りリストまたは「すべて」 | -l,-a,--help |
MAX_COMMAND_LENGTH | 最大コマンド文字列長 | 1024 |
COMMAND_TIMEOUT | コマンド実行タイムアウト(秒) | 30 |
ALLOW_SHELL_OPERATORS | シェル演算子(&&、 |
注意: ALLOWED_COMMANDS
またはALLOWED_FLAGS
を 'all' に設定すると、それぞれ任意のコマンドまたはフラグが許可されます。
インストール
Smithery経由で Claude Desktop 用の CLI MCP サーバーを自動的にインストールするには:
利用可能なツール
実行コマンド
許可されたディレクトリ内でホワイトリストに登録された CLI コマンドを実行します。
入力スキーマ:
セキュリティに関する注意事項:
- シェル演算子 (&&、|、>、>>) はデフォルトではサポートされていませんが、
ALLOW_SHELL_OPERATORS=true
で有効にすることができます。 - ALLOWED_COMMANDS='all' でない限り、コマンドはホワイトリストに登録する必要があります
- ALLOWED_FLAGS='all' でない限り、フラグはホワイトリストに登録する必要があります
- すべてのパスはALLOWED_DIRの範囲内であることが検証されます
セキュリティルールを表示
現在のセキュリティ構成と制限を表示します。これには以下が含まれます。
- 作業ディレクトリ
- 許可されたコマンド
- 許可されたフラグ
- セキュリティ制限(最大コマンド長とタイムアウト)
Claude Desktopでの使用
~/Library/Application\ Support/Claude/claude_desktop_config.json
に追加します:
開発/非公開サーバーの構成
公開サーバーの構成
動作しない、または UI に表示されない場合は、
uv clean
を使用してキャッシュをクリアしてください。
セキュリティ機能
- ✅ 「すべて」オプションによるコマンドホワイトリストの適用
- ✅ 「すべて」オプションによるフラグ検証
- ✅ パストラバーサルの防止と正規化
- ✅ シェルオペレータのブロック(
ALLOW_SHELL_OPERATORS=true
によるオプトインサポート付き) - ✅ コマンドの長さ制限
- ✅ 実行タイムアウト
- ✅ 作業ディレクトリの制限
- ✅ シンボリックリンクの解決と検証
エラー処理
サーバーは、次の詳細なエラー メッセージを提供します。
- セキュリティ違反 (CommandSecurityError)
- コマンドタイムアウト (CommandTimeoutError)
- 無効なコマンド形式
- パスセキュリティ違反
- 実行失敗 (CommandExecutionError)
- 一般的なコマンドエラー (CommandError)
発達
前提条件
- Python 3.10以上
- MCPプロトコルライブラリ
建築と出版
配布用のパッケージを準備するには:
- 依存関係を同期し、ロックファイルを更新します。
- パッケージディストリビューションをビルドします。
これにより、
dist/
ディレクトリにソースとホイールのディストリビューションが作成されます。 - PyPI に公開:
デバッグ
MCPサーバーはstdio経由で実行されるため、デバッグが困難になる場合があります。最適なデバッグ環境を実現するには、 MCP Inspectorの使用を強くお勧めします。
次のコマンドを使用して、 npm
経由で MCP Inspector を起動できます。
起動すると、ブラウザでアクセスしてデバッグを開始できる URL がインスペクタに表示されます。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
詳細情報やサポートが必要な場合は、プロジェクト リポジトリで問題を報告してください。
local-only server
The server can only run on the client's local machine because it depends on local resources.
安全な実行とカスタマイズ可能なセキュリティポリシーを備えたコマンドラインインターフェース
Related MCP Servers
- AsecurityAlicenseAqualityMCP server allowing any and all command execution over CMDLast updated -242819JavaScriptMIT License
- AsecurityAlicenseAqualityA secure server for executing terminal commands within predefined paths, allowing safe interaction by Large Language Models with operating system environments.Last updated -11047JavaScriptMIT License
- AsecurityFlicenseAqualityA CLI command execution server that enables running shell commands with structured output, providing detailed execution results including stdout, stderr, exit code, and execution duration.Last updated -24554TypeScript
- AsecurityAlicenseAqualityA command-line interface server that provides unrestricted system access to Windows environments with SYSTEM-level privileges, allowing complete control over files, processes, and configuration settings.Last updated -4700TypeScriptMIT License