local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Allows execution of whitelisted shell commands with comprehensive security features including command and flag whitelisting, path validation, and protection against injection attacks.
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プロトコルライブラリ
建築と出版
配布用のパッケージを準備するには:
- 依存関係を同期し、ロックファイルを更新します。Copy
- パッケージディストリビューションをビルドします。Copy
これにより、
dist/
ディレクトリにソースとホイールのディストリビューションが作成されます。 - PyPI に公開:Copy
デバッグ
MCPサーバーはstdio経由で実行されるため、デバッグが困難になる場合があります。最適なデバッグ環境を実現するには、 MCP Inspectorの使用を強くお勧めします。
次のコマンドを使用して、 npm
経由で MCP Inspector を起動できます。
起動すると、ブラウザでアクセスしてデバッグを開始できる URL がインスペクタに表示されます。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
詳細情報やサポートが必要な場合は、プロジェクト リポジトリで問題を報告してください。
You must be authenticated.
安全な実行とカスタマイズ可能なセキュリティポリシーを備えたコマンドラインインターフェース