Token导航 LogoToken导航

MCP Server · AI代理

Cuba Exec

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

未说明官方级别未说明来源级核验工具 6
Python进程管理AI代理工具

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
LeandroPG19
提供方
LeandroPG19

工具数量

6

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Cuba Exec 属于AI代理类 MCP Server,公开资料标注 6 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 6 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

🚀 古巴执行官

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。

工具与能力

工具数量

6

资源数量

0

提示词数量

0

能力标签

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

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 6 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Cuba Exec

MCP World · 本页

6未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Cuba Exec 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Cuba Exec 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Cuba Exec 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Cuba Exec 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Cuba Exec 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP