Mac Shell MCP サーバー
ZSHシェルでmacOSターミナルコマンドを実行するためのMCP(Model Context Protocol)サーバー。このサーバーは、ホワイトリストと承認メカニズムを内蔵しており、シェルコマンドを安全に実行できます。
特徴
- MCP 経由で macOS ターミナル コマンドを実行する
- セキュリティ レベルによるコマンドのホワイトリスト:
- 安全: 承認なしで実行できるコマンド
- 承認が必要: 実行前に明示的な承認が必要なコマンド
- 禁止: 明示的にブロックされているコマンド
- 一般的な安全コマンドを含む事前設定されたホワイトリスト
- 潜在的に危険なコマンドの承認ワークフロー
- 包括的なコマンド管理ツール
インストール
使用法
サーバーの起動
または直接:
Roo CodeとClaude Desktopでの設定
Roo CodeとClaude Desktopはどちらも、MCPサーバーに同様の設定形式を使用しています。Mac Shell MCPサーバーの設定方法は以下の通りです。
ローカルインストールの使用
Rooコード構成
Roo Code MCP 設定ファイル ( ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
にあります) に次の内容を追加します。
クロードデスクトップ構成
Claude Desktop 構成ファイル ( ~/Library/Application Support/Claude/claude_desktop_config.json
にあります) に次のコードを追加します。
/path/to/mac-shell-mcp
を、リポジトリのクローンを作成した実際のパスに置き換えます。
NPXの使用(推奨)
ターミナル ウィンドウを開いたままにする必要がない、より便利なセットアップの場合は、パッケージを npm に公開し、npx で使用できます。
npmへの公開
- 詳細を記載したpackage.jsonを更新します
- npm に公開:
Rooコード構成
クロードデスクトップ構成
このアプローチにより、別のターミナル ウィンドウや手動による介入を必要とせずに、MCP クライアントによって MCP サーバーが自動的に起動されます。
注記:
- Roo Codeの場合:セキュリティ上の理由から、
alwaysAllow
空の配列[]
に設定することを推奨します。これにより、コマンド実行前に承認を求めるプロンプトが表示されます。特定のコマンドをプロンプトなしで許可したい場合は、そのコマンドの名前を配列に追加します。例:"alwaysAllow": ["execute_command", "get_whitelist"]
。- Claude Desktopの場合:セキュリティ上の理由から、
alwaysAllow
をfalse
に設定することをお勧めします。Claude Desktopでは、配列ではなくブール値を使用します。falsefalse
すべてのコマンドに承認が必要であり、true
はすべてのコマンドがプロンプトなしで許可されることを意味します。重要:
alwaysAllow
パラメータは、Mac Shell MCPサーバー自体ではなく、MCPクライアント(Roo CodeまたはClaude Desktop)によって処理されます。クライアントはサーバーにリクエストを送信する前に承認プロセスを処理するため、サーバーはどちらの形式でも正常に動作します。
利用可能なツール
サーバーは次の MCP ツールを公開します。
execute_command
macOS でシェル コマンドを実行します。
get_whitelist
ホワイトリストに登録されたコマンドのリストを取得します。
add_to_whitelist
ホワイトリストにコマンドを追加します。
update_security_level
ホワイトリストに登録されたコマンドのセキュリティ レベルを更新します。
remove_from_whitelist
ホワイトリストからコマンドを削除します。
get_pending_commands
承認待ちのコマンドのリストを取得します。
approve_command
保留中のコマンドを承認します。
deny_command
保留中のコマンドを拒否します。
デフォルトのホワイトリストコマンド
安全なコマンド(承認不要)
ls
- ディレクトリの内容を一覧表示するpwd
- 作業ディレクトリを印刷するecho
- 標準出力にテキストを出力するcat
- ファイルを連結して印刷するgrep
- ファイル内のパターンを検索するfind
- ディレクトリ階層内のファイルを検索するcd
- ディレクトリを変更するhead
- ファイルの最初の部分を出力するtail
- ファイルの最後の部分を出力するwc
- 改行、単語、バイト数を出力する
承認が必要なコマンド
mv
- ファイルを移動(名前変更)するcp
- ファイルとディレクトリをコピーするmkdir
- ディレクトリを作成するtouch
- ファイルのタイムスタンプを変更するか、空のファイルを作成するchmod
- ファイルモードビットを変更するchown
- ファイルの所有者とグループを変更する
禁止コマンド
rm
- ファイルまたはディレクトリを削除するsudo
- 別のユーザーとしてコマンドを実行する
セキュリティに関する考慮事項
- すべてのコマンドは、MCPサーバーを実行しているユーザーの権限で実行されます。
- 承認を必要とするコマンドは、明示的に承認されるまでキューに保持されます。
- 禁止されたコマンドは決して実行されない
- サーバーはシェルインジェクションを防ぐために
exec
の代わりにNode.jsのexecFile
を使用します。 - 引数は、指定された場合に許可されたパターンに対して検証されます。
ホワイトリストの拡張
ホワイトリストを拡張するには、 add_to_whitelist
ツールを使用します。例:
npmパッケージとして使用する
Brave Search などの他の MCP サーバーと同様に、 npx
で Mac Shell MCP サーバーを使用するには、npm に公開するか、GitHub から直接使用します。
npxを使用した設定
MCP 設定構成に以下を追加します。
ルーコード
クロードデスクトップ
これにより、手動によるクローン作成やビルドのプロセスを必要とせずに、サーバーが自動的にダウンロードされて実行されます。
npmへの公開
独自のバージョンを npm に公開する場合:
- 詳細を記載したpackage.jsonを更新します
- package.json に「bin」フィールドを追加します。
- npm に公開:
次に、MCP 構成でこれを使用できます。
ルーコード
クロードデスクトップ
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
セキュリティホワイトリストと承認メカニズムが組み込まれた Claude または Roo Code を介して macOS ターミナルコマンドを安全に実行できる MCP サーバー。
Related MCP Servers
- AsecurityAlicenseAqualityA secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.Last updated -174PythonMIT License
- AsecurityAlicenseAqualityA secure MCP server for executing whitelisted shell commands with resource and timeout controls, designed for integration with Claude and other MCP-compatible LLMs.Last updated -201432TypeScriptMIT License
- AsecurityAlicenseAqualityAn MCP server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface for LLMs.Last updated -1023PythonMIT License
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -1121JavaScriptMIT License