使用说明
许可证:mit 标签:
- 主控程序
- 克劳德
- 外壳
- 安全外壳协议
- 窗户
- Dotnet 语言:
- 英语
壳牌MCP服务器
Claude的终端访问具有两种安全模式,以及用于远程服务器的SSH网桥。
特性
- 本地shell 安全/危险指挥分离
- SSH网桥 -用于安全远程服务器访问的GUI应用程序
- 提笔 -立即暂停克劳德的命令执行
- Sudo支持 -自动发送sudo命令的密码(选择加入)
- 完全可见 -实时查看Claude运行的每个命令
- 后台进程 -生成和管理长时间运行的任务
- 文件 操作 -写入文件时不会出现shell转义问题
快速入门(预构建二进制文件)
从下载 release/ 文件夹:
shell-mcp.dll-Claude Desktop的MCP服务器ssh-bridge.exe-SSH连接的图形用户界面
无需构建-只需配置Claude Desktop(见下文)。
组件
1.壳牌MCP(shell-mcp.dll)
具有可配置命令分配列表的本地Windows终端访问。
2.SSH网桥(ssh-bridge.exe)
WinForms图形用户界面:
- 您使用密码(仅保存在内存中)进行身份验证
- 克劳德通过它发送命令
- 实时输出显示,语法高亮显示
- 提笔 立即暂停克劳德的按钮
- 洲户 按钮,为sudo命令启用自动密码
- 针 使窗口保持在顶部的按钮
- 右键单击上下文菜单:复制、全部复制、清除
安装
选项1:使用预构建的二进制文件
- 从下载文件
release/文件夹 - 配置Claude桌面(见下文)
选项2:从源代码构建
先决条件:
- .NET 8.0 SDK
- Windows 10/11
git clone https://github.com/FreeOnlineUser/shell-mcp.git
cd shell-mcp
dotnet restore
dotnet build ShellMcp.csproj -c Release
dotnet build SshBridge.csproj -c Release
配置Claude桌面
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"shell_safe": {
"command": "dotnet",
"args": ["C:\\path\\to\\release\\shell-mcp.dll"],
"env": {
"SHELL_MCP_MODE": "safe",
"SHELL_MCP_START_DIR": "C:\\your\\workspace",
"SSH_BRIDGE_PATH": "C:\\path\\to\\release\\ssh-bridge.exe"
}
},
"shell_dangerous": {
"command": "dotnet",
"args": ["C:\\path\\to\\release\\shell-mcp.dll"],
"env": {
"SHELL_MCP_MODE": "dangerous",
"SHELL_MCP_START_DIR": "C:\\your\\workspace",
"SSH_BRIDGE_PATH": "C:\\path\\to\\release\\ssh-bridge.exe"
}
}
}
}
审批设置:
shell_safe→ “始终允许”shell_dangerous→ “允许一次”(每次都问)
工具
本地shell
| 工具 | 说明 |
|---|---|
Shell |
执行具有可选超时的本地命令 |
Pwd |
获取当前工作目录 |
ShellInfo |
显示模式和允许的命令列表 |
ShellBatch |
按顺序运行多个命令 |
SSH工具
| 工具 | 说明 |
|---|---|
SshCommand |
在远程服务器上执行命令 |
SshStatus |
检查SSH网桥是否已连接 |
SshPrefill |
预填充连接详细信息,并可选择自动连接 |
SshPenStatus |
检查用户是否已暂停执行(提笔) |
SshPenDown |
请求恢复执行 |
SshAbort |
发送Ctrl+C中止运行命令 |
SshIsRunning |
检查命令当前是否正在执行 |
SshSetTimeout |
设置下一个命令的超时时间(1-3600秒) |
SshTail |
获取最后50行终端输出 |
SshKillPort |
终止在特定端口上侦听的进程 |
SshSpawn |
使用可跟踪的名称启动后台进程 |
SshListSpawned |
列出所有跟踪的后台进程 |
SshKillSpawned |
按名称终止后台进程 |
SshWriteFile |
无需shell转义即可将内容写入文件 |
SshAppendFile |
在不转义shell的情况下将内容附加到文件 |
SSH网桥功能
提笔(暂停克劳德)
点击 提笔 立即暂停克劳德的命令执行。任何正在运行的命令都将中止,新命令将被阻止,直到您再次单击以继续。非常适合:
- 回顾克劳德在做什么
- 暂时采用手动控制
- 紧急停止
Sudo支持
点击 洲户 为sudo命令启用自动密码输入。启用时:
- 克劳德能跑
sudo无提示的命令 - 当sudo询问时,您的密码会自动发送
- 密码仅在连接时保存在内存中
固定窗口
点击 针 以使SSH网桥窗口始终位于顶部。
交互式命令阻止
该桥会自动阻止会破坏shell的交互式命令:
- 编辑: vim、nano、emacs(使用
echo或SshWriteFile相反) - 寻呼机: 少,多(使用
cat,head,tail相反) - TUI应用程序: htop,top(使用
top -b -n 1或ps aux) - 数据库: mysql、psql(使用
-e或-c查询标志) - 多路复用器: tmux,屏幕(不支持)
每个被阻止的命令都显示了有用的替代方案。
安全模型
shell_safe(批准一次)
只读和构建命令:
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 test
shell_dangerous(每次批准)
修改命令:
del,rm,rmdir,move,copy,mkdirgit push,git pull,git merge,git rebase,git reset,git commit,git addtaskkill,shutdownnpm install -g,npm uninstall
始终被阻止
format,diskpart,reg,regeditnet user,net localgrouppowershell -enc,rm -rf /,del /s /q c:\
SSH网桥安全
- 密码仅保存在内存中,从不写入磁盘
- 提起笔可立即暂停
- 断开连接以立即撤销
- 所有命令实时可见
- 默认情况下禁用Sudo
输出句柄
- 大输出会自动截断(最后150行返回给Claude)
- 每个响应最大500KB
- SSH Bridge窗口中的实时流式显示
- 剥离ANSI转义码以获得干净的输出
依赖项
许可证
麻省理工学院