Go server implementing Model Context Protocol (MCP) for executing shell commands.
- Execute shell commands using bash or zsh
- List previous command executions
- Safety features to limit allowed commands
- Configure allowed command set for security
Note: The server will only allow execution of commands specified via the allowedCommands parameter or all commands if configured with "*".
-
execute_command
- Execute a shell command
- Input:
command(string): The command to executeshell(string, optional): The shell to use (bash or zsh, defaults to bash)
- Output:
- Command output with both stdout and stderr
- Exit code
- Execution time
-
list_recent_commands
- List recently executed commands
- Input:
limit(integer, optional): Number of commands to return (defaults to 10)
- Output:
- List of recently executed commands with timestamps and status
-
list_allowed_commands
- List all commands that the server is allowed to execute
- No input required
- Returns:
- List of allowed commands or "*" if all commands are allowed
Install the server
go install github.com/gamunu/mcp-unix-shellAdd this to your claude_desktop_config.json:
{
"mcpServers": {
"shell": {
"command": "mcp-unix-shell",
"args": [
"--allowed-commands=ls,cat,echo,find"
]
}
}
}To allow all commands (use with caution):
{
"mcpServers": {
"shell": {
"command": "mcp-unix-shell",
"args": [
"--allowed-commands=*"
]
}
}
}When using this MCP server, please consider:
- Only allow commands you trust - a restrictive allowlist is recommended
- Avoid allowing commands that could modify system settings or access sensitive data
- The server runs with the permissions of the user running Claude Desktop
- Command output is sent back to the LLM, so be mindful of sensitive information
This MCP server is licensed under the Apache License 2.0.