I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

Mac-shell-MCP
Un servidor MCP (protocolo de contexto modelo) para ejecutar comandos de terminal MACOS con shell ZSH. Este servidor proporciona una forma segura de ejecutar comandos de shell con mecanismos de aprobación y aprobación blancas incorporadas.
3 years
Works with Finder
1
Github Watches
2
Github Forks
2
Github Stars
Mac Shell MCP Server
An MCP (Model Context Protocol) server for executing macOS terminal commands with ZSH shell. This server provides a secure way to execute shell commands with built-in whitelisting and approval mechanisms.
Features
- Execute macOS terminal commands through MCP
- Command whitelisting with security levels:
- Safe: Commands that can be executed without approval
- Requires Approval: Commands that need explicit approval before execution
- Forbidden: Commands that are explicitly blocked
- Pre-configured whitelist with common safe commands
- Approval workflow for potentially dangerous commands
- Comprehensive command management tools
Installation
# Clone the repository
git clone https://github.com/cfdude/mac-shell-mcp.git
cd mac-shell-mcp
# Install dependencies
npm install
# Build the project
npm run build
Usage
Starting the Server
npm start
Or directly:
node build/index.js
Configuring in Roo Code and Claude Desktop
Both Roo Code and Claude Desktop use a similar configuration format for MCP servers. Here's how to set up the Mac Shell MCP server:
Using Local Installation
Roo Code Configuration
Add the following to your Roo Code MCP settings configuration file (located at ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
):
"mac-shell": {
"command": "node",
"args": [
"/path/to/mac-shell-mcp/build/index.js"
],
"alwaysAllow": [],
"disabled": false
}
Claude Desktop Configuration
Add the following to your Claude Desktop configuration file (located at ~/Library/Application Support/Claude/claude_desktop_config.json
):
"mac-shell": {
"command": "node",
"args": [
"/path/to/mac-shell-mcp/build/index.js"
],
"alwaysAllow": false,
"disabled": false
}
Replace /path/to/mac-shell-mcp
with the actual path where you cloned the repository.
Using NPX (Recommended)
For a more convenient setup that doesn't require keeping a terminal window open, you can publish the package to npm and use it with npx:
Publishing to npm
- Update the package.json with your details
- Publish to npm:
npm publish
Roo Code Configuration
"mac-shell": {
"command": "npx",
"args": [
"-y",
"mac-shell-mcp"
],
"alwaysAllow": [],
"disabled": false
}
Claude Desktop Configuration
"mac-shell": {
"command": "npx",
"args": [
"-y",
"mac-shell-mcp"
],
"alwaysAllow": false,
"disabled": false
}
This approach allows the MCP server to be started automatically by the MCP client without requiring a separate terminal window or manual intervention.
Note:
- For Roo Code: Setting
alwaysAllow
to an empty array[]
is recommended for security reasons, as it will prompt for approval before executing any commands. If you want to allow specific commands without prompting, you can add their names to the array, for example:"alwaysAllow": ["execute_command", "get_whitelist"]
.- For Claude Desktop: Setting
alwaysAllow
tofalse
is recommended for security reasons. Claude Desktop uses a boolean value instead of an array, wherefalse
means all commands require approval andtrue
means all commands are allowed without prompting.Important: The
alwaysAllow
parameter is processed by the MCP client (Roo Code or Claude Desktop), not by the Mac Shell MCP server itself. The server will work correctly with either format, as the client handles the approval process before sending requests to the server.
Available Tools
The server exposes the following MCP tools:
execute_command
Execute a shell command on macOS.
{
"command": "ls",
"args": ["-la"]
}
get_whitelist
Get the list of whitelisted commands.
{}
add_to_whitelist
Add a command to the whitelist.
{
"command": "python3",
"securityLevel": "safe",
"description": "Run Python 3 scripts"
}
update_security_level
Update the security level of a whitelisted command.
{
"command": "python3",
"securityLevel": "requires_approval"
}
remove_from_whitelist
Remove a command from the whitelist.
{
"command": "python3"
}
get_pending_commands
Get the list of commands pending approval.
{}
approve_command
Approve a pending command.
{
"commandId": "command-uuid-here"
}
deny_command
Deny a pending command.
{
"commandId": "command-uuid-here",
"reason": "This command is potentially dangerous"
}
Default Whitelisted Commands
Safe Commands (No Approval Required)
-
ls
- List directory contents -
pwd
- Print working directory -
echo
- Print text to standard output -
cat
- Concatenate and print files -
grep
- Search for patterns in files -
find
- Find files in a directory hierarchy -
cd
- Change directory -
head
- Output the first part of files -
tail
- Output the last part of files -
wc
- Print newline, word, and byte counts
Commands Requiring Approval
-
mv
- Move (rename) files -
cp
- Copy files and directories -
mkdir
- Create directories -
touch
- Change file timestamps or create empty files -
chmod
- Change file mode bits -
chown
- Change file owner and group
Forbidden Commands
-
rm
- Remove files or directories -
sudo
- Execute a command as another user
Security Considerations
- All commands are executed with the permissions of the user running the MCP server
- Commands requiring approval are held in a queue until explicitly approved
- Forbidden commands are never executed
- The server uses Node.js's
execFile
instead ofexec
to prevent shell injection - Arguments are validated against allowed patterns when specified
Extending the Whitelist
You can extend the whitelist by using the add_to_whitelist
tool. For example:
{
"command": "npm",
"securityLevel": "requires_approval",
"description": "Node.js package manager"
}
Using as an npm Package
To use the Mac Shell MCP server with npx
similar to other MCP servers like Brave Search, you can publish it to npm or use it directly from GitHub.
Configuration with npx
Add the following to your MCP settings configuration:
Roo Code
"mac-shell": {
"command": "npx",
"args": [
"-y",
"github:cfdude/mac-shell-mcp"
],
"alwaysAllow": [],
"disabled": false
}
Claude Desktop
"mac-shell": {
"command": "npx",
"args": [
"-y",
"github:cfdude/mac-shell-mcp"
],
"alwaysAllow": false,
"disabled": false
}
This will automatically download and run the server without requiring a manual clone and build process.
Publishing to npm
If you want to publish your own version to npm:
- Update the package.json with your details
- Add a "bin" field to package.json:
"bin": { "mac-shell-mcp": "./build/index.js" }
- Publish to npm:
npm publish
Then you can use it in your MCP configuration:
Roo Code
"mac-shell": {
"command": "npx",
"args": [
"-y",
"mac-shell-mcp"
],
"alwaysAllow": [],
"disabled": false
}
Claude Desktop
"mac-shell": {
"command": "npx",
"args": [
"-y",
"mac-shell-mcp"
],
"alwaysAllow": false,
"disabled": false
}
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
Converts Figma frames into front-end code for various mobile frameworks.
A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.
Oede knorrepot die vasthoudt an de goeie ouwe tied van 't boerenleven
A world class elite tech co-founder entrepreneur, expert in software development, entrepreneurship, marketing, coaching style leadership and aligned with ambition for excellence, global market penetration and worldy perspectives.
Advanced software engineer GPT that excels through nailing the basics.
A medical specialist offering assistance grounded in clinical guidelines. Disclaimer: This is intended for research and is NOT safe for clinical use!
Descubra la colección más completa y actualizada de servidores MCP en el mercado. Este repositorio sirve como un centro centralizado, que ofrece un extenso catálogo de servidores MCP de código abierto y propietarios, completos con características, enlaces de documentación y colaboradores.
Manipulación basada en Micrypthon I2C del expansor GPIO de la serie MCP, derivada de AdaFruit_MCP230xx
Una puerta de enlace de API unificada para integrar múltiples API de explorador de blockchain similar a Esterscan con soporte de protocolo de contexto modelo (MCP) para asistentes de IA.
Espejo de https: //github.com/suhail-ak-s/mcp-typesense-server
本项目是一个钉钉 MCP (Protocolo del conector de mensajes )服务 , 提供了与钉钉企业应用交互的 API 接口。项目基于 Go 语言开发 支持员工信息查询和消息发送等功能。 支持员工信息查询和消息发送等功能。
Reviews

user_1n9Euj5A
I have been using the MCP Server with FAISS for RAG by ProbonoBonobo, and it has significantly improved my retrieval-augmented generation tasks. The seamless integration and efficient performance make it an invaluable tool for my workflow. Highly recommend for anyone working in natural language processing!