Stop burning credits on broken AI video: check every keyframe and clip before you pay for the next render (MCP server + Python SDK).
SmartTokenGuard has 6 tools with mixed quality. Naming is clear and action-oriented (stg_inspect_render, stg_qa_gate, stg_spend_report). Descriptions are present and substantive (avg ~150 chars), exceeding the 10-char minimum. However, schemas are incomplete: stg_pricing and stg_account have empty input objects ({}), violating the requirement that every parameter have a description. stg_inspect_render has good schema detail with enums and constraints, but stg_detect_events and stg_spend_report lack parameter descriptions. Error handling is present but generic (ToolError wrapping). No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Output schemas are documented in descriptions but not formally in JSON Schema. Composition is sound, tools are single-purpose and chainable (inspect → qa_gate → spend_report).
Check the configured license: who it is licensed to, checks used and checks remaining.
Frames and times of impacts, flashes and cuts in a video — for placing sound effects in an editor. Uses 1 check.
Measure a rendered image or video (local path, max 32 MB / 60 s / 1080p): blur, exposure, black and frozen frames, flicker, hard cuts, impacts and flashes, and colour/lighting drift against `reference_image`. Uses 1 check. Returns a JSON report plus review frames — look at them for anatomy/identity defects, then call stg_qa_gate.
Plans, prices and checkout links for SmartTokenGuard. No license needed.
Decide what to do with a render: PASS / NEEDS_VISUAL_REVIEW / RETRY_SAME_MODEL / SWITCH_TO_FALLBACK / HALT / HALT_BUDGET, with concrete fixes (negative-prompt terms, lower motion, new seed). technical_issues: the `issues` array from stg_inspect_render. semantic_defects: what you saw in the review frames ("other" + notes if unlisted). Records the attempt and its cost in a local project ledger. Free (needs a license, uses no checks).
stg_pricing and stg_account have empty input schemas ({}). These tools should either document their lack of parameters explicitly or add optional query parameters (e.g., format, include_details).
stg_detect_events and stg_spend_report lack parameter descriptions. video_path and project are named but not described, LLMs cannot infer what format or constraints apply. Add descriptions explaining expected input format and any constraints.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles. stg_qa_gate is marked WRITE in metadata but not in schema. stg_pricing, stg_account, stg_inspect_render, stg_detect_events, stg_spend_report are READ_ONLY but lack readOnlyHint annotation. Add tool annotations to guide agent behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
What a project spent on renders, attempts per shot, first-try pass rate and failed renders caught. Local only.
Error handling is generic. _fail() wraps STGError into ToolError with code + message, but does not provide recovery guidance. Per pattern:recovery-guide, errors should suggest next steps (e.g., 'License required: run stg_pricing to show plans' is good, but other errors lack actionable guidance).
Output schemas are documented in tool descriptions (e.g., 'Returns a JSON report plus review frames') but not formally declared in JSON Schema. stg_inspect_render returns CallToolResult with structured_content, but other tools return Dict[str, Any] without schema documentation. Formalize output schemas.