# Flowpoint > On-Prem Agentic Website Analytics. On-premise website analytics with an AI agent and MCP server. Deployed inside your own environment — your data, your model, fully private. Your analytics never leave your infrastructure. Licensed software, not SaaS. Sitemap: https://flowpoint.ai/sitemap.xml Full text: https://flowpoint.ai/llms-full.txt Feed: https://flowpoint.ai/rss.xml ## Product - [Flowpoint](https://flowpoint.ai): On-premise website analytics with an AI agent and MCP server. Deployed inside your own environment — your data, your model, fully private. Your analytics never leave your infrastructure. Licensed software, not SaaS. - [MCP Server](https://flowpoint.ai/mcp): Flowpoint ships a built-in MCP server, so Claude, Claude Code, Cursor and any MCP client can query analytics and build dashboards inside your own environment. - [Documentation](https://flowpoint.ai/docs): Installation, tracking script setup and custom events. - [About](https://flowpoint.ai/about): About Flowpoint, the company behind on-premise agentic analytics. - [Contact](https://flowpoint.ai/contact): Request a license or ask about an on-premise deployment. ## Blog Guides on moving UI design out of design tools and into AI coding agents. - [How to export a UI design to a coding agent](https://flowpoint.ai/blog/export-ui-design-to-coding-agent): There are only three ways a design reaches a coding agent: a live MCP connection, a file export, or a handoff bundle. Each carries a different amount of your intent. Here is how to pick, wire up and sanity-check the route for your tools. - [Figma to a coding agent: what the MCP server actually sends](https://flowpoint.ai/blog/figma-to-coding-agent): Figma sends a selection, not a file. Here are the commands for each agent, what actually arrives on the other end, and the specific reason well-built files still produce off-system code. - [Canva to a coding agent: the export path, not the MCP server](https://flowpoint.ai/blog/canva-to-coding-agent): The Canva MCP server is for building Canva apps, not reading your designs. The real route is an asynchronous Connect API export — and the format you choose decides how much structure survives. - [Claude Design to Claude Code: the handoff bundle explained](https://flowpoint.ai/blog/claude-design-to-claude-code): A bundle is assembled by the thing that made the design, while the reasoning is still in context. That makes it the highest-fidelity handoff available — and it still will not keep two screens built weeks apart consistent. - [Which coding agent handles design context best](https://flowpoint.ai/blog/coding-agents-design-context): The interesting difference between these five is not model quality. It is whether the design route you set up survives a git clone, and none of them carries your design decisions between sessions. - [Your agent is not ignoring your design — it never got the rules](https://flowpoint.ai/blog/design-files-vs-design-rules): Every handoff route sends what a design contains. None of them sends why. That missing half is small, writable in an afternoon, and the reason generated screens keep drifting off-brand. ## Case studies - [How Rentoza Enhances Customer Journeys](https://flowpoint.ai/customers/rentoza): Leveraging Flowpoint to overcome drop-off challenges and optimize website performance. - [How ActionVFX is Mastering User Behavior Intelligence](https://flowpoint.ai/customers/actionvfx): How a special-effects giant mastered user behavior and boosted conversions. ## Free tools Every tool below also registers WebMCP tools, so a browser AI agent can call the calculation directly instead of filling in the form. See https://flowpoint.ai/mcp for the list. - [Free PPTX to PDF Converter](https://flowpoint.ai/tools/pptx-to-pdf): Convert a PowerPoint presentation to PDF in your browser — one page per slide, nothing uploaded to a server. - [Free PDF to PPTX Converter](https://flowpoint.ai/tools/pdf-to-pptx): Convert a PDF into an editable PowerPoint file in your browser — one slide per page, nothing uploaded to a server. - [Free PDF Compressor](https://flowpoint.ai/tools/compress-pdf): Reduce the file size of a PDF in your browser — choose a compression level and download a smaller file. - [Free Logo Color Changer](https://flowpoint.ai/tools/logo-color-changer): Upload a logo image and convert it to black, white, or a custom color, and then download the recolored logo. - [Make Logo White in 1 Click — Free Transparent PNG](https://flowpoint.ai/tools/make-logo-white): Upload your logo, get a transparent white PNG in seconds. - [Free QR Code Generator](https://flowpoint.ai/tools/qr-code-generator): Generate a QR code based on an URL or text. - [Free UTM Link Builder](https://flowpoint.ai/tools/utm-builder): Create a custom UTM link and copy it to your clipboard. - [Free Email Signature Generator](https://flowpoint.ai/tools/email-signature-generator): Create an HTML email signature — no coding experience required. - [Free Timezone Converter](https://flowpoint.ai/tools/timezone-converter): Quickly find the time for any city in the world. - [Free WCAG Contrast Checker](https://flowpoint.ai/tools/contrast-checker): Check the contrast between a foreground text color and a background color. - [Free APCA Contrast Calculator](https://flowpoint.ai/tools/apca): Calculate the APCA contrast level of two colors. - [Free Color Palette Generator](https://flowpoint.ai/tools/color-palette-generator): Get color inspiration for your projects. - [Free Color Transparency Generator](https://flowpoint.ai/tools/color-transparency): Input a color and get transparency variations. - [Free Conversion Rate Calculator](https://flowpoint.ai/tools/conversion-calculator): Calculate a website vistior-to-conversion value as a percentage. - [Free Conversion Rate Comparison Calculator](https://flowpoint.ai/tools/conversion-comparison-calculator): Compare conversion rates between two data sets. - [Free NPS Calculator](https://flowpoint.ai/tools/nps-calculator): Calculate NPS based on the total number of Promoter, Passive, an Detractor scores from your survey. - [Free Percentage Increase/Decrease Calculator](https://flowpoint.ai/tools/percentage-calculator): Calculate the percentage increase (or decrease) between two numbers. - [Free Times Increase/Decrease Calculator](https://flowpoint.ai/tools/times-increase-calculator): Calculate the increase or decrease between two numbers. - [Free Meta Description Generator](https://flowpoint.ai/tools/meta-description-generator): Easily generate meta descriptions for your website pages. - [Free Alt Text Generator](https://flowpoint.ai/tools/alt-text-generator): Free alt text generator for images Alt Text Generator is a free online marketing tool from Flowpoint. - [Free Reading Comprehension Test Tool](https://flowpoint.ai/tools/readability-test): Test the readability of your text against Flesch-Kincaid grade level and reading ease metrics. - [Free Website Hero Section Generator](https://flowpoint.ai/tools/website-hero-generator): Get hero section title, description, and CTA button recommendations for your website. --- # Full article text # How to export a UI design to a coding agent URL: https://flowpoint.ai/blog/export-ui-design-to-coding-agent Published: 2026-08-17 Tags: Design to code, AI coding agents, MCP There are only three ways a design reaches a coding agent: a live MCP connection, a file export, or a handoff bundle. Each carries a different amount of your intent. Here is how to pick, wire up and sanity-check the route for your tools. ## The handoff problem, stated precisely A coding agent that builds UI needs two different things from you, and almost every handoff workflow only supplies one of them. The first is the design itself — this screen, these elements, at these positions, in these colours. The second is the design system behind it — which typeface owns headings, what the accent colour is allowed to touch, how much space a card gets, what your product never does. Exports are very good at the first. They carry essentially none of the second. That gap is why a generated screen so often looks right in isolation and wrong next to the rest of the product. The agent received geometry and inferred everything else from the statistical average of its training data. It is not ignoring your design system; it never received one. We cover that argument on its own in why your agent never got the rules — this guide is about the mechanical half: getting the design across cleanly in the first place. ## Three shapes a handoff can take Whatever tools you use, the design reaches the agent in one of three shapes. Knowing which one you are in tells you what to expect from the output, and where to spend your effort. - A live MCP connection: The design tool runs a server, the agent connects to it, and the agent pulls a selection on demand. Figma Dev Mode works this way. The design stays in the design tool and the agent asks for it when it needs it, so re-running a prompt picks up whatever changed since. This is the highest-fidelity route when it is available. - A file export: You render the design to files — HTML, PDF, images — put them somewhere the agent can read, and point at them. Canva works this way, and so does anything without a server. Fidelity depends entirely on which format you pick; the difference between a structured HTML bundle and a PNG is the difference between a document and a photograph of one. - A handoff bundle: The tool that made the design packages it for the agent while the reasoning is still in context. Claude Design does this for Claude Code. Nothing is re-interpreted from pixels or markup, because the thing assembling the package is the thing that made the decisions. The three are ordered by how much intent survives, not by how convenient they are. A bundle beats a live connection on intent within a single screen; a live connection beats an export on freshness. All three lose the same thing at the end, which we get to below. ## Pick the route by source tool Design tool | Route | What actually moves Figma | Dev Mode MCP server | A selection — node tree, component structure, bound variable values, Code Connect mappings Canva | Connect API export | Rendered files. Use html_bundle; the MCP server is for building Canva apps, not reading designs Claude Design | Handoff bundle | The design plus the reasoning that produced it, assembled in-context Framer | Token export | Design tokens; components come across as published output, not source Sketch | Built-in MCP server | Layer tree, assets, and live document access Photoshop / XD | File parsing | Layer structure read out of the file directly, no vendor server involved Two of these have a trap worth naming up front. Canva publishes an MCP server, but it connects agents to Canva's developer documentation so they can build Canva apps — it does not hand your designs to an agent. The export path is the real route, and it is covered in Canva to a coding agent. Figma's Dev Mode server, meanwhile, only accepts connections from clients in its own catalogue, which quietly excludes Lovable; the details are in Figma to a coding agent. ## Wire the agent up once, not per prompt Every agent in this space reads a project instructions file before it starts working. Putting the handoff details there — where exports live, which server is connected, what the export format does and does not preserve — means you stop re-explaining it in every session, and so does everyone else on the team. Agent | Instructions file | MCP config Claude Code | CLAUDE.md | claude mcp add, or the settings file Cursor | .cursor/rules/*.mdc (glob-matched) | .cursor/mcp.json at the repo root Codex | AGENTS.md | ~/.codex/config.toml, user-level Replit | AGENTS.md | .replit, with tokens in Replit Secrets Lovable | AGENTS.md | Settings UI — no config file Note which of those travel with the repository. Cursor and Replit keep configuration in committed files, so a teammate who clones the repo inherits the same design route. Codex keeps it user-level, which means every person sets it up themselves. That distinction decides whether your handoff is a team capability or a personal habit, and it is the main axis in which coding agent handles design context best. Instructions files compete with your actual prompt for attention. Aim for well under 200 lines, and put durable facts in it — export locations, format caveats, naming conventions — rather than a copy of your design system. The system belongs somewhere the agent can query on demand, not somewhere it has to carry all session. ## Send one screen at a time The most common self-inflicted failure is sending too much. A whole Figma page, an entire Canva presentation, a folder of exports — each one arrives as a large structured description that fills the context window before any code is written. The agent then works from a compressed impression of everything instead of a precise reading of one thing. Select one frame. Build it. Confirm it. Move to the next. This is slower to type and considerably faster to finish, because the failure mode of the alternative is a full rebuild rather than a small correction. ## What none of the three routes carry Here is the thing every route has in common. A live connection, an export and a bundle all describe a design that exists. None of them explains a design that does not exist yet. Ask any agent for a screen you never drew — a settings page, an empty state, a billing error — and it has nothing to consult. It infers, and inference drifts. The information it needs is not in the file, because it was never written down anywhere. It sounds like this: - Colour roles, not hex codes: Not "#287F71" but "this is the single accent; it appears on primary actions and active states, and nowhere else". A hex code in an export tells the agent what was used once. A role tells it what to do next time. - Type ownership: Which typeface owns headings, which owns body, which sizes are in the scale — and which sizes are not, so the agent stops inventing a 19px heading between two real ones. - Spacing and motion values: The actual numbers. A spacing scale and a transition duration are two of the cheapest things to specify and two of the most visible when they are wrong. - Who the copy is for: Name the audience. "Technical buyers evaluating an on-prem tool" produces different microcopy from "first-time users", and the agent will otherwise pick a generic register. - The never list: Negative constraints do the heaviest lifting of anything on this list. No gradients on surfaces, never centre body copy, no emoji in product UI — each one closes off a whole family of plausible-looking wrong answers. Where that lives matters as much as what it says. In a prompt, it works once and is gone. In a repository markdown file, it works for that repository — which is fine until you have four repositories and three clients, and the four copies quietly diverge. What it wants to be is a single source the agent can read on demand, over the same MCP transport it already uses for everything else. ## Test it One check tells you whether your handoff moved a design or a design system. Hand the agent a screen through whichever route you set up, and let it build. Then ask it for a screen that does not exist anywhere in the design file — a settings page is the usual choice, because everyone needs one and nobody designs it first. Compare the two. If the second screen reuses your heading sizes, your accent, your spacing rhythm and your tone of voice, the route carried your system. If it is visibly a different product — new typographic scale, a colour you have never shipped, copy in a register you do not use — then the handoff moved one design, and the rules never arrived. That is a fixable problem, and it is fixed in a different place from the export. ## Frequently asked questions ### Can a coding agent read a Figma file directly? Not the file. Figma exposes a Dev Mode MCP server that sends the current selection — a node and component tree with bound variable values and any Code Connect mappings — rather than the whole document. You select a frame in Figma and the agent receives a structured description of it. ### What is the best export format for handing a design to an AI agent? A structured HTML bundle, where assets stay as separate files and element boundaries survive. It preserves structure the agent can reason about. Standalone HTML with inlined base64 assets wastes context, and PNG or JPG discards structure entirely and forces the agent to infer everything from pixels. ### Why does generated UI still look off-brand after a good handoff? Because the export describes what a design contains, not why. The agent cannot tell an intentional design token from an incidental one-off value, and it has nothing at all to consult for screens that were never designed. Design rules have to travel separately from the design file. ### Do I need MCP to hand a design to a coding agent? No. MCP is the highest-fidelity route where the design tool offers a server, but a committed file export that the agent reads from the repository works with any agent and any design tool, including tools with no integration at all. --- # Figma to a coding agent: what the MCP server actually sends URL: https://flowpoint.ai/blog/figma-to-coding-agent Published: 2026-08-17 Tags: Design to code, AI coding agents, MCP Figma sends a selection, not a file. Here are the commands for each agent, what actually arrives on the other end, and the specific reason well-built files still produce off-system code. ## It sends a selection, not a file The first thing to internalise about Figma's MCP server is the unit of transfer. It is not the document. You select a frame or a component in Figma, and the agent receives a structured description of that selection — the node hierarchy, the component tree, the values of any variables bound to properties, and any Code Connect mappings that link a Figma component to a component in your codebase. This is a much better payload than a screenshot, and it changes what you should ask for. The agent is not looking at a picture and guessing at structure; it has the structure. What it does not have is the rest of the file, the rest of the product, or any account of why the design is the way it is. This post covers the mechanics; the wider picture is in how to export a UI design to a coding agent. ## Turn the server on Figma runs two servers. The remote one at mcp.figma.com is the recommended route and needs no local app running. The desktop one runs locally out of the Figma desktop app and is useful when you want the agent reading whatever is selected on screen right now. Enable the desktop server from Dev Mode in the Figma desktop app — toggle Dev Mode in the bottom toolbar, then enable the MCP server in the inspect panel — before any client can reach it. The desktop app spins up its local server on port 3845 whenever it is running, and that local entry can end up registered alongside the remote one. Two servers exposing similar tools is a reliable way to get confusing results. Pick one per project. ## Claude Code # Remote server (recommended) claude mcp add --transport http figma https://mcp.figma.com/mcp # Or the local desktop server, with Figma desktop running in Dev Mode claude mcp add --transport http figma-desktop http://127.0.0.1:3845/mcp Restart Claude Code so it picks up the change, then run `/mcp` to confirm the server is listed and connected. Once it is, add a line to `CLAUDE.md` saying the Figma server is available and that designs arrive as selections — otherwise every new session starts by rediscovering it. ## Cursor Cursor reads MCP configuration from a file at the repository root, which means committing it hands the same design route to everyone who clones the repo. { "mcpServers": { "figma": { "type": "http", "url": "https://mcp.figma.com/mcp" } } } Pair it with a rule file under `.cursor/rules` scoped by glob to your component directories. Figma knows nothing about your local components unless Code Connect tells it, so the rule is where you say "reuse what is in `src/components/ui` before creating anything new". ## Codex, Replit and Lovable codex mcp add figma --url https://mcp.figma.com/mcp That writes to `~/.codex/config.toml` under an `[mcp_servers.figma]` block. Note the path: it is user-level, so it does not travel with the repository and every teammate configures it themselves. Replit is the opposite — configuration goes in `.replit` and travels with the project, but the token belongs in Replit Secrets rather than the file. Lovable is the exception, and it is worth knowing before you plan a workflow around it. Figma's server only accepts connections from clients in its own catalogue, and Lovable is not in it. The route there is the Builder.io plugin: export the frame from Figma with the plugin, then open the result in Lovable. That is a one-time conversion rather than a live connection — later changes in Figma do not propagate — and Auto Layout stops being best practice and becomes load-bearing, because it is what the conversion uses to infer structure. ## How far Code Connect reaches Code Connect is the strongest lever available on the Figma side. It maps a Figma component to the real component in your codebase, so the agent writes `