MCP Tools for Cinemachine - Enhance your Unity projects with AI-powered Cinemachine camera tools using the MCP framework. Create and configure CinemachineCamera, CinemachineBrain, targets, lenses, noise and blends via natural language.
Two tools with reasonable descriptions but critical schema gaps. Tool names follow verb_noun pattern (cinemachine-add-extension, cinemachine-brain-ensure) but descriptions lack actionable detail on when to use each vs. the other. Input schemas visible but incomplete: GameObjectRef type is custom and undocumented; no output schemas provided. Parameters lack type constraints (extensionTypeName is free-form string with no enum of valid types). Error handling and recovery guidance absent. No evidence of idempotency markers or destructive operation warnings despite WRITE risk classification.
Add a `CinemachineExtension`-derived component (e.g. `CinemachineDeoccluder`, `CinemachineConfiner3D`, `CinemachineFollowZoom`, `CinemachineRecomposer`) to a `CinemachineCamera` GameObject, resolved by type name. The type is validated to derive from `CinemachineExtension`.
Ensure a `CinemachineBrain` exists on a `Camera`. Targets the referenced Camera GameObject, or `Camera.main` when none is given. Returns the brain + camera info. A CinemachineBrain is required for any CinemachineCamera to actually drive the rendering Camera.
Custom type 'GameObjectRef' used in parameters but never defined. LLM cannot infer what format to pass (string ID? object with fields?). Breaks tool usability.
No output schema documented for either tool. LLM cannot plan downstream calls or extract returned data (e.g., does brain-ensure return brain ID, camera reference, or both?). Breaks tool chaining.
extensionTypeName parameter accepts free-form string with no enum or validation guidance. Description mentions examples ('CinemachineDeoccluder', 'CinemachineConfiner3D') but does not constrain valid values. LLM will hallucinate invalid type names.
Descriptions lack recovery guidance. No mention of what happens on failure (e.g., 'If extension type not found, call list-available-extensions'). Agents cannot self-correct on errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Both tools marked WRITE risk but lack idempotent/destructive annotations. No indication whether repeated calls with same params are safe or cause duplicates/overwrites.