代码执行服务器

一个基于Agent Zero的代码执行工具,为AI代理提供终端命令和Python代码执行能力的MCP服务器。

  • by TerminallyLazy
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 TerminallyLazy/A0-code-exec-MCP

使用说明

代码执行MCP服务器

一个模型上下文协议(MCP)服务器,用于暴露(或提供访问) “Agent Zero's”翻译成中文是“零号特工的”或“零号代理的”。具体翻译可能根据上下文有所调整,但基本传达了原词的意思 经过实战检验的代码执行能力。

这个MCP服务器允许任何AI代理(如Claude、GPT-4等)通过Agent Zero的成熟实现,在主机系统上执行终端命令和Python代码。

特点/特性

  • 执行终端命令以完整的会话持久性运行Shell命令
  • 执行Python代码通过IPython运行Python代码并进行会话管理
  • 多个会话/多次会议保持独立的执行上下文
  • 智能输出处理自动提示检测、超时管理以及对话检测
  • 跨平台在Linux、macOS和Windows上均可运行(Windows版为实验性)

安装

# Clone or download this package
cd code-execution-mcp

# Install dependencies
pip install -e .

# For Windows support
pip install -e ".[windows]"

配置

MCP服务器可以通过环境变量进行配置:

# Shell executable (default: /bin/bash on Unix, cmd.exe on Windows)
export CODE_EXEC_EXECUTABLE=/bin/bash

# Init commands (semicolon-separated, run when creating new sessions)
export CODE_EXEC_INIT_COMMANDS="source /path/to/venv/bin/activate;export PATH=\$PATH:/custom/bin"

# Timeout configuration (in seconds)
export CODE_EXEC_FIRST_OUTPUT_TIMEOUT=30      # Wait for first output
export CODE_EXEC_BETWEEN_OUTPUT_TIMEOUT=15    # Wait between output chunks
export CODE_EXEC_DIALOG_TIMEOUT=5             # Detect dialog prompts
export CODE_EXEC_MAX_EXEC_TIMEOUT=180         # Maximum execution time

MCP 客户端配置

添加到你的Claude桌面配置中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):

{
  "mcpServers": {
    "code-execution": {
      "command": "python",
      "args": ["/Users/lazy/Projects/A0-code-tool-MCP/code-execution-mcp/main.py"],
      "env": {
        "CODE_EXEC_EXECUTABLE": "/bin/bash",
        "CODE_EXEC_INIT_COMMANDS": "source /Users/lazy/Projects/A0-code-tool-MCP/code-execution-mcp/.venv/bin/activate"
      }
    }
  }
}

可用工具

执行终端

在指定的会话中执行终端命令。

参数:

  • command (字符串,必需): 要执行的shell命令
  • session (整数,可选):会话编号(默认:0)

示例:

await execute_terminal(command="ls -la", session=0)

执行Python(代码)

在指定的会话中通过IPython执行Python代码。

参数:

  • code (字符串,必需):要执行的Python代码
  • session (整数,可选):会话编号(默认:0)

示例:

await execute_python(code="import sys; print(sys.version)", session=0)

获取输出

从终端会话中获取累积输出。

参数:

  • session (整数,可选):会话编号(默认:0)

示例:

await get_output(session=0)

重置终端

重置终端会话,即关闭并重新打开它。

参数:

  • session (整数,可选):会话编号(默认:0)
  • reason (字符串,可选):重置的原因

示例:

await reset_terminal(session=0, reason="Environment corrupted")

会话管理

会话允许维护独立的执行上下文:

  • 会话0:用于通用命令的默认会话
  • 会话1+:为隔离环境提供的额外会话

每次会议保持:

  • Shell 状态(环境变量、工作目录)
  • 命令历史
  • 输出缓冲区

虚拟环境考量因素

重要提示: 当MCP服务器从虚拟环境中启动时,shell会话可能不会自动继承虚拟环境的激活状态。

解决方案: 使用初始化命令来显式激活您的虚拟环境:

{
  "env": {
    "CODE_EXEC_INIT_COMMANDS": "source /path/to/venv/bin/activate"
  }
}

平台支持

  • Linux经过全面测试并提供支持
  • **macOS(发音为“Mac OS”,全称为“Macintosh Operating System”,即苹果电脑操作系统)**经过全面测试并提供支持
  • Windows通过pywinpty提供实验支持
    • 安装方式: pip install -e ".[windows]"
    • 使用 cmd.exe 或者 powershell.exe 作为可执行文件
    • 某些功能的行为可能会有所不同

建筑

这个MCP服务器是 最小包装/最简封装 围绕Agent Zero的代码执行工具:

  • 保持Agent Zero经过实战检验的逻辑
  • 不重写或重新实现
  • 使用Agent Zero的辅助模块,保持不变:
    • tty_session.py - TTY 会话管理
    • shell_local.py - 本地Shell界面
    • print_style.py - 输出样式和日志记录
    • strings.py - 字符串处理工具

安全

警告: 此MCP服务器允许在主机系统上执行完整代码。安全性由MCP客户端负责。

仅在受信任的人工智能代理和受控环境中使用。

许可证

麻省理工学院许可证

这个项目封装并重用了来自 零号特工 (版权所有 (c) 2025 Agent Zero, s.r.o),本软件根据MIT许可证授权。

请参阅LICENSE文件以获取完整的许可文本和归属详情。

功劳/学分/报酬

基于Agent Zero已验证的代码执行实现构建。

这台MCP服务器保存并重用了Agent Zero经过实战检验的代码:

  • 核心执行逻辑来自 code_execution_tool.py
  • 辅助模块: tty_session.py, shell_local.py, print_style.py, strings.py
  • 所有系统消息提示

所有关于稳健代码执行实现的功劳都归功于 零号特工 团队。

用途 FastMCP 用于MCP协议处理。