AI coding agents · Design to code · MCP
Which coding agent handles design context best
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.
Flowpoint Analytics · · 8 min read
The comparison that matters
Comparisons of coding agents usually turn into comparisons of the models behind them, which changes monthly and is not the constraint most teams actually hit. The constraint that bites is duller and more durable: where each agent keeps its configuration, whether that configuration travels with the repository, and which instructions file it reads before it starts. Get those wrong and it does not matter how good the model is — half your team is working without the design route you set up.
| Agent | MCP config location | Travels with the repo | Instructions file | In Figma's MCP catalogue |
|---|---|---|---|---|
| Claude Code | claude mcp add, or the settings file | If committed | CLAUDE.md | Yes |
| Cursor | .cursor/mcp.json at the repo root | Yes | .cursor/rules/*.mdc | Yes |
| Codex | ~/.codex/config.toml (user-level) | No | AGENTS.md | Yes |
| Replit | .replit, tokens in Secrets | Yes | AGENTS.md | Yes |
| Lovable | Settings UI, no file | No | AGENTS.md | No |
Team setup versus personal setup
Read the third column first. Cursor and Replit keep configuration in files that live in the project, so committing them makes the design route a team capability — a teammate clones the repo and inherits the same connection, without a setup document and without being told. That is a meaningful difference in practice, because setup documents are read once and then rot.
Codex sits at the other end. Its MCP configuration is user-level, in ~/.codex/config.toml, which means it is per-person by construction. Nothing you commit will configure a colleague's Codex. If your team standardises on it, plan for the setup step to be repeated by everyone and to drift as people upgrade tools at different times.
Claude Code sits in the middle and is the most flexible of the three: you can add a server with claude mcp add for yourself, or commit the configuration so the project carries it. That flexibility is genuinely useful and also the reason two people on the same repo can end up with different servers connected without either noticing.
Instructions files are not interchangeable
All five agents read a project instructions file, and it is the cheapest place to record how design reaches the project — where exports live, which server is connected, what the export format preserves. But the files behave differently enough that copying one into another's filename is not a migration.
- CLAUDE.md: Read by Claude Code. Keep it well under 200 lines. It competes with your prompt for attention, and a bloated one makes the agent worse rather than better informed.
- .cursor/rules/*.mdc: Cursor's format, and the most precise of the three: rules are glob-matched, so a rule can apply only inside
src/components/**and stay out of the way everywhere else. Use this for "reuse the existing components" instructions that would be noise at the repository level. - AGENTS.md: The open format, read by Codex, Replit and Lovable. Broadest reach, no scoping — everything in it applies everywhere, all the time.
If you support more than one agent, write the durable facts once and keep the per-agent files thin. Duplication across three instructions files is how three files end up disagreeing.
Lovable takes a different path
Lovable is the outlier in the table and the one most likely to break an assumed workflow. Figma's MCP server only accepts connections from clients in its catalogue, and Lovable is not in it — so the live connection route is simply unavailable.
The route instead is the Builder.io plugin: export the frame from Figma with the plugin and open the result in Lovable. Two things follow. First, it is a snapshot rather than a connection — change the design afterwards and nothing propagates; you re-export. Second, Auto Layout stops being best practice and becomes load-bearing, because the conversion uses it to infer structure. A frame with everything absolutely positioned converts into something no amount of prompting will straighten out. The Figma-side detail is in Figma to a coding agent.
Replit and the token problem
Replit gets the team story right — configuration in .replit, travelling with the project — but that same property creates an obvious hazard. A committed configuration file with a bearer token in it is a committed credential. Tokens belong in Replit Secrets, referenced from the configuration rather than written into it.
This applies more broadly than Replit. Any MCP endpoint you connect an agent to should be scoped narrowly enough that a leaked token is an inconvenience rather than an incident: read-only where the agent has no reason to write, scoped to one project rather than an account, rate-limited, and revocable on its own without disturbing anything else.
The verdict
If your priority is that everyone on the team inherits the same design route from a clone, Cursor is the cleanest, with Replit close behind for hosted work. If your priority is flexibility and depth of terminal workflow, Claude Code — with the configuration committed, so it behaves like Cursor's. Codex is excellent and quietly per-person; budget for that. Lovable is the only one where you have to redesign the workflow rather than the configuration.
But none of them enforces a design system. All five treat design context as guidance, which is the right default for a general-purpose tool. And more importantly, none of them carries your design decisions between sessions, and none of them carries them between repositories. Whichever you pick, that part is still yours to solve — and it is solved in the same place regardless of which row of the table you are in. Flowpoint takes the same view on the analytics side: our MCP server is the interface, and the data behind it stays fixed and yours.
Test it
Clone your own repository into a fresh directory, as a teammate would, and open it with your agent. Ask it to build a screen from your design source without telling it anything about how design reaches this project. If it finds the route, your configuration travels. If it starts inventing, the route lives on your machine and not in the project — which is worth knowing before you write a setup document nobody reads.
Frequently asked questions
Which coding agents can connect to Figma's MCP server?
Claude Code, Cursor, Codex and Replit can. Lovable cannot — Figma's server only accepts connections from clients in its catalogue, and Lovable is not one of them; it uses the Builder.io plugin export instead.
Does MCP configuration travel with a git repository?
It depends on the agent. Cursor keeps it in .cursor/mcp.json at the repo root and Replit in .replit, so both travel when committed. Codex keeps it user-level in ~/.codex/config.toml, so it does not. Claude Code can do either.
What is the difference between CLAUDE.md and AGENTS.md?
CLAUDE.md is read by Claude Code; AGENTS.md is the open format read by Codex, Replit and Lovable. Cursor uses neither — it reads glob-matched .mdc rule files under .cursor/rules, which lets a rule apply only to specific directories.
Every agent here treats design context as something you supply per project. Supplying it from one place, to all of them, over the transport they already speak, is the case for moodspec.