Shell执行MCP服务器
一种模型上下文协议(MCP)服务器,为Claude和其他兼容MCP的AI助手提供持久的shell命令执行功能。
特性
- 持久Shell会话:维护同一会话中命令之间的状态
- 后台执行:在后台运行命令,并进行适当的进程管理
- 交叉平台的:可在macOS、Linux和Windows上使用适当的shell
- 超时控制:配置命令执行超时以防止挂起
- 会话重置:如果需要,可以重置shell会话
安装
# Clone the repository
git clone https://github.com/samihalawa/mcp-server-shell-exec.git
cd mcp-server-shell-exec
# Install dependencies
npm install
# Make the server executable
chmod +x server.js用法
启动服务器
npm start配置
将服务器添加到MCP配置中:
macOS/Linux
{
"mcpServers": {
"shell-exec-server": {
"command": "/path/to/node",
"args": [
"/absolute/path/to/mcp-server-shell-exec/server.js"
]
}
}
}视窗
{
"mcpServers": {
"shell-exec-server": {
"command": "node",
"args": [
"C:\\path\\to\\mcp-server-shell-exec\\server.js"
]
}
}
}可用工具
执行命令
在持久shell会话中执行shell命令。
参数:
command(string,必填):要执行的shell命令runInBackground(boolean,可选):是否在后台运行命令。默认值:falsetimeoutMs(number,可选):命令的超时时间(毫秒)。默认值:30000
退货:
success(boolean):命令执行是否成功output(string):命令执行的输出
重置外壳
重置shell会话。这将终止当前会话并启动新会话。
参数:无
退货:
success(boolean):shell是否重置成功message(string):状态消息
示例用法
- 执行一个简单的命令:
execute-command(command: "ls -la")- 在后台运行一个长时间运行的命令:
execute-command(command: "sleep 60 && echo 'Done'", runInBackground: true)- 执行具有自定义超时的命令:
execute-command(command: "find / -name '*.js'", timeoutMs: 60000)- 重置shell会话:
reset-shell()运作原理
服务器使用Node.js创建一个shell进程来维护命令之间的状态。这允许:
- 在命令之间保持不变的环境变量
- 工作目录保持一致
- 后台进程继续运行
- 需要stdin/stdout的交互式命令
需求
- Node.js 14+
- 与Claude Desktop、Cursor和其他MCP兼容应用程序兼容
故障排除
如果遇到MCP服务器问题,请检查以下内容:
常见错误:工具执行失败
如果您看到“工具执行失败”错误,请检查:
- 服务器运行正常
- 您的配置文件使用绝对路径
- 更改配置后,您已重新启动客户端应用程序
测试服务器
您可以通过发送命令直接测试服务器:
echo '{"id":"test1","jsonrpc":"2.0","method":"execute-command","params":{"command":"echo \"Hello World\""}}' | node server.js这应该返回一个格式正确的JSON响应和输出。
配置路径问题
仔细检查配置中的路径:
- 使用绝对路径而不是相对路径
- 对于Windows用户,请在路径中使用正斜杠(/)或转义反斜杠(\\)
- 验证服务器文件路径是否正确

