MCP服务器:Linux命令行执行器
基于Node.js/NPM的MCP服务器:
- 为MCP客户端公开HTTP SSE端点
- 提供
exec在主机上运行任意Linux命令行的工具
安全说明:旨在在具有受信任客户端的Docker容器中运行。这 exec 该工具提供无限制的命令执行。
需求
- nvm和匹配的Node版本
.nvmrc - npm
设置
cd /Users/manuel/git/github/dx-tooling/maas/maas-mcpserver-linux-cmd-line
nvm use
npm install在SSE模式(HTTP)下运行
- 开发人员(TypeScript):
nvm use
PORT=3000 npm run dev:http- 构建+运行(JavaScript):
nvm use
npm run build
PORT=3000 npm run start:http服务器公开:
- 获取
/health→ 健康检查端点(返回带有服务状态的HTTP 200) - 获取
/mcp→ 建立SSE流(已弃用HTTP+SSE传输) - 发布
/messages?sessionId=→ 来自客户端的JSON-RPC消息
使用MCP兼容客户端通过SSE连接。手动交互并非易事,因为 sessionId 通过SSE流提供。
健康检查
服务器在以下位置提供健康检查端点 /health 在服务运行时返回HTTP 200:
curl http://localhost:3000/health答复:
{
"status": "healthy",
"timestamp": "2025-09-10T06:50:40.772Z",
"service": "maas-mcpserver-linux-cmd-line",
"version": "1.0.0",
"activeSessions": 0
}在stdio模式下运行
- 开发人员:
nvm use
npm run dev:stdio- 构建+运行:
nvm use
npm run build
npm run start:stdio工具: exec
- 姓名:
exec - 说明:在主机系统上执行Linux命令
- 输入架构:
- command (string,必填):完整shell命令行 - cwd (字符串,可选):工作目录 - env (记录\,可选):额外的环境变量
- 输出模式(结构化):
- exitCode (编号) - stdout (字符串) - stderr (字符串)
当命令运行时,stdout/stderr块作为MCP日志消息在当前会话中转发。
质量
nvm use
npm run quality备注
- 默认端口为
3000当PORT未设置。 - 本项目中的SSE传输是为了兼容性/测试而提供的(已弃用的协议)。对于生产,首选stdio或具有兼容客户端的现代传输。
