release/ folder:shell-mcp.dll - MCP server for Claude Desktopssh-bridge.exe - GUI for SSH connectionsshell-mcp.dll)ssh-bridge.exe)release/ folder1git clone https://github.com/FreeOnlineUser/shell-mcp.git
2cd shell-mcp
3dotnet restore
4dotnet build ShellMcp.csproj -c Release
5dotnet build SshBridge.csproj -c Release%APPDATA%\Claude\claude_desktop_config.json:1{
2 "mcpServers": {
3 "shell_safe": {
4 "command": "dotnet",
5 "args": ["C:\\path\\to\\release\\shell-mcp.dll"],
6 "env": {
7 "SHELL_MCP_MODE": "safe",
8 "SHELL_MCP_START_DIR": "C:\\your\\workspace",
9 "SSH_BRIDGE_PATH": "C:\\path\\to\\release\\ssh-bridge.exe"
10 }
11 },
12 "shell_dangerous": {
13 "command": "dotnet",
14 "args": ["C:\\path\\to\\release\\shell-mcp.dll"],
15 "env": {
16 "SHELL_MCP_MODE": "dangerous",
17 "SHELL_MCP_START_DIR": "C:\\your\\workspace",
18 "SSH_BRIDGE_PATH": "C:\\path\\to\\release\\ssh-bridge.exe"
19 }
20 }
21 }
22}shell_safe → "Allow always"shell_dangerous → "Allow once" (asks every time)| Tool | Description |
|---|---|
Shell | Execute a local command with optional timeout |
Pwd | Get current working directory |
ShellInfo | Show mode and list of allowed commands |
ShellBatch | Run multiple commands in sequence |
| Tool | Description |
|---|---|
SshCommand | Execute command on remote server |
SshStatus | Check if SSH Bridge is connected |
SshPrefill | Pre-fill connection details and optionally auto-connect |
SshPenStatus | Check if user has paused execution (pen lifted) |
SshPenDown | Request to resume execution |
SshAbort | Send Ctrl+C to abort running command |
SshIsRunning | Check if a command is currently executing |
SshSetTimeout | Set timeout for next command (1-3600 seconds) |
SshTail | Get last 50 lines of terminal output |
SshKillPort | Kill process listening on a specific port |
SshSpawn | Start a background process with a trackable name |
SshListSpawned | List all tracked background processes |
SshKillSpawned | Kill a background process by name |
SshWriteFile | Write content to file without shell escaping |
SshAppendFile | Append content to file without shell escaping |
sudo commands without promptingecho or SshWriteFile instead)cat, head, tail instead)top -b -n 1 or ps aux)-e or -c flags for queries)dir, ls, type, cat, head, tail, find, grep, pwd, cd, treeecho, date, time, whoami, hostnamegit status, git log, git diff, git branch, git remote, git fetch, git showdotnet build, dotnet run, dotnet test, dotnet restorenpm install, npm run, npm test, npm list, npm cinode --version, yarn install, yarn build, yarn testdel, rm, rmdir, move, copy, mkdirgit push, git pull, git merge, git rebase, git reset, git commit, git addtaskkill, shutdownnpm install -g, npm uninstallformat, diskpart, reg, regeditnet user, net localgrouppowershell -enc, rm -rf /, del /s /q c:\