Mac Shell MCP サーバー
ZSHシェルでmacOSターミナルコマンドを実行するためのMCP(Model Context Protocol)サーバー。このサーバーは、ホワイトリストと承認メカニズムを内蔵しており、シェルコマンドを安全に実行できます。
特徴
MCP 経由で macOS ターミナル コマンドを実行する
セキュリティ レベルによるコマンドのホワイトリスト:
安全: 承認なしで実行できるコマンド
承認が必要: 実行前に明示的な承認が必要なコマンド
禁止: 明示的にブロックされているコマンド
一般的な安全コマンドを含む事前設定されたホワイトリスト
潜在的に危険なコマンドの承認ワークフロー
包括的なコマンド管理ツール
Related MCP server: Super Shell MCP Server
インストール
使用法
サーバーの起動
または直接:
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 に公開:
npm publish
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」フィールドを追加します。
"bin": { "mac-shell-mcp": "./build/index.js" }npm に公開:
npm publish
次に、MCP 構成でこれを使用できます。
ルーコード
クロードデスクトップ
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。