Structured, constraint-aware visual generation and deterministic layout for AI agents.
Convert creative intent into platform-ready, brand-compliant visual assets without hallucinated typography.
The Core Problem
Most image-generation workflows fail for social and marketing graphics because a single natural-language prompt is expected to handle too many concerns at once:
VisualSpec runs as a native MCP server over stdio, enabling AI coding assistants (Cursor, Claude Code, Gemini CLI, and Antigravity IDE) to invoke visual tools directly:
# Launch MCP server over stdio
npx visual mcp
# or
npm run mcp
Available MCP Tools
visual_brief_to_spec: Convert natural language requests into valid VisualSpec YAML.
visual_validate_spec: Schema validation for specs.
visual_render: Deterministic layout & typography rendering (zero API key).
visual_generate: Full image model adapter + deterministic text overlay pipeline.
visual_check_qa: Inspect safe margins, line counts, dimensions, and invariants.
visual_repair: Automated diagnosis and localized typography/layout repair.
visual_list_resources: List supported platform packs and templates.
See the MCP Setup Guide for Cursor, Claude Desktop, and Antigravity IDE configuration snippets.
Output Bundle
Every generation creates a complete, reproducible debug bundle:
output/demo-launch/
├── final.png # Platform-ready asset
├── visual-spec.yaml # Original input specification
├── resolved-spec.yaml # Full spec with platform & template rules applied
├── generation-request.json # Exact prompt and negative parameters sent to model
├── qa-report.json # Deterministic and constraint QA verification results
└── metadata.json # Execution timestamps and file index
Structured, constraint-aware visual generation and deterministic layout for AI agents
The npm package @utkarshx27/visualspec receives a total of 20 weekly downloads. As such, @utkarshx27/visualspec popularity was classified as not popular.
We found that @utkarshx27/visualspec demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 1 open source maintainer collaborating on the project.