Skip to main content
Glama

Safe Unix MCP

by veglezMX
README.md3.79 kB
# safe-unix-mcp A stdio MCP server that exposes **read-only** Unix-like tools to AI agents (Crush). - Transport: stdio (MCP). - Host: any MCP client (e.g., Crush). - OS: Linux/macOS (BSD/GNU differences are handled conservatively). ## Why - POSIX `find` includes `-exec`/`-ok` which execute commands; we **forbid** them. - GNU/BSD `find -delete` is destructive; also **forbidden**. - Many coreutils have dangerous flags (e.g., `sed -i`); we **block** them. References: - MCP transports & specification. - POSIX Shell & Utilities (Open Group). - GNU Coreutils manual. ## Installation ### Clone the repository ```bash git clone https://github.com/YOUR_USERNAME/safe-unix-mcp.git cd safe-unix-mcp ``` ### Install globally ```bash npm install -g . ``` This makes the `mcp-safe-unix` command available system-wide. ### Quick Setup for Crush After installing globally, run the setup utility to automatically configure your Crush config: ```bash setup-safe-unix ``` This interactive script will: - Create `~/.crush.json` if it doesn't exist - Add the safe-unix MCP server configuration - Detect and optionally remove potentially unsafe Unix/shell servers - Update existing safe-unix configuration if already present **Options:** ```bash setup-safe-unix --config-path=/custom/path/to/config.json # Use custom config path setup-safe-unix --force # Skip confirmation prompts ``` ### Manual Setup If you prefer manual configuration, add the following to your `~/.crush.json`: ```json { "mcpServers": { "safe-unix": { "command": "mcp-safe-unix", "transport": "stdio" } } } ``` ### Verify installation ```bash echo '{"jsonrpc":"2.0","id":1,"method":"initialize"}' | mcp-safe-unix ``` ## Usage with Crush ### Automatic Setup (Recommended) Use the setup utility after installation: ```bash setup-safe-unix ``` ### Manual Configuration Add to your `~/.crush.json` configuration file: ```json { "mcpServers": { "safe-unix": { "command": "mcp-safe-unix", "transport": "stdio" } } } ``` If you prefer not to install globally, you can specify the full path to the script: ```json { "mcpServers": { "safe-unix": { "command": "node", "args": ["/path/to/safe-unix-mcp/mcp-safe-unix.js"], "transport": "stdio" } } } ``` Or use `npx`: ```json { "mcpServers": { "safe-unix": { "command": "npx", "args": ["-y", "/path/to/safe-unix-mcp"], "transport": "stdio" } } } ``` ## Available Tools The server exposes the following safe, read-only Unix tools: - **Directory & file listing**: `safe_ls`, `safe_pwd`, `safe_stat`, `safe_file` - **View/paging**: `safe_cat`, `safe_head`, `safe_tail`, `safe_less`, `safe_more` - **Search & filtering**: `safe_grep`, `safe_awk`, `safe_sed` - **Text transforms**: `safe_cut`, `safe_paste`, `safe_tr`, `safe_sort`, `safe_uniq`, `safe_fmt`, `safe_fold`, `safe_column` - **Counting/checksums**: `safe_wc`, `safe_cksum`, `safe_sha` - **Archive inspection**: `safe_tar_list`, `safe_zipinfo`, `safe_unzip_list` - **FS usage**: `safe_du`, `safe_df` - **Process & env**: `safe_env`, `safe_id`, `safe_uname`, `safe_date`, `safe_ps`, `safe_uptime` - **Safe find**: `safe_find` (without `-exec`, `-ok`, `-delete`) - **Git (read-only)**: `safe_git` (status, diff, show, log, etc.) - **JSON/YAML**: `safe_jq`, `safe_yq` - **Hex/encoding**: `safe_hexdump`, `safe_xxd`, `safe_od` - **Trees**: `safe_tree` - **macOS**: `safe_sw_vers` ## Development ### Local testing without global install ```bash # Test with node directly echo '{"jsonrpc":"2.0","id":1,"method":"initialize"}' | node mcp-safe-unix.js # Or use npm link for development npm link ``` ### Uninstall ```bash npm uninstall -g safe-unix-mcp ```

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/veglezMX/safe-unix-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server