ppt-mcp-server

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The skill is clearly for generating PowerPoint files, but it does so by letting the agent run unrestricted Python code on your computer.

Install this only if you are comfortable letting the agent run Python code locally. Prefer using it in a sandboxed folder, VM, or container, and review the generated Python before allowing execution.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A malicious prompt, compromised context, or model mistake could run arbitrary Python with the user's local permissions, including reading or writing files, making network calls, or hanging the server.

Why it was flagged

The MCP tool executes agent-supplied Python with full built-ins and no sandbox or import allowlist.

Skill content
"__builtins__": __builtins__, ... exec(processed_code, exec_globals)
Recommendation

Use only in an isolated environment; require explicit review/approval before execution; sandbox the process; restrict built-ins/imports; and add timeouts and resource limits.

What this means

The agent may run generated Python code immediately during normal PPT requests, increasing the chance that unsafe or unintended code executes before the user can inspect it.

Why it was flagged

The skill directs the agent to automatically execute and retry generated code, without requiring a user confirmation step for a high-impact tool.

Skill content
生成代码后,必须调用 execute_pptx_code 执行;执行失败则修复代码重新执行
Recommendation

Change the workflow so generated code is shown to the user first and execution requires explicit confirmation, especially for any imports, filesystem access, or non-PPT operations.

What this means

A crafted filename could cause the save path to point outside the intended output folder, creating or overwriting files in unexpected locations.

Why it was flagged

The filename parameter is documented as an output filename, but it is not normalized to a basename after user/agent input, so absolute paths or ../ segments can bypass the intended output directory.

Skill content
if filename:
            pure_name = filename if filename.endswith('.pptx') else filename + '.pptx'
        new_path = os.path.join(OUTPUT_DIR, pure_name)
Recommendation

Always reduce filename to a safe basename, reject absolute paths and path traversal segments, and verify the resolved path remains inside OUTPUT_DIR before saving.

What this means

Future installs may resolve to different package versions than those reviewed here.

Why it was flagged

Dependencies are expected for this Python MCP tool, but they are version ranges rather than pinned versions.

Skill content
mcp>=1.6.0
python-pptx>=0.6.21
Recommendation

Pin dependency versions or provide a lockfile for more reproducible installs.