内容
# mcp-cli-exec 命令执行服务器
一款强大的 CLI 命令执行 MCP 服务器,能够运行带有结构化输出的 shell 命令。该软件包专门关注命令执行功能,与其他 MCP CLI 工具有所区别。
## 功能
### 工具
#### cli-exec-raw
执行原始 CLI 命令并返回结构化输出
- 接受命令字符串和可选超时时间(默认为 5 分钟)
- 返回详细的执行结果,包括 stdout、stderr、退出代码
- 优雅地处理错误并返回结构化错误响应
#### cli-exec
在特定工作目录中执行一个或多个 CLI 命令
- 支持单个命令、&& 链式命令或命令数组
- 所有命令都在指定工作目录中执行
- 返回每个命令的详细结果:
- 成功/失败状态
- 退出代码
- stdout 和 stderr(ANSI 代码已剥离)
- 执行持续时间
- 工作目录
- 在第一个命令失败时停止
- 可选的每个命令超时时间(默认为 5 分钟)
注意:由于执行上下文的限制,每个命令独立运行。命令内的目录更改(cd)不会影响后续命令。所有命令都在初始指定的工作目录中执行。
### 输出格式
命令返回结构化结果,包括:
- 成功/失败状态
- 退出代码
- stdout 和 stderr(已剥离 ANSI 代码)
- 执行持续时间
- 工作目录
- 如果适用,详细的错误信息
### 示例用法
#### cli-exec-raw
简单命令执行:
```json
{
"command": "echo 你好 世界"
}
```
带超时时间:
```json
{
"command": "长时间运行的脚本.sh",
"timeout": 300000
}
```
#### cli-exec
特定目录中的单个命令:
```json
{
"workingDirectory": "/路径/到/项目",
"commands": "npm install"
}
```
多个命令(都在同一工作目录中运行):
```json
{
"workingDirectory": "C:\\项目",
"commands": [
"dir /b",
"npm run build"
]
}
```
## 安装
可选地,从 npm 安装:
```bash
npm install -g mcp-cli-exec
# 或使用 pnpm
pnpm add -g mcp-cli-exec
```
或者在您的配置中使用 npx
### 对于 Cline VSCode 扩展
将以下内容添加到 `%APPDATA%/Code - Insiders/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`:
```json
{
"mcpServers": {
"mcp-cli-exec": {
"command": "npx",
"args": ["-y", "mcp-cli-exec"]
}
}
}
```
### 对于 Claude Desktop
将以下内容添加到相应的配置文件中:
Windows: `%APPDATA%/Claude/claude_desktop_config.json`
MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"mcp-cli-exec": {
"command": "npx",
"args": ["-y", "mcp-cli-exec"]
}
}
}
```
### 特殊 Windows 配置
如果您在 Windows 上遇到 ENOENT spawn npx 问题,请使用此替代配置,指定完整路径:
```json
{
"mcpServers": {
"mcp-cli-exec": {
"command": "C:\\Users\\jim\\AppData\\Roaming\\nvm\\v22.1.0\\node.exe",
"args": [
"C:\\Users\\jim\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npx-cli.js",
"-y",
"mcp-cli-exec"
]
}
}
}
```
## 开发
安装依赖项:
```bash
pnpm install
```
构建服务器:
```bash
pnpm run build
```
开发并自动重建:
```bash
pnpm run watch
```
### 调试
由于 MCP 服务器通过 stdio 进行通信,调试可能具有挑战性。MCP Inspector 提供了有用的调试工具:
```bash
pnpm run inspector
```
这将提供一个 URL,您可以在浏览器中访问它:
- 查看所有 MCP 消息
- 检查请求/响应有效载荷
- 交互式测试工具
- 监视服务器状态
## 错误处理
服务器包含全面的错误处理:
- 所有工具参数的输入验证
- 结构化错误响应
- 命令超时处理
- 工作目录验证
- 用于干净输出的 ANSI 代码剥离
## 技术细节
- 使用 TypeScript 和 MCP SDK 构建
- 使用 execa 进行可靠的命令执行
- 默认命令超时时间:5 分钟
- 支持 Windows 和类 Unix 系统(为您的 OS 使用适当的命令,例如 'dir' vs 'ls')
- 顺序执行命令,在第一个失败时停止
- 每个命令都在指定的工作目录中独立运行