返回 MCP 目录
public公开dns本地运行

mac-shell-mcp

一个用于在macOS上通过MCP协议安全执行终端命令的服务器,提供命令白名单和审批机制。

article

README

🚀 Mac Shell MCP 服务器

Mac Shell MCP 服务器是一款专为 macOS 打造的工具,它通过集成 MCP(Multi-Command Protocol) 来增强 shell 功能,实现对 shell 命令的安全管理与控制。

🚀 快速开始

Mac Shell MCP 服务器能有效管理和控制 macOS 的 shell 命令,保障系统安全。下面为你介绍它的安装和使用方法。

✨ 主要特性

该服务器具备以下核心功能:

  1. 🧾 命令分类管理:将 shell 命令细致划分为安全使用、需要批准使用和禁止使用三类,方便用户管理。
  2. ✅ 审批机制:针对高风险命令设置审批流程,确保只有授权命令才能执行,提升系统安全性。
  3. 🔐 权限控制:所有命令均以运行服务器的用户权限执行,有效防止 privilege escalation 攻击。
  4. ⏳ 命令排队:待批准命令会被暂存,直至明确批准或拒绝,保证命令执行的有序性。

📦 安装指南

按照以下步骤完成项目的克隆、依赖安装和构建:

  1. 克隆项目仓库:
    git clone https://github.com/cfdude/mac-shell-mcp.git
    cd mac-shell-mcp
    
  2. 安装依赖并构建:
    npm install
    npm run build
    

💻 使用示例

启动服务器

node build/server.js

配置指南

通过 npx 使用

将以下配置添加到 MCP 设置中:

对于 Brave Shell:
"mac-shell": {
  "command": "npx",
  "args": ["-y", "github:cfdude/mac-shell-mcp"],
  "alwaysAllow": [],
  "disabled": false
}

自定义安装

  1. 安装为 npm 包:
    npm install -g mac-shell-mcp
    
  2. 添加到 MCP 配置:
    "mac-shell": {
      "command": "mac-shell-mcp",
      "alwaysAllow": [],
      "disabled": false
    }
    

📚 详细文档

默认配置

安全使用命令

  • ls - 列出目录内容
  • pwd - 显示当前工作目录
  • echo - 输出文本到标准输出
  • cat - 查看文件内容
  • grep - 在文件中搜索模式
  • find - 搜索目录层次结构
  • cd - 切换目录
  • head - 输出文件开头部分
  • tail - 输出文件结尾部分
  • wc - 显示行、单词和字节数统计

需要批准的命令

  • mv - 移动或重命名文件
  • cp - 复制文件和目录
  • mkdir - 创建新目录
  • touch - 更改文件时间戳或创建空文件
  • chmod - 修改文件权限
  • chown - 更改文件所有者和组

禁止使用的命令

  • rm - 删除文件或目录
  • sudo - 以其他用户身份执行命令

扩展 whitelist

通过 MCP 工具 add_to_whitelist 可添加新的受信任命令,示例如下:

{
  "command": "npm",
  "securityLevel": "requires_approval",
  "description": "Node.js 包管理器"
}

⚠️ 重要提示

  1. 所有命令均以运行服务器的用户权限执行。
  2. 需要批准的命令会被暂存,直到被明确批准或拒绝。
  3. 禁止使用的命令将直接被拦截并显示错误信息。

🔗 项目链接

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端