Aceto
Allows adding DaisyUI v5 component library to a project, enabling use of DaisyUI components with Tailwind CSS out of the box.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Acetoadd a hero section with a heading and button"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aceto
A local dev server with a browser overlay and MCP interface for building HTML mockups together with an AI agent.
Not a drawing tool, not a visual editor. Instead, a feedback loop between you and an agent:
Tell the agent what you want
The agent generates/modifies real HTML + Tailwind
See the result live in your browser
Point at an element and say "change this"
The agent understands which element you mean and modifies it
Why Aceto
Token-efficient: The agent doesn't need to read and parse the full HTML to understand what you mean. You point at an element in the browser, the agent gets a precise selector. Write tools use the current selection by default — one tool call, no roundtrip.
Real HTML: No abstraction layer, no component model. The output is a plain HTML file you can read with
catand send by email.Live feedback loop: DOM morphing keeps scroll position and selection state. You see changes instantly without page reload flicker.
Related MCP server: MCP Pointer
Features
Hover Highlighting
User moves the mouse over any element — a blue outline appears with the element's tag and classes.

Element Selection
User clicks an element to select it (pink outline). The breadcrumb bar at the bottom shows the full DOM path. Scroll wheel navigates up/down the tree (parent/child).

Agent Highlight
The agent highlights elements in cyan to communicate visually — e.g. to ask "Do you mean this one?":
highlight_element("section#pricing > div:nth-of-type(2)", {
label: "Make this card wider?",
style: "pulse"
})Both selections (pink = user, cyan = agent) can be visible simultaneously.

Inline Editing
User double-clicks any editable element to modify it directly in the browser:
Text elements (headings, paragraphs, links, etc.) — edit the text content. Enter to save, Escape to cancel.
Inputs — edit the value attribute. Enter to save, Escape to cancel.
Textareas — edit the value. Ctrl+Enter to save, Escape to cancel, Enter adds a newline.
Checkboxes / Radio buttons — double-click to enter edit mode, Space to toggle, Enter to save, Escape to cancel.

CSS Class Editor
User presses c on a selected element to edit its Tailwind classes inline. Enter to apply, Escape to cancel.

Table Controls
User selects a table cell — a floating toolbar appears with +Row, −Row, +Col, −Col controls.

DaisyUI Support
Add component libraries via the CLI — DaisyUI components work out of the box with Tailwind v4:
aceto add daisyui
More Features
Content shortcuts — type
[]or[x]in a cell to insert a checkboxSlash commands — type
/listin an empty element to open a modal for creating<ul>/<ol>lists. Edit badges appear on existing lists for quick re-editing via double-click.Element defaults — define default classes for generated elements via
aceto.defaults.jsonPaste images — Ctrl+V with selection inserts instantly; without selection, stages the image for agent-driven placement
Asset picker — press
ato browse and reuse previously pasted images from the assets folderYank/Paste — press
yto copy a selected element,pto paste it after another selectionScreenshots — the agent captures full-page or element-level screenshots via
get_screenshot()Live reload — DOM morphing keeps scroll position and selection state, no flickering
What Aceto Does Not Do
No editor — you don't edit anything yourself, you steer the agent
No build system — an HTML file you can read with
catNo framework — Tailwind v4 via CDN, optionally DaisyUI/Flowbite
Keyboard Shortcuts (Select Mode)
Key | Action |
Click | Select element |
Double-click | Inline edit (text, input value, checkbox toggle) |
Scroll wheel | Navigate depth (parent/child) |
Tab / Shift+Tab | Next/previous cell (during table editing) |
| Edit CSS classes of selected element |
| Yank (copy) selected element |
| Paste yanked element after selection |
| Undo |
| Redo |
| Insert empty div after selection |
| Open asset picker |
Del | Delete selected element |
Space | Toggle checkbox/radio (during edit mode) |
Esc | Close modal / deselect / cancel edit |
| Toggle select/preview mode (clears selection) |
Ctrl+V | Paste image |
Installation
bun install -g github:alexzeitler/acetoRequires Bun runtime.
MCP Setup
Once aceto dev is running, add it as an MCP server to Claude Code:
claude mcp add aceto -s user --transport http http://localhost:3000/mcpGetting Started
# Create a new project
mkdir my-mockup && cd my-mockup
aceto init
# Start the dev server
aceto dev
# Export for production
aceto export --productionCLI
aceto init # Create index.html + CLAUDE.md + aceto.md
aceto init --eject # Write default instructions into aceto.md
aceto init --preset daisyui # Create project with DaisyUI v5 pre-installed
aceto dev # Start dev server + MCP server
aceto dev about.html # Start with a specific page
aceto dev --port 3001 # Custom port
aceto new about # Create a new HTML page
aceto new dashboard/settings -l daisyui # New page with DaisyUI
aceto add daisyui # Add DaisyUI v5 to an existing project
aceto export # Export HTML with cleanup to dist/
aceto export --production # Export with Tailwind CSS buildAgent Instructions
On aceto init, a minimal CLAUDE.md is created that tells the agent to call get_instructions() via MCP. This tool returns the project's aceto.md if it has content, or the built-in default instructions.
To customize the instructions, run aceto init --eject to write the defaults into aceto.md, then edit to your needs.
Element Defaults
Create an aceto.defaults.json in your project root to define default classes for generated elements:
{
"checkbox": "h-4 w-4",
"img": "max-w-full h-auto rounded"
}checkbox — applied to checkboxes created via
[]/[x]shortcutsimg — applied to images inserted via paste (Ctrl+V)
The file is hot-reloaded — changes take effect immediately without restarting the server.
Tech Stack
Bun runtime, parse5 for HTML parsing, css-select for selectors, idiomorph for DOM morphing, MCP SDK for the agent interface. No Express, no React, no build step.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceA MCP server that enables human-in-the-loop workflow in AI-assisted development tools by allowing users to run commands, view their output, and provide textual feedback directly to the AI assistant.Last updated11,715MIT
- Alicense-qualityDmaintenanceAn MCP server and Chrome extension that allows users to select browser DOM elements via a keyboard shortcut to provide detailed technical context to AI coding tools. It captures HTML attributes, CSS styles, and React component metadata, enabling agents to analyze and modify web elements directly.Last updated589MIT
- Alicense-qualityDmaintenanceMCP server for visual feedback, video direction, and QA assertions on web pages, enabling AI agents to read, reply, and resolve annotations in real time.Last updated4MIT
- Alicense-qualityAmaintenanceMCP server that enables AI coding agents to read and write to a local-first HTML/CSS design canvas, bridging visual design and code generation.Last updatedMIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Real-time collaborative whiteboard — AI agents and humans edit the same board live over MCP.
MCP-native collaborative markdown editor with real-time AI document editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlexZeitler/aceto'
If you have feedback or need assistance with the MCP directory API, please join our Discord server