Proc Repl Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Proc Repl Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Stateful subprocess sessions for MCP (Model Context Protocol).
中文文档: README.zh.md
This server is intentionally small: it keeps a subprocess alive across tool calls so you can interact with REPL-ish tools (python, r2/rizin, shells) and optionally drive full-screen TUI programs (vim/htop) via a tmux backend.
This MCP server is a local RCE capability. By default nothing is allowed unless you set:
PROC_MCP_ALLOW: comma-separated allowlist of commands (e.g. python3,r2,sh)Env overrides from clients are restricted by default (blocks PATH, LD_*, DYLD_*, etc). See PROC_MCP_ENV_ALLOW / PROC_MCP_ENV_DENY in proc_repl_mcp.py.
open_session, list_sessions, send, read, run, close_sessiontmux_open_session, tmux_list_sessions, tmux_send_keys, tmux_step,tmux_capture_pane, tmux_resize, tmux_close_session
If you have uv installed, you can run this without pre-installing the package:
{
"mcpServers": {
"proc-repl-mcp": {
"command": "uvx",
"args": ["-q", "-U", "proc-repl-mcp"],
"env": {
"PROC_MCP_ALLOW": "*"
}
}
}
}Notes:
-0/-q0 and run(until_nul=true) for reliable messageboundaries.
tmux_open_session then tmux_step tosend-keys and capture output in one roundtrip.
tmux_send_keys now sends each key as its own tmux operation and keeps ashort gap before Enter. Tune it with PROC_MCP_TMUX_KEY_DELAY_MS if a TUI needs slower submission timing.
PROC_MCP_ALLOW="*" enables everything (local RCE). Prefer a strict allowlistin real setups.
If uvx fails to connect to PyPI in your network, set a mirror index. You can either pass it via 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": "*"
}
}
}
}Or set it via env (recommended):
{
"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"
}
}
}
}If you haven't published to PyPI yet, you can run directly from GitHub (pin to a tag or commit):
{
"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": "*"
}
}
}
}python3 -m pip install proc-repl-mcp
proc-repl-mcpOr run without installing (uvx):
uvx proc-repl-mcpRun smoke tests locally:
python3 test_smoke.py
python3 test_full_smoke.py~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.