子进程会话管理工具

proc-repl-mcp是一款用于保持子进程会话活动的工具,支持与REPL类工具(如Python、r2/rizin、shells)交互,并通过tmux后端驱动全屏TUI程序(如vim/htop)。

  • by SammySnake-d
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SammySnake-d/proc-repl-mcp

使用说明

proc repl mcp

MCP(模型上下文协议)的有状态子过程会话。

中文文档: README.zh.md

此服务器有意设计得较小:它使子流程在整个工具中保持活动状态 调用,以便您可以与REPL工具(python、r2/rizin、shell)进行交互 可选择通过tmux后端驱动全屏TUI程序(vim/htop)。

安全

此MCP服务器是本地RCE功能。默认情况下,除非 您设置:

  • PROC_MCP_ALLOW:逗号分隔的命令列表(例如。 python3,r2,sh)

默认情况下,客户端的环境覆盖受到限制(块 PATH, LD_*, DYLD_*等等)。看 PROC_MCP_ENV_ALLOW / PROC_MCP_ENV_DENY 在 proc_repl_mcp.py.

工具

  • open_session, list_sessions, send, read, run, close_session
  • tmux_open_session, tmux_list_sessions, tmux_send_keys, tmux_step, tmux_capture_pane, tmux_resize, tmux_close_session

光标MCP配置(uvx,无需手动安装)

如果你有 uv 安装后,您可以在不预安装软件包的情况下运行此程序:

{
  "mcpServers": {
    "proc-repl-mcp": {
      "command": "uvx",
      "args": ["-q", "-U", "proc-repl-mcp"],
      "env": {
        "PROC_MCP_ALLOW": "*"
      }
    }
  }
}

笔记:

  • 对于r2/利嗪,使用 -0/-q0 和 run(until_nul=true) 为了获得可靠的信息 边界。
  • 对于TUI,首选tmux工具: tmux_open_session 然后 tmux_step 到 在一次往返中发送密钥并捕获输出。
  • tmux_send_keys 现在将每个密钥作为自己的tmux操作发送,并保留一个 前短间隙 Enter.调整一下 PROC_MCP_TMUX_KEY_DELAY_MS 如果TUI 需要较慢的提交时间。
  • PROC_MCP_ALLOW="*" 启用所有功能(本地RCE)。更喜欢严格的对抗主义者 在实际设置中。

如果 uvx 无法连接到网络中的PyPI,请设置镜像索引。你可以 或者通过args传递它:

{
  "mcpServers": {
    "proc-repl-mcp": {
      "command": "uvx",
      "args": [
        "-q",
        "-U",
        "--default-index",
        "https://pypi.tuna.tsinghua.edu.cn/simple",
        "proc-repl-mcp"
      ],
      "env": {
        "PROC_MCP_ALLOW": "*"
      }
    }
  }
}

或者通过env进行设置(推荐):

{
  "mcpServers": {
    "proc-repl-mcp": {
      "command": "uvx",
      "args": ["-q", "-U", "proc-repl-mcp"],
      "env": {
        "PROC_MCP_ALLOW": "*",
        "UV_DEFAULT_INDEX": "https://pypi.tuna.tsinghua.edu.cn/simple"
      }
    }
  }
}

如果你还没有发布到PyPI,你可以直接从GitHub运行(pin到 标签或提交):

{
  "mcpServers": {
    "proc-repl-mcp": {
      "command": "uvx",
      "args": [
        "-q",
        "-U",
        "--from",
        "git+https://github.com/SammySnake-d/proc-repl-mcp.git@main",
        "proc-repl-mcp"
      ],
      "env": {
        "PROC_MCP_ALLOW": "*"
      }
    }
  }
}

安装(pip)

python3 -m pip install proc-repl-mcp
proc-repl-mcp

或者在不安装的情况下运行(uvx):

uvx proc-repl-mcp

开发

在本地运行烟雾测试:

python3 test_smoke.py
python3 test_full_smoke.py