Command Executor MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

コマンド実行者 MCP サーバー

事前に承認されたコマンドを安全に実行するためのモデル コンテキスト プロトコル サーバー。

🎥 デモ

https://github.com/user-attachments/assets/ed763a12-b685-4e0b-b9a5-bc948a590f51

✨ 特徴

  • 事前承認されたコマンドリストによる安全なコマンド実行
  • 環境変数を通じて許可されるコマンドを設定可能
  • TypeScriptとMCP SDKで構築
  • シームレスな統合のためのstdio経由の通信
  • エラー処理とセキュリティ検証
  • リアルタイムコマンド出力ストリーミング

🚀 インストール

依存関係をインストールします:

npm install

サーバーを構築します。

npm run build

自動リビルドを使用した開発の場合:

npm run watch

⚙️ 構成

🔒 許可されたコマンド

デフォルトでは、次のコマンドが許可されます。

  • ギット
  • ls
  • mkdir
  • CD
  • npm
  • npx
  • パイソン

ALLOWED_COMMANDS環境変数を設定することで、許可されるコマンドをカスタマイズできます。

export ALLOWED_COMMANDS=git,ls,mkdir,python

🔌 クロード デスクトップ統合

Claude Desktop で使用するには、サーバー設定を追加します。

MacOSの場合:

~/Library/Application Support/Claude/claude_desktop_config.json

Windowsの場合:

%APPDATA%/Claude/claude_desktop_config.json

設定例:

{ "mcpServers": { "command-executor": { "command": "/path/to/command-executor/build/index.js" } } }

🛡️ セキュリティに関する考慮事項

コマンド実行サーバーは、いくつかのセキュリティ対策を実装しています。

  1. 事前承認済みコマンドリスト
    • 明示的に許可されたコマンドのみ実行できます
    • デフォルトのリストは制限的でセキュリティに重点を置いています
    • コマンドはプレフィックスによって検証され、インジェクションを防止します
  2. コマンド検証
    • コマンドプレフィックス検証によりコマンドインジェクションを防止
    • セキュリティ強化のためシェル実行なし
    • 環境変数は適切にサニタイズされている
  3. エラー処理
    • 不正なコマンドに対する包括的なエラー処理
    • デバッグのためにエラーメッセージをクリアする
    • 失敗したコマンドはサーバーをクラッシュさせません
  4. 環境分離
    • サーバーは独自の環境で実行されます
    • 環境変数を制御できる
    • システムアクセスの制限

💻 開発

📁 プロジェクト構造

command-executor/ ├─ src/ │ └─ index.ts # Main server implementation ├─ build/ │ └─ index.js # Compiled JavaScript ├─ assets/ │ └─ header.svg # Project header image └─ package.json # Project configuration

🐛 デバッグ

MCPサーバーはstdio経由で通信するため、デバッグが困難になる場合があります。MCP Inspectorの使用をお勧めします。

npm run inspector

インスペクターは、ブラウザでデバッグ ツールにアクセスするための URL を提供します。

🛠️ ツールAPI

サーバーは次の単一のツールを提供します:

実行コマンド

事前に承認されたコマンドを実行します。

パラメータ:

  • command (文字列、必須): 実行するコマンド

リクエスト例:

{ "name": "execute_command", "arguments": { "command": "git status" } }

応答例:

{ "content": [ { "type": "text", "text": "On branch main\nNothing to commit, working tree clean" } ] }

エラー応答:

{ "content": [ { "type": "text", "text": "Command execution failed: Command not allowed" } ], "isError": true }

❌ エラー処理

サーバーは、さまざまなシナリオに対して詳細なエラー メッセージを提供します。

  1. 不正なコマンド
    { "code": "InvalidParams", "message": "Command not allowed: [command]. Allowed commands: git, ls, mkdir, cd, npm, npx, python" }
  2. 実行失敗
    { "content": [ { "type": "text", "text": "Command execution failed: [error message]" } ], "isError": true }

🤝 貢献する

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. 変更をコミットする
  4. ブランチにプッシュする
  5. 新しいプルリクエストを作成する

📄 ライセンス

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

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

事前に承認されたコマンドの安全な実行を可能にし、AI アシスタントがユーザーのシステムと安全に対話できるようにするモデル コンテキスト プロトコル サーバー。

  1. 🎥 Demo
    1. ✨ Features
      1. 🚀 Installation
        1. ⚙️ Configuration
          1. 🔒 Allowed Commands
          2. 🔌 Claude Desktop Integration
        2. 🛡️ Security Considerations
          1. 💻 Development
            1. 📁 Project Structure
            2. 🐛 Debugging
          2. 🛠️ Tool API
            1. execute_command
          3. ❌ Error Handling
            1. 🤝 Contributing
              1. 📄 License
                ID: db23ll92j5