Mcp Claude Ai — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Claude Ai (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.
MCP-Claude-AI Server connects Cinema 4D to Claude via the Model Context Protocol, enabling prompt-assisted 3D scene manipulation from an AI assistant.
mcp_server_plugin.pyp.C4D_HOST and C4D_PORT (default: 127.0.0.1:5555).Clone the repository and enter the project directory:
git clone <repository-url>
cd cinema4d-mcpFrom the project root:
pip install -e .Or with uv:
uv syncchmod +x bin/cinema4d-mcp-wrapperc4d_plugin/mcp_server_plugin.pyp into Cinema 4D’s plugin folder:~/Library/Preferences/Maxon/Maxon Cinema 4D/plugins/%APPDATA%\Maxon\Maxon Cinema 4D\plugins\Edit the MCP client config so it runs the Cinema 4D MCP server.
Development (run from project):
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd an MCP server entry, for example:
"mcpServers": {
"cinema4d": {
"command": "python3",
"args": ["/path/to/cinema4d-mcp/main.py"]
}
}Replace /path/to/cinema4d-mcp with the actual path to this project.
Installed package (published / wrapper):
"mcpServers": {
"cinema4d": {
"command": "cinema4d-mcp-wrapper",
"args": []
}
}Restart Claude Desktop (or your MCP host) after changing the config.
Run the server directly to confirm it starts and connects to Cinema 4D:
python main.pyOr from the installed package:
cinema4d-mcp-wrapperExpected: startup logs and a message indicating connection to the Cinema 4D socket (or a clear failure if C4D is not running or the plugin is not started).
The repo includes a small test harness for predefined command sequences.
tests/mcp_test_harness.jsonl — JSONL file where each line is one MCP command with parameters.tests/mcp_test_harness_gui.py — Tkinter GUI to load a JSONL file and run commands in order.Run the GUI:
python tests/mcp_test_harness_gui.pyYou can select a JSONL file, run the sequence, and inspect responses from Cinema 4D. Useful for testing new commands, verifying the plugin after changes, and reproducing scenes for debugging.
~/Library/Logs/Claude/mcp*.log on macOS, or the equivalent on Windows). Use tail -f on the relevant log to watch output while reproducing an issue. cinema4d-mcp-wrappermcp module is not found, install it (and the project) in the same Python used by the config: pip install mcp
pip install -e . npx @modelcontextprotocol/inspector uv --directory /path/to/cinema4d-mcp run cinema4d-mcpReplace /path/to/cinema4d-mcp with your project path.
cinema4d-mcp/
├── .gitignore
├── .python-version
├── LICENSE
├── README.md
├── main.py
├── pyproject.toml
├── setup.py
├── uv.lock
├── bin/
│ └── cinema4d-mcp-wrapper
├── c4d_plugin/
│ └── mcp_server_plugin.pyp
├── src/
│ └── cinema4d_mcp/
│ ├── __init__.py
│ ├── config.py
│ ├── server.py
│ └── utils.py
└── tests/
├── test_server.py
├── mcp_test_harness.jsonl
└── mcp_test_harness_gui.pymain.py: Script entry point; adds paths and calls package main().src/cinema4d_mcp/server.py: FastMCP app, tool definitions, and TCP communication with the C4D plugin.src/cinema4d_mcp/config.py: C4D_HOST and C4D_PORT from environment.bin/cinema4d-mcp-wrapper: Shell script that finds a Python with mcp and runs cinema4d_mcp as a module.get_scene_info: Summary of the active Cinema 4D scene.list_objects: List scene objects with hierarchy.group_objects: Group selected objects under a new null.execute_python: Run custom Python code inside Cinema 4D.save_scene: Save the current project to disk.load_scene: Load a .c4d file.set_keyframe: Set a keyframe on an object property (position, rotation, etc.).add_primitive: Add a primitive (cube, sphere, cone, etc.).modify_object: Change transform or attributes of an existing object.create_abstract_shape: Create an organic, non-standard abstract shape.create_camera: Add a camera.animate_camera: Animate a camera along a path (linear or spline).create_light: Add a light (omni, spot, etc.).create_material: Create a standard Cinema 4D material.apply_material: Apply a material to an object.apply_shader: Generate and apply a stylized or procedural shader.validate_redshift_materials: Check Redshift material setup and connections. Redshift materials are not fully implemented.create_mograph_cloner: Add a MoGraph Cloner (linear, radial, grid, etc.).add_effector: Add a MoGraph Effector (e.g. Random, Plain).apply_mograph_fields: Add and link a MoGraph Field to objects.create_soft_body: Add a Soft Body tag.apply_dynamics: Apply Rigid or Soft Body physics.render_frame: Render a frame and save to disk. May fail at large resolutions (MemoryError: Bitmap Init failed).render_preview: Quick preview render; returns base64 image for the AI.snapshot_scene: Capture scene summary (objects plus preview image).| Cinema 4D Version | Python Version | Status | Notes |
|---|---|---|---|
| R21 / S22 | Python 2.7 | Not supported | Legacy API and Python version |
| R23 | Python 3.7 | Not planned | Not tested |
| S24 / R25 / S26 | Python 3.9 | Possible TBD | Needs testing and fallbacks |
| 2023.0 / 2023.1 | Python 3.9 | In progress | Fallback support for core features |
| 2023.2 | Python 3.10 | In progress | Aligns with testing base |
| 2024.0 | Python 3.11 | Supported | Verified |
| 2025.0+ | Python 3.11 | Fully supported | Primary development target |
Goals:
find_object_by_name updated to handle GUIDs (numeric string format), fix recursion issues, and behave correctly when doc.SearchObject fails.apply_material, create_mograph_cloner, add_effector, apply_mograph_fields, set_keyframe, and group_objects detect GUIDs in parameters (object_name, target, target_name, list items) and resolve them correctly.render_frame around doc.ExecutePasses fixed. snapshot_scene uses the correct base64 render path. Large render_frame still subject to memory limits.c4d.NilGuid fixed.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.