PermShell MCP
# PermShell MCP
A Model Context Protocol (MCP) server for executing shell commands with permission notifications.
## Features
- Execute shell commands with explicit permissions through growl notifications
- Built on the Model Context Protocol for standardized LLM tools
- Multiple safeguards to prevent unauthorized command execution
- Transparent permission dialog shows exactly what commands will be executed
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/perm-shell-mcp.git
cd perm-shell-mcp
# Install dependencies
npm install
# Build the project
npm run build
```
## Usage
### As a standalone tool
```bash
# Start the server directly
npm start
```
### With Claude Desktop
Add the following configuration to your Claude Desktop configuration file:
```json
{
"mcpServers": {
"permshell": {
"command": "node",
"args": ["/path/to/perm-shell-mcp/dist/index.js"]
}
}
}
```
### Available Tools
#### execute-command
Executes a shell command with permission.
Example:
```
Can you list the files in my home directory?
```
#### system-info
Retrieves system information including OS, uptime, memory, disk, and CPU.
Example:
```
What's my system information?
```
## Security
- All commands require explicit permission through desktop notifications
- Commands display with their working directory for full transparency
- Timeout limits prevent runaway processes
- Input sanitization prevents command injection
## Development
```bash
# Run in watch mode for development
npm run dev
```
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: execute-command runs arbitrary shell commands, while system-info retrieves system information. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool based on the task.
Both tools use a consistent hyphenated naming style (execute-command and system-info), which is readable and predictable. However, the pattern is not a standard verb_noun convention, and with only two tools, it's hard to assess full consistency, but there are no deviations in the limited set.
With only 2 tools, the server feels thin for a shell-related purpose, as it might lack operations like file management, process control, or environment handling. While the tools cover basic execution and info, the count is borderline low for a typical shell utility scope.
For a shell server, there are significant gaps: no tools for file operations (e.g., list, read, write), process management, network commands, or environment variables. The surface is severely incomplete, as agents cannot perform common shell tasks beyond command execution and system info retrieval.