Design-first MCP for coding agents that improves websites with screenshot-grounded iteration.
Coding agents can get a page functional. Frontend Design Loop makes it materially better with screenshot-grounded iteration and proof artifacts.
Use it when the base model got the page working but the result is still generic, flat, rough, or visibly under-designed. The main design workflow stays on one main provider and model lane by default, so multi-model routing is opt-in instead of the default story.
Install the current public build from PyPI:
pipx install frontend-design-loop-mcp
Set up every detected supported client:
frontend-design-loop-setup --install-all-detected-clients
Real MCP call example:
frontend_design_loop_design(
repo_path="/absolute/path/to/site",
goal="make the homepage look materially more premium without changing the information architecture",
provider="gemini_cli",
model="gemini-3.1-pro-preview",
preview_command="python3 -m http.server {port}",
preview_url="http://127.0.0.1:{port}/index.html"
)
This repo now also ships an additive MCP entrypoint for agent-owned frontend loops:
frontend-design-toolkit-mcpPYTHONPATH=src .venv/bin/python -m design_toolkit.serverThat variant is intentionally narrow:
get_playbookbuild_contextrun_gatespreview_startcapture_screenshotspreview_stopIt does not hide vision scoring, creativity judging, or patch generation behind MCP. The host agent owns planning, edits, screenshot review, scoring, iteration, and winner selection directly.
See test-prompt-codex.md for the end-to-end Codex exercise prompt.
frontend_design_loop_design is the main workflow:
frontend_design_loop_eval is the proof workflow:
This is the wedge:
Official MCP Registry metadata is tracked in server.json.
The public proof set uses owned/generated GA SMB previews plus the ACA full-page before/after.
![]() 11 Budget Movers Augusta |
![]() 13 Peachtree Flooring Atlanta |
![]() 19 TNT Cabinets Columbus |
![]() 21 Henry Plumbing Savannah |
![]() 22 Silverback Electric Savannah |
![]() 25 Robins Body & Paint Warner Robins |
![]() 34 Proof Roofing Services Gainesville |
![]() 45 Metro Storage Columbus |
![]() 47 Miller Light Construction Commerce |
Before: early ACA full homepage.

After: rebuilt ACA homepage with a stronger hero, cleaner sequencing, and a materially better full-page result.

See the proof notes in the case studies index.
frontend_design_loop_designUse it when:
Key defaults:
provider + model lane by defaultplanning_mode="single"vision_mode="on"section_creativity_mode="on"frontend_design_loop_evalUse it when:
Returned proof fields include:
deterministic_passedvision_pendingvision_scoredfinal_passrun_dircandidate_dirscreenshot_filespatchfrontend_design_loop_solvefrontend_design_loop_solve still exists for advanced unattended workflows, but it is not the main public story.
pipx install frontend-design-loop-mcp
frontend-design-loop-setup --install-all-detected-clients
GitHub install remains the fallback:
pipx install git+https://github.com/alexalexalex222/frontend-design-loop-mcp.git
frontend-design-loop-setup --install-all-detected-clients
git clone https://github.com/alexalexalex222/frontend-design-loop-mcp.git
cd frontend-design-loop-mcp
./scripts/setup.sh
The local setup path:
.venvIf you want the repo-local environment without auto-installing client entries:
FDL_SKIP_CLIENT_INSTALL=1 ./scripts/setup.sh
Bulk installer:
frontend-design-loop-setup --install-all-detected-clients
Targeted installers:
frontend-design-loop-setup --install-claude --scope user
frontend-design-loop-setup --install-codex
frontend-design-loop-setup --install-gemini
frontend-design-loop-setup --install-droid
frontend-design-loop-setup --install-opencode
Config printers:
frontend-design-loop-setup --print-claude-config
frontend-design-loop-setup --print-codex-config
frontend-design-loop-setup --print-gemini-config
frontend-design-loop-setup --print-droid-config
frontend-design-loop-setup --print-opencode-config
bash -c, python -c, and node -e require unsafe_shell_commands=truepreview_url must match the launched local preview origin and port by defaultunsafe_external_preview=true.env*, .git/, .aws/, .ssh/, .config/gcloud/, .docker/, .kube/, token-named files, and service-account-style JSONClient-side vision is the default proof path for frontend_design_loop_eval, so the host agent can judge the screenshots without provider credentials.
Proxy-only MiniMax vision lanes are explicitly treated as structural-only review:
vision_review_mode="proxy_structural"Offline preflight:
PYTHONPATH=src .venv/bin/python scripts/preflight_check.py
stdio smoke:
PYTHONPATH=src .venv/bin/python scripts/smoke_mcp_stdio.py
Built-in doctor:
frontend-design-loop-setup --doctor
frontend-design-loop-setup --doctor --smoke
Current public install path:
pipx install frontend-design-loop-mcp
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx frontend-design-loop-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-alexalexalex222-frontend-design-loop-mcp": {
"command": "uvx",
"args": [
"frontend-design-loop-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceFrontend Design Loop MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.