hwpx-mcp-server
PyPI
v5.1.0
Published by airmang — no publish provenance and no vendor-owned scope, so the publisher could not be verified. The repository link below is self-declared.
Every server starts at 100. These are the exact deductions the deterministic engine applied — each one reproducible, none of it an opinion or an LLM's guess:
| Points | What was found | Category |
|---|---|---|
| −2.1 | Package has no source repository MTC-SUP-011 | supply-chain |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind the deduction.
In the server's implementation (`tests/test_runtime_handler_bindings.py:246`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: dict(os.environ)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_runtime_handler_bindings.py
In the server's implementation (`tests/test_tool_contract.py:346`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: dict(os.environ)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_tool_contract.py
In the server's implementation (`tests/test_workflow_failure_matrix.py:32`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: dict(os.environ)
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_workflow_failure_matrix.py
In the server's implementation (`src/hwpx_mcp_server/hwp_converter.py:143`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server src/hwpx_mcp_server/hwp_converter.py
In the server's implementation (`src/hwpx_mcp_server/ops_services/preview_export.py:293`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server src/hwpx_mcp_server/ops_services/preview_export.py
In the server's implementation (`tests/test_fastmcp_runtime_compatibility.py:110`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_fastmcp_runtime_compatibility.py
In the server's implementation (`tests/test_render_contracts_leaf.py:17`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_render_contracts_leaf.py
In the server's implementation (`tests/test_runtime_handler_bindings.py:251`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_runtime_handler_bindings.py
In the server's implementation (`tests/test_tool_contract.py:343`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_tool_contract.py
In the server's implementation (`tests/test_workflow_failure_matrix.py:39`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.run(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server tests/test_workflow_failure_matrix.py
"hwpx-mcp-server" declares no repository URL, so its published artifact cannot be compared against reviewable source.
Fix: Prefer packages that link to public, reviewable source.
Location: package hwpx-mcp-server
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v5.1.0 latest |
A 98/100 | 11 | 1.5.0 | 2026-07-22 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan hwpx-mcp-server --online --registry pypi
Independent packages implementing the same tool, scanned with the same engine. Compare all 2 side by side →
Security scan results for the 199bio Mcp Limitless MCP server.
Security scan results for the 1mcp MCP server.
Security scan results for the 1stay MCP server.
Generates production-ready UI components from natural language, inspired by v0.
Security scan results for the 2slides MCP server.
Security scan results for the 3d MCP server.