preflight

https://github.com/AkynZH/pash-mcp-server

pash-mcp-server

Risky

Score 39 / 100 · 45 files read · 0 critical, 1 high, 12 medium, 5 low findings

Report 054c8690423b7fde · first scanned 2026-10-28 · scanned 3× · keyed to the exact package contents, so this link always shows this version

Listed in the Agent Census directory data

Subscores

credentials76
exfiltration70
execution28
injection100
obfuscation98
files100

100 is clean. Deductions come only from the cited findings below.

Findings

highThis package both touches credential material and sends data over the network (in different files) — review the flow before installing
(package) · line 1 · rule H1
mediumCode contacts static.modelcontextprotocol.io, which the documentation never mentions
(package) · line 1 · rule M3
static.modelcontextprotocol.io
mediumCan run shell commands from code
clean_ports.py · line 27 · rule M1
y: result = subprocess.run( ['taskkill', '/F', '/PID', str(pid)], capture_output=True,
mediumCan run shell commands from code
scripts/run_demo_benchmarks.py · line 21 · rule M1
process = subprocess.Popen( [sys.executable, str(SERVER_SCRIPT)], stdin=subprocess.PIPE, stdout=
mediumCan run shell commands from code
scripts/test_autonomy.py · line 41 · rule M1
ass""" result = subprocess.run( [sys.executable, "-m", "pytest", "tests/", "-v"], cwd=Path(__file__).parent.pa
mediumEnumerates the full process environment (all variables, not one named key)
scripts/test_odysseus_connection.py · line 27 · rule M2
OT), env={**dict(os.environ), "PYTHONPATH": str(PROJECT_ROOT)} ) try: # 1. Отправляем MCP Initialize запр
mediumCan run shell commands from code
scripts/test_odysseus_connection.py · line 20 · rule M1
tdio) process = subprocess.Popen( [sys.executable, str(SERVER_SCRIPT)], stdin=subprocess.PIPE, stdout=
mediumCan run shell commands from code
server.py · line 32 · rule M1
в: { manifest_name: subprocess.Popen } active_processes = {} def get_or_start_process(manifest: dict): """Возвращает запущен
mediumCan run shell commands from code
src/cognitive_loop.py · line 72 · rule M1
stdin=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE, env={**os.environ, "PYTHONPATH": str(Path(__f
mediumCan run shell commands from code
src/router.py · line 38 · rule M1
, Any]) -> Optional[subprocess.Popen]: """ Запускает MCP-сервер на основе описания в манифесте. Ожидает ключ 'command'
mediumCan run shell commands from code
src/sse_server.py · line 34 · rule M1
t": int, "process": subprocess.Popen, "host": str} self.registry: Dict[str, Dict[str, Any]] = {} self._default_wor
mediumCan run shell commands from code
test_connect.py · line 9 · rule M1
70, 8765, 8769...") subprocess.run([sys.executable, "clean_ports.py"], cwd="D:\\Felix\\projects\\felix-mcp-standalone", stdout=sub
mediumEnumerates the full process environment (all variables, not one named key)
tests/test_standalone_startup.py · line 22 · rule M2
with mock.patch.dict(os.environ, {"MCP_ENGINES_DIR": f"{tmpdir}/engines"}): try: # Импортируем кон
low2 binary file(s) were not parsed (static text analysis only)
(package) · line 1 · rule L3
2 binary files
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/cognitive_loop.py · line 30 · rule L1
nd retry.""" if os.environ.get("MOCK_LLM"): return schema.model_validate_json(os.environ["MOCK_LLM"]) url = "
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/sse_server.py · line 36 · rule L1
default_workspace = os.environ.get("FELIX_WORKSPACE", os.getcwd()) def find_free_port(self) -> int: """Находит свобод
lowReads named environment variables (normal for API keys; listed in the permission summary)
test_cyborg.py · line 36 · rule L1
моки через环境变量 os.environ["MOCK_LLM"] = mock_plan # Это сработает только для первого вызова, но для простоты теста переопреде
lowReads named environment variables (normal for API keys; listed in the permission summary)
tests/test_standalone_startup.py · line 22 · rule L1
ith mock.patch.dict(os.environ, {"MCP_ENGINES_DIR": f"{tmpdir}/engines"}): try: # Импортируем конфигур

Permission surface

Network endpoints
example.comgithub.comopenrouter.aistatic.modelcontextprotocol.io
Environment read
ARCHITECT_MODELFELIX_WORKSPACEJUDGE_MODELMOCK_LLMOPENROUTER_API_KEY
Shell execution
yes — code or scripts can run shell commands
Install hooks
none
Credential material
Enumerates the full process environment (all variables, not one named key)
Reads named environment variables (normal for API keys; listed in the permission summary)

Provenance

Source
GitHub
Repository
AkynZH/pash-mcp-server
Owner
AkynZH
Stars
1
Forks
0
Repo created
2026-06-11
Last push
2026-07-09
License
MIT

Watch this package

Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.

Share this report: https://preflight.orbitaldeskllc.com/r/054c8690423b7fde