Token导航 LogoToken导航TokenDH.com
Cuba Exec logo
AI代理未说明官方级别未说明来源级核验

Cuba Exec

MCP Server

Cuba-Exec是一个为AI代理设计的先进命令行执行工具,提供安全策略引擎、进程生命周期管理、有限输出捕获等功能,适用于自动化开发和任务处理。

工具数

6

提示词数

0

GitHub Stars

2

资源数

0
Python进程管理AI代理工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

LeandroPG19

提供方

LeandroPG19

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🚀 古巴执行官

AI代理的高级shell命令执行 --具有安全策略引擎、进程生命周期管理、有界输出捕获、POSIX信号和令牌高效响应的模型上下文协议(MCP)服务器。

6个工具。零配置。POSIX原生。默认安全。

______________________________________________________________________

为什么选择古巴执行官?

现有的命令执行MCP是精简的包装 subprocess.run.Cuba Exec解决了真正的问题:

问题现有MCP古巴执行官
输出溢出(cat/dev/urandom)❌ OOM崩溃✅ 64KB已绑定
后台进程❌ 仅同步✅ 启动/状态/信号
杀死子进程(npm run-dev)❌ 孤儿✅ 进程组终止(setsid)
发送stdin(REPL、提示)❌ 不支持✅ 全标准输入管
POSIX信号(SIGTERM、SIGKILL)❌ 不支持✅ 5个信号+优雅关机
命令分配列表/块列表⚠️ 一些✅ Both+shell运算符验证
目录限制⚠️ 罕见✅ 路径解析反遍历
审计日志❌ 无✅ 结构化JSON到stderr
令牌高效输出❌ 详细JSON✅ TOON紧凑格式
空闲进程清理❌ 资源泄漏✅ 1小时TTL自动清理
叉式炸弹防护❌ 无✅ 信号量(20)
进程发现❌ 无✅ 列出所有管理流程

______________________________________________________________________

快速开始

1.先决条件

  • Python 3.14+
  • Linux/macOS (进程组需要POSIX)

2.安装

git clone https://github.com/LeandroPG19/cuba-exec.git
cd cuba-exec
uv venv && uv pip install -e .

3.配置您的AI编辑器

{
  "mcpServers": {
    "cuba-exec": {
      "command": "/path/to/cuba-exec/.venv/bin/python",
      "args": ["-m", "cuba_exec"]
    }
  }
}

无需任何环境变量。零配置文件。它只是正常工作——默认情况下会阻止25个危险命令。

______________________________________________________________________

6工具

run --执行并等待

run(command="ls -la", cwd="/tmp", timeout_ms=5000)
参数类型默认值说明
command字符串必需的Shell命令
cwdstring工作目录
envdictNone环境变量(与当前变量合并)
timeout_msint30000超时(毫秒)
max_outputint65536输出缓冲区大小(字节)
shellstring/bin/shShell可执行文件

答复:

[exit:0 time:12ms trunc:no]
total 156
drwxrwxrwt 22 root root 4096 Mar  8 2026 .
...

start --后台流程

start(command="npm run dev", cwd="/app")

答复:

[pid:12345 state:running]
Background process started. Use status(12345) to check output.

status --检查后台进程

status(pid=12345, tail_bytes=4096)

答复:

[pid:12345 state:running exit:- time:5432ms bytes:8192 trunc:no]
Server running on http://localhost:3000

send_signal --POSIX信号

send_signal(pid=12345, sig="SIGTERM")

SIGTERM触发器 优雅关闭:SIGTERM→ 等待5秒→ 西格尔。

有效信号: SIGTERM, SIGKILL, SIGINT, SIGHUP, SIGQUIT.

send_input --stdin管

send_input(pid=12345, stdin="print('hello')\n")

用于交互式进程(Python REPL、bash提示符等)。

list_processes --流程发现

list_processes()

答复:

[processes:2]
  pid:12345 state:running exit:- time:5432ms bytes:8192 cmd:npm run dev
  pid:12346 state:completed exit:0 time:1200ms bytes:256 cmd:echo done

______________________________________________________________________

🛡️ 安全策略引擎

Cuba Exec包含一个多层安全引擎,是所有MCP命令服务器中最全面的。

安全层

图层描述配置
命令允许列表只能执行列出的命令CUBA_EXEC_ALLOWED_COMMANDS
命令阻止列表危险命令总是被拒绝CUBA_EXEC_BLOCKED_COMMANDS
壳牌操作员验证在以下时间验证每个子命令 ;, &&, `\\, \`自动
目录限制限制 cwd 到允许的路径(反遍历)CUBA_EXEC_ALLOWED_DIRS
审计日志每次执行的结构化JSON日志CUBA_EXEC_AUDIT

默认行为(零配置)

开箱即用,Cuba Exec阻止25个危险命令:

rm, dd, mkfs, shutdown, reboot, halt, poweroff, init, systemctl,
passwd, chown, chmod, chgrp, mount, umount, fdisk, parted,
iptables, nft, ip6tables, crontab, at, useradd, userdel,
groupadd, groupdel, visudo

生产硬化

export CUBA_EXEC_ALLOWED_COMMANDS="ls,cat,echo,grep,find,head,tail,wc,git,python3,node,npm"
export CUBA_EXEC_BLOCKED_COMMANDS="rm,dd,mkfs,shutdown"
export CUBA_EXEC_ALLOWED_DIRS="/home/user/project,/tmp"
export CUBA_EXEC_AUDIT=1

壳牌操作员旁通预防

ls && rm -rf / --the rm 之后 && 也根据blocklist/allowlist进行验证。

已解析的运算符: ;, &&, ||, | --每个子命令都独立检查。

审核日志(stderr)

{"ts":"2026-03-08T15:00:00-0600","event":"exec","command":"ls -la","pid":12345,"exit":0,"ms":12,"ok":true}

______________________________________________________________________

输出格式(TOON)

所有响应都使用面向令牌的对象表示法——紧凑的标头,与冗长的JSON相比,每次工具调用可节省约200个令牌。

[exit:0 time:1543ms trunc:no]
...output...

错误代码

错误退出代码字段示例
未找到命令127ENOENTnonexistent_binary
权限被拒绝126EACCEScat /etc/shadow
超时-1TIMEOUTsleep 60 1秒超时
信号消失-9SIGKILL进程被信号终止
被政策封锁BLOCKEDrm -rf /

______________________________________________________________________

头+尾输出缓冲器——香农(1948)

命令输出已 极端情况下的高熵 (前序+结果/错误)和中间的低熵(进度条、重复日志)。

┌─────────────┬───────────────────────────────┬──────────────────────────────────────────┐
│  Head (25%) │        Truncated middle       │                Tail (75%)                │
│  ~16KB      │   [... N bytes truncated ...] │                ~48KB (ring buffer)       │
└─────────────┴───────────────────────────────┴──────────────────────────────────────────┘
  • 头部:缓冲区的前25%——捕获标头、版本信息
  • 尾部:最后75%通过环形缓冲区捕获结果、错误(最高熵)
  • 环形缓冲区:O(1)写,O(C)存储器(Cormen等人,CLRS第4版)
  • 默认:每个进程64KB。最大内存:20×64KB=1.28MB

______________________________________________________________________

POSIX过程组——IEEE标准1003.1

npm run dev 生成子进程。向父母发送SIGTERM不会杀死孩子。

Cuba Exec通过以下方式创建流程组 setsid:

asyncio.create_subprocess_exec(..., start_new_session=True)
os.killpg(os.getpgid(pid), signal.SIGTERM)  # Kills entire tree

优雅地关闭

SIGTERM → wait 5s → SIGKILL (if still alive)

两阶段关机(Stevens&Rago,2013):SIGTERM允许清理,SIGKILL是不可捕捉的。

______________________________________________________________________

配置

所有默认值都是开箱即用的。通过环境变量进行覆盖:

设置默认值环境变量
最大并发进程数20CUBA_EXEC_MAX_PROCS
输出缓冲区大小64KBCUBA_EXEC_BUFFER_SIZE
空闲过程TTL1小时CUBA_EXEC_TTL
关机超时5sCUBA_EXEC_SHUTDOWN_TIMEOUT
允许的命令--(全部)CUBA_EXEC_ALLOWED_COMMANDS
已阻止的命令25个默认值CUBA_EXEC_BLOCKED_COMMANDS
允许的目录--(全部)CUBA_EXEC_ALLOWED_DIRS
审核日志记录关闭CUBA_EXEC_AUDIT

______________________________________________________________________

建筑

cuba-exec/
├── pyproject.toml            # 1 dependency: fastmcp
└── src/
    └── cuba_exec/
        ├── __init__.py
        ├── __main__.py        # Entry point
        ├── server.py          # FastMCP 6 tool definitions (~105 LOC)
        ├── security.py        # SecurityPolicy engine (~135 LOC)
        ├── process_manager.py # Lifecycle FSM + signals + TTL (~520 LOC)
        └── output_buffer.py   # Head+Tail ring buffer (~110 LOC)

总计:约880 LOC。 FastMCP SDK处理协议样板。

依赖关系(共1个)

包装用途
fastmcpMCP协议服务器——来自类型提示的自动工具模式,Pydantic验证

其他都是Python stdlib: asyncio, os, signal, time, json, re, pathlib.

______________________________________________________________________

古巴生态系统的一部分

项目目的
古巴记忆持久记忆——知识图谱、Hebbian学习
古巴思考顺序推理——认知引擎、NLI、MCTS
古巴搜索网络搜索——研究、抓取、验证、文档查找
古巴执行官Shell执行——进程生命周期、安全性、有界输出、POSIX信号

一起: 记忆+推理+搜索+执行 --有能力的人工智能代理的四大支柱。

______________________________________________________________________

学术参考文献

#引文用于
1Yang等人(2024)。“SWE代理:代理计算机接口。”NeurIPSACI设计、输出截断、护栏
2香农(1948)。“传播的数学理论”信息论输出策略
3IEEE标准1003.1-2024。“POSIX.1:系统接口”进程组、集合ID、信号
4Cormen等人(2022)。《算法导论》第4版环形缓冲区O(1)分析
5迪杰斯特拉(1965)。“协作顺序进程”信号量并发限制
6史蒂文斯和拉戈(2013)。“APUE”第3版流程生命周期,优雅关机
7卡通(2025)。“面向令牌的对象表示法”令牌减少95-97%
8OWASP(2025)。“代理应用程序前10名”安全策略设计,允许列表/阻止列表

______________________________________________________________________

许可证

CC BY NC 4.0 --免费使用和修改, 非商业用途.

______________________________________________________________________

作者

莱安德罗·佩雷斯G。

目录标签

目录标签

Python进程管理AI代理工具命令行执行本地部署安全策略POSIX兼容

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP