Command Executor

Command Executor

🚀 MCP 命令执行器

MCP 命令执行器是一个基于 MCP 协议实现的服务器,它允许安全地执行系统命令。该服务器通过仅执行注册在允许列表中的命令,来保障系统的安全性。

🚀 快速开始

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 工具规范

命令执行器

通过 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 的末尾。

安全措施

  1. 命令过滤:仅允许指定的命令通过。
  2. 目录限制:所有命令必须在允许的目录中执行。
  3. 环境隔离:每个命令运行在一个沙盒环境中,防止相互干扰。

开发信息

项目结构

mcp-command-exec/
├── main.go           # 主程序入口
├── config.yml       # 配置文件
└── Makefile         # 构建脚本

编译与运行

make build     # 编译可执行文件
make run      # 运行服务器
make install  # 安装到系统

📄 许可证

本项目采用 MIT 许可证。

作者:cnosuke ( x.com/cnosuke )

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-29 19:09

相似服务问题