MCP Shell Server

MCP シェル サーバー

モデル コンテキスト プロトコル (MCP) を実装するシェル コマンドを実行するための安全なサーバー。このサーバーは、stdin 経由の入力をサポートし、承認されたシェル コマンドのリモート実行を可能にします。

特徴

  • 安全なコマンド実行: 許可されたコマンドのみ実行可能
  • 標準入力サポート: stdin経由でコマンドに入力を渡します
  • 包括的な出力: stdout、stderr、終了コード、実行時間を返します
  • シェル演算子によるセキュリティ: シェル演算子 (;、&&、||、|) の後のコマンドを検証します。
  • タイムアウト制御: コマンドの最大実行時間を設定します

Claude.app で MCP クライアントを構成する

公開版

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uvx", "args": [ "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }

ローカルバージョン

設定

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uv", "args": [ "--directory", ".", "run", "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }

インストール

pip install mcp-shell-server

使用

サーバーの起動

ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server # Ou usando o alias ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server

ALLOW_COMMANDS環境変数 (またはそのエイリアスALLOWED_COMMANDS ) は、実行できるコマンドを指定します。コマンドはコンマで区切ることができ、その周囲にスペースを入れることもできます。

ALLOW_COMMANDS または ALLOWED_COMMANDS の有効な形式:

ALLOW_COMMANDS="ls,cat,echo" # Formato básico ALLOWED_COMMANDS="ls ,echo, cat" # Com espaços (usando alias) ALLOW_COMMANDS="ls, cat , echo" # Múltiplos espaços

リクエスト形式

# Execução básica de comando { "command": ["ls", "-l", "/tmp"] } # Comando com entrada stdin { "command": ["cat"], "stdin": "Hello, World!" } # Comando com timeout { "command": ["long-running-process"], "timeout": 30 # Tempo máximo de execução em segundos } # Comando com diretório de trabalho e timeout { "command": ["grep", "-r", "pattern"], "directory": "/path/to/search", "timeout": 60 }

応答フォーマット

成功した応答:

{ "stdout": "saída do comando", "stderr": "", "status": 0, "execution_time": 0.123 }

エラー応答:

{ "error": "Comando não permitido: rm", "status": 1, "stdout": "", "stderr": "Comando não permitido: rm", "execution_time": 0 }

安全

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

  1. コマンドホワイトリスト: 明示的に許可されたコマンドのみ実行できます
  2. シェル演算子の検証: シェル演算子 (;、&&、||、|) の後のコマンドもホワイトリストに対して検証されます。
  3. シェルインジェクションなし: コマンドはシェル解釈なしで直接実行されます

発達

開発環境のセットアップ

  1. リポジトリをクローンする
git clone https://github.com/yourusername/mcp-shell-server.git cd mcp-shell-server
  1. テスト要件を含む依存関係をインストールする
pip install -e ".[test]"

テストの実行

pytest

APIリファレンス

リクエスト引数

分野タイプ必須説明
指示[]はいコマンドとその引数を配列要素として
標準入力いいえコマンドに渡される入力
ディレクトリいいえコマンドを実行するための作業ディレクトリ
タイムアウト全体いいえ最大実行時間(秒)

応答フィールド

分野タイプ説明
標準出力コマンドの標準出力
標準エラー出力コマンドエラー出力
状態全体終了ステータスコード
実行時間フロート実行にかかった時間(秒)
エラーエラー メッセージ (失敗した場合のみ表示)

要件

  • Python 3.11以上
  • mcp>=1.1.0

ライセンス

MITライセンス - 詳細はLICENSEファイルを参照

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

モデル コンテキスト プロトコル (MCP) を実装し、stdin サポートによる承認済みシェル コマンドの制御された実行を可能にする安全なサーバー。

  1. Funcionalidades
    1. Configuração do cliente MCP no seu Claude.app
      1. Versão publicada
      2. Versão local
    2. Uso
      1. Iniciando o Servidor
      2. Formato da Requisição
      3. Formato da Resposta
    3. Segurança
      1. Desenvolvimento
        1. Configurando o Ambiente de Desenvolvimento
        2. Executando Testes
      2. Referência da API
        1. Argumentos da Requisição
        2. Campos da Resposta
      3. Requisitos
        1. Licença
          ID: sx9bf448k1