MCP 命令执行器是一个基于 MCP 协议实现的服务器,它允许安全地执行系统命令。该服务器通过仅执行注册在允许列表中的命令,来保障系统的安全性。
MCP 命令执行器可让你安全地通过 MCP 协议执行系统命令。下面为你介绍它的安装、配置和使用方法。
go install
go install github.com/cnosuke/mcp-command-exec
git clone https://github.com/cnosuke/mcp-command-exec.git
cd mcp-command-exec
make build
服务器通过 YAML 文件(默认:config.yml)进行配置,示例如下:
# 日志配置
log: 'log/mcp-command-exec.log'
debug: false
command_exec:
allowed_commands:
- git
- ls
- mkdir
- cd
- npm
- npx
- python
# 工作目录设置
default_working_dir: '/home/user'
allowed_dirs:
- '/home/user/projects'
- '/tmp'
# 路径搜索设置
search_paths:
- '/usr/local/bin'
- '/usr/bin'
path_behavior: 'prepend' # prepend, replace, append
# 全局环境变量
environment:
HOME: '/home/user'
GOPATH: '/home/user/go'
GOMODCACHE: '/home/user/go/pkg/mod'
LANG: 'en_US.UTF-8'
你还可以通过环境变量覆盖配置:
LOG_PATH
:指定日志文件路径DEBUG
:启用调试模式(true/false)ALLOWED_COMMANDS
:用逗号分隔的允许命令列表(覆盖配置文件)示例:
ALLOWED_COMMANDS=git,ls,cat,echo mcp-command-exec 服务器
日志行为通过配置控制:
log
在配置文件中设置,则将日志写入指定文件。log
为空,则不生成日志。debug: true
可启用更详细的日志记录。启动服务器时,可指定各种设置:
./bin/mcp-command-exec 服务器 [选项]
选项:
--config
, -c
:指定配置文件路径(默认: "config.yml")。通过 MCP 协议实现命令执行功能,以下是详细的 API 和使用方法。
{
"command_exec": {
"allowed_commands": [
"git",
"ls",
"mkdir",
"cd",
"npm",
"npx",
"python"
],
"default_working_dir": "/home/user",
"allowed_dirs": [
"/home/user/projects",
"/tmp"
],
"search_paths": [
"/usr/local/bin",
"/usr/bin"
],
"path_behavior": "prepend",
"environment": {
"HOME": "/home/user",
"GOPATH": "/home/user/go",
"GOMODCACHE": "/home/user/go/pkg/mod",
"LANG": "en_US.UTF-8"
}
}
}
通过配置文件中的 environment
字段设置全局环境变量。
在 allowed_commands
中指定允许执行的具体命令,例如:
"allowed_commands": [
"git",
"ls",
"mkdir",
"cd",
"npm",
"npx",
"python"
]
默认工作目录由 default_working_dir
指定,允许的目录列表在 allowed_dirs
中指定。
通过 path_behavior
字段控制命令路径搜索的行为,可选值包括:
prepend
:将自定义路径添加到系统 PATH 的前面。replace
:用自定义路径完全替换系统 PATH。append
:将自定义路径添加到系统 PATH 的末尾。mcp-command-exec/
├── main.go # 主程序入口
├── config.yml # 配置文件
└── Makefile # 构建脚本
make build # 编译可执行文件
make run # 运行服务器
make install # 安装到系统
本项目采用 MIT 许可证。
作者:cnosuke ( x.com/cnosuke )