Command-Line MCP Server

by andresthor
Verified

local-only server

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

Integrations

  • Supports .env file configuration for environment-specific settings of the MCP server

コマンドライン MCP サーバー

AI アシスタントが制御されたディレクトリ アクセスとコマンド権限を使用してターミナル コマンドを実行できるようにする、安全なモデル制御プロトコル (MCP) サーバー。

概要

コマンドラインMCPは、AIアシスタントと端末の間にセキュリティレイヤーを提供します。二重のセキュリティモデルを実装しています。

  1. コマンド権限: コマンドは、読み取り(安全)、書き込み(データの変更)、システム(システム状態に影響)に分類され、承認要件が異なります。
  2. ディレクトリ権限: コマンドは、明示的にホワイトリストに登録されたディレクトリまたはセッション中に承認されたディレクトリにのみアクセスできます。

AIアシスタントは標準化されたMCPツールを使用してこのサーバーと連携し、機密ファイルへのアクセスや危険な操作を防止しながら、安全なターミナルコマンド実行を可能にします。セキュリティレベルは、ニーズに応じて、非常に制限の厳しいものからより緩やかなものまで設定できます。

主な特徴

安全ユーザビリティ統合
ディレクトリのホワイトリストコマンドの分類(読み取り/書き込み/システム)クロードデスクトップ互換性
コマンドフィルタリング永続的なセッション権限標準MCPプロトコル
パターンマッチングコマンド連鎖(パイプなど)自動承認オプション
危険なコマンドブロッキング直感的な承認ワークフロー複数の設定方法

サポートされているコマンド(すぐに使用可能)

読み取りコマンド

  • lspwdcatlessheadtailgrepfindwhichdudffilesortなど。

書き込みコマンド

  • cpmvrmmkdirrmdirtouchchmodchownなど。

システムコマンド

  • pstophtopwhonetstatifconfigpingなど。

セキュリティアーキテクチャ

このシステムは多層セキュリティアプローチを実装しています。

┌───────────────────────────────────────────────────────────────┐ │ COMMAND-LINE MCP SERVER │ ├──────────────────┬────────────────────────┬───────────────────┤ │ COMMAND SECURITY │ DIRECTORY SECURITY │ SESSION SECURITY │ ├──────────────────┼────────────────────────┼───────────────────┤ │ ✓ Read commands │ ✓ Directory whitelist │ ✓ Session IDs │ │ ✓ Write commands │ ✓ Runtime approvals │ ✓ Persistent │ │ ✓ System commands│ ✓ Path validation │ permissions │ │ ✓ Blocked list │ ✓ Home dir expansion │ ✓ Auto timeouts │ │ ✓ Pattern filters│ ✓ Subdirectory check │ ✓ Desktop mode │ └──────────────────┴────────────────────────┴───────────────────┘

すべてのセキュリティ機能は、脅威モデルと利便性の要件に基づいて、制限付きから許可付きまで構成できます。

クイックスタート

# Install git clone https://github.com/yourusername/cmd-line-mcp.git cd cmd-line-mcp python -m venv venv source venv/bin/activate pip install -e . cp config.json.example config.json # Run cmd-line-mcp # With default config cmd-line-mcp --config config.json # With specific config

設定オプション

サーバーは、優先順位に従って 4 つの構成方法をサポートしています。

  1. 組み込みのデフォルト構成(default_config.json)
  2. JSON 構成ファイル(カスタマイズに推奨)
    cmd-line-mcp --config config.json
  3. 環境変数(特定のオーバーライド用)
    export CMD_LINE_MCP_SECURITY_WHITELISTED_DIRECTORIES="~,/tmp"
  4. .env ファイル(環境固有の設定用)
    cmd-line-mcp --config config.json --env .env

デフォルト設定はdefault_config.jsonに保存されており、パッケージに含まれています。このファイルをコピーして、独自のカスタム設定を作成できます。

コア構成設定

{ "security": { "whitelisted_directories": ["/home", "/tmp", "~"], "auto_approve_directories_in_desktop_mode": false, "require_session_id": false, "allow_command_separators": true }, "commands": { "read": ["ls", "cat", "grep"], "write": ["touch", "mkdir", "rm"], "system": ["ps", "ping"] } }

環境変数の形式

環境変数では予測可能な命名パターンが使用されます。

CMD_LINE_MCP_<SECTION>_<SETTING>

例:

# Security settings export CMD_LINE_MCP_SECURITY_WHITELISTED_DIRECTORIES="/projects,/var/data" export CMD_LINE_MCP_SECURITY_AUTO_APPROVE_DIRECTORIES_IN_DESKTOP_MODE=true # Command additions (these merge with defaults) export CMD_LINE_MCP_COMMANDS_READ="awk,jq,wc"

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

設定

  1. デスクトップ版Claudeをインストールする
  2. ~/Library/Application Support/Claude/claude_desktop_config.jsonで設定します:
{ "mcpServers": { "cmd-line": { "command": "/path/to/venv/bin/cmd-line-mcp", "args": ["--config", "/path/to/config.json"], "env": { "CMD_LINE_MCP_SECURITY_REQUIRE_SESSION_ID": "false", "CMD_LINE_MCP_SECURITY_AUTO_APPROVE_DIRECTORIES_IN_DESKTOP_MODE": "true" } } } }

推奨されるクロードデスクトップ設定

最適なエクスペリエンスを得るには、以下を設定してください。

  • require_session_id: false - 承認ループを防ぐために必須
  • auto_approve_directories_in_desktop_mode: true - アクセスを容易にするためのオプション
  • 一般的なディレクトリをホワイトリストに含める

設定後、Claude for Desktop を再起動します。

AIアシスタントツール

サーバーは、AI アシスタント用に次の MCP ツールを提供します。

道具目的承認が必要
execute_command任意のコマンドタイプを実行するはい、書き込み/システムコマンドの場合
execute_read_command読み取り専用コマンドを実行するディレクトリ承認のみ
approve_directoryディレクトリへのアクセスを許可するN/A - 承認ツールです
approve_command_typeコマンドカテゴリの権限を付与するN/A - 承認ツールです
list_directories承認されたディレクトリを表示いいえ
list_available_commandsコマンドカテゴリを表示いいえ
get_command_helpコマンドの使用ガイドを取得するいいえ
get_configuration現在の設定を表示いいえ

ツールの例

ディレクトリ管理

# Check available directories dirs = await list_directories(session_id="session123") whitelisted = dirs["whitelisted_directories"] approved = dirs["session_approved_directories"] # Request permission for a directory if "/projects/my-data" not in whitelisted and "/projects/my-data" not in approved: result = await approve_directory( directory="/projects/my-data", session_id="session123" )

コマンド実行

# Read commands (read permissions enforced) result = await execute_read_command("ls -la ~/Documents") # Any command type (may require command type approval) result = await execute_command( command="mkdir -p ~/Projects/new-folder", session_id="session123" )

構成を取得

# Check current settings config = await get_configuration() whitelist = config["directory_whitelisting"]["whitelisted_directories"]

ディレクトリセキュリティシステム

サーバーはコマンドの実行を特定のディレクトリに制限し、機密ファイルへのアクセスを防止します。

ディレクトリセキュリティモード

システムは次の 3 つのセキュリティ モードをサポートしています。

モード説明最適な用途構成
厳しいホワイトリストに登録されたディレクトリのみ許可最大限のセキュリティauto_approve_directories_in_desktop_mode: false
承認ホワイトリストに登録されていないディレクトリは明示的な承認が必要ですインタラクティブな使用標準クライアントのデフォルトの動作
自動承認Claude Desktop のディレクトリを自動承認します利便性auto_approve_directories_in_desktop_mode: true

ホワイトリストディレクトリ構成

"security": { "whitelisted_directories": [ "/home", // System directories "/tmp", "~", // User's home "~/Documents" // Common user directories ], "auto_approve_directories_in_desktop_mode": false // Set to true for convenience }

ディレクトリ承認フロー

  1. コマンドはディレクトリ内で要求されます
  2. システムチェック:
    • ディレクトリはグローバルホワイトリストに登録されていますか?→許可
    • このセッションでディレクトリは承認されましたか? →許可
    • どちらでもない?→承認をリクエスト
  3. 承認後、ディレクトリはセッション全体にわたって承認済みのままになります

パス形式のサポート

  • 絶対パス: /home/user/documents
  • ホームディレクトリ: ~ (ユーザーのホームに展開)
  • ユーザーのサブディレクトリ: ~/Downloads

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

サーバーは Claude Desktop の永続的なセッションを維持し、ディレクトリ承認がリクエスト間で維持され、承認ループが防止されるようにします。

コマンドのカスタマイズ

システムはコマンド分類を使用してアクセスを制御します。

カテゴリ説明コマンド例承認が必要
読む安全な操作ls、cat、findいいえ
書くデータの変更mkdir、rm、touchはい
システムシステム操作ps、ping、ifconfigはい
ブロックされました危険なコマンドsudo、bash、eval常に拒否される

カスタマイズ方法

// In config.json { "commands": { "read": ["ls", "cat", "grep", "awk", "jq"], "write": ["mkdir", "touch", "rm"], "system": ["ping", "ifconfig", "kubectl"], "blocked": ["sudo", "bash", "eval"] } }

環境変数方式:

# Add to existing lists, not replace (comma-separated) export CMD_LINE_MCP_COMMANDS_READ="awk,jq" export CMD_LINE_MCP_COMMANDS_BLOCKED="npm,pip"

MCP サーバーはこれらの追加機能を既存のコマンドと結合し、完全なコマンド リストを再作成せずに機能を拡張できるようにします。

コマンドチェーン

サーバーは、次の 3 つのコマンド連鎖方式をサポートしています。

方法シンボル設定
パイプ```lsgrep txt`allow_command_separators: true
順序;mkdir dir; cd dirallow_command_separators: true
背景&find . -name "*.log" &allow_command_separators: true

チェーン内のすべてのコマンドは、サポートされているコマンドリストから選択する必要があります。セキュリティチェックはチェーン全体に適用されます。

クイック設定:

"security": { "allow_command_separators": true // Set to false to disable all chaining }

特定のセパレーターを無効にするには、それらをdangerous_patternsリストに追加します。

ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

AI アシスタントが、包括的なセキュリティ機能を備えた制御されたインターフェースを通じて、一般的な Unix/macOS ターミナル コマンドを安全に実行できるようにします。

  1. Overview
    1. Key Features
      1. Supported Commands (out of the box)
        1. Read Commands
        2. Write Commands
        3. System Commands
      2. Security Architecture
        1. Quick Start
          1. Configuration Options
          2. Claude Desktop Integration
        2. AI Assistant Tools
          1. Tool Examples
        3. Directory Security System
          1. Directory Security Modes
          2. Whitelisted Directory Configuration
          3. Directory Approval Flow
          4. Path Format Support
          5. Claude Desktop Integration
        4. Command Customization
          1. Customization Methods
          2. Command Chaining
        5. License
          ID: s6abb0eqxm