io.github.alexalexalex222/frontend-design-loop-mcp
Frontend Design Loop MCP enables coding agents to improve web page designs through screenshot-grounded iteration and proof artifacts, making pages materially better.
README
Frontend Design Loop MCP
<!-- mcp-name: io.github.alexalexalex222/frontend-design-loop-mcp -->
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.
Quick Start
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"
)
Agent-Owned Toolkit Variant
This repo now also ships an additive MCP entrypoint for agent-owned frontend loops:
- console script:
frontend-design-toolkit-mcp - module fallback:
PYTHONPATH=src .venv/bin/python -m design_toolkit.server
That variant is intentionally narrow:
get_playbookbuild_contextrun_gatespreview_startcapture_screenshotspreview_stop
It 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.
What The MCP Does
frontend_design_loop_design is the main workflow:
- the host agent points the MCP at a real repo plus a concrete design goal
- the MCP boots a local preview, captures screenshots, and iterates against the rendered result
- the same main provider and model lane is used by default across planning, generation, and vision unless you explicitly override it
- the MCP returns the winning patch plus screenshots and run artifacts
frontend_design_loop_eval is the proof workflow:
- use it when the host agent already has the patch
- the MCP applies the patch in an isolated worktree, runs deterministic checks, captures screenshots, and returns proof artifacts
This is the wedge:
- coding agents can already get pages working
- this MCP helps them make pages materially better
- screenshot-grounded iteration plus proof artifacts is the differentiator
Official MCP Registry metadata is tracked in server.json.
Proof Gallery
The public proof set uses owned/generated GA SMB previews plus the ACA full-page before/after.
Selected Hero / Top Crops
<table> <tr> <td align="center"><img src="docs/images/11-budget-movers-augusta_hero_top_crop.png" alt="11 Budget Movers Augusta hero top crop"><br><sub>11 Budget Movers Augusta</sub></td> <td align="center"><img src="docs/images/13-peachtree-flooring-atlanta_hero_top_crop.png" alt="13 Peachtree Flooring Atlanta hero top crop"><br><sub>13 Peachtree Flooring Atlanta</sub></td> <td align="center"><img src="docs/images/19-tnt-cabinets-columbus_hero_top_crop.png" alt="19 TNT Cabinets Columbus hero top crop"><br><sub>19 TNT Cabinets Columbus</sub></td> </tr> <tr> <td align="center"><img src="docs/images/21-henry-plumbing-savannah_hero_top_crop.png" alt="21 Henry Plumbing Savannah hero top crop"><br><sub>21 Henry Plumbing Savannah</sub></td> <td align="center"><img src="docs/images/22-silverback-electric-savannah_hero_top_crop.png" alt="22 Silverback Electric Savannah hero top crop"><br><sub>22 Silverback Electric Savannah</sub></td> <td align="center"><img src="docs/images/25-robins-body-paint-warner-robins_hero_top_crop.png" alt="25 Robins Body and Paint Warner Robins hero top crop"><br><sub>25 Robins Body & Paint Warner Robins</sub></td> </tr> <tr> <td align="center"><img src="docs/images/34-proof-roofing-services-gainesville_hero_top_crop.png" alt="34 Proof Roofing Services Gainesville hero top crop"><br><sub>34 Proof Roofing Services Gainesville</sub></td> <td align="center"><img src="docs/images/45-metro-storage-columbus_hero_top_crop.png" alt="45 Metro Storage Columbus hero top crop"><br><sub>45 Metro Storage Columbus</sub></td> <td align="center"><img src="docs/images/47-miller-light-construction-commerce_hero_top_crop.png" alt="47 Miller Light Construction Commerce hero top crop"><br><sub>47 Miller Light Construction Commerce</sub></td> </tr> </table>
ACA Full-Page Before / After
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.
How It Works In Practice
- Point the MCP at a real repo and give it a concrete design goal.
- It creates an isolated worktree, boots a preview, and captures rendered screenshots.
- It iterates against the actual rendered page instead of only raw code.
- It returns the winning patch, screenshot proof, and run artifacts so the host agent can judge the result.
Workflow Summary
frontend_design_loop_design
Use it when:
- the page is functional but weak
- the section structure is there but the design is not
- you want the MCP to improve the page instead of only judging it
Key defaults:
- one main
provider+modellane by default planning_mode="single"vision_mode="on"section_creativity_mode="on"- split planner or vision lanes only happen when explicitly requested
frontend_design_loop_eval
Use it when:
- the host agent already has the patch
- you want deterministic checks, screenshots, and artifact capture
- you want the host agent to judge the result from returned screenshots
Returned proof fields include:
deterministic_passedvision_pendingvision_scoredfinal_passrun_dircandidate_dirscreenshot_filespatch
frontend_design_loop_solve
frontend_design_loop_solve still exists for advanced unattended workflows, but it is not the main public story.
Install And Setup
Public install now
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
Local clone path
git clone https://github.com/alexalexalex222/frontend-design-loop-mcp.git
cd frontend-design-loop-mcp
./scripts/setup.sh
The local setup path:
- creates
.venv - installs the package
- installs Playwright Chromium
- installs detected client entries when supported clients are present
- runs the built-in doctor
- runs the stdio smoke test
If you want the repo-local environment without auto-installing client entries:
FDL_SKIP_CLIENT_INSTALL=1 ./scripts/setup.sh
Setup helpers
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
Safety Defaults
- custom commands are parsed as shell-free argv by default
- shell syntax, substitutions, and inline interpreter execution like
bash -c,python -c, andnode -erequireunsafe_shell_commands=true preview_urlmust match the launched local preview origin and port by default- external preview fetches require
unsafe_external_preview=true - preview readiness checks reject cross-origin redirects, and browser screenshots block cross-origin subresources by default
- auto-context skips common secret-bearing paths such as
.env*,.git/,.aws/,.ssh/,.config/gcloud/,.docker/,.kube/, token-named files, and service-account-style JSON - native CLI providers inherit a minimal allowlisted environment instead of the full host shell environment
- shared worktree reuse directories are off by default
Client-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"- they do not count as full automated visual scoring
Verification
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
Docs
Distribution State
Current public install path:
pipx install frontend-design-loop-mcp
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。