Cursor
Connect Krafa to Cursor so the Agent builds UI in your design language while it edits.
Cursor reads MCP servers from JSON config and auto-detects the transport, so a remote server needs nothing but a URL and a header.
Setup
Get your token
In the board you want Cursor to design from, press ⌘K → Connect AI Agent and copy the token. Export it so it stays out of committed config:
export KRAFA_TOKEN="krafa_YOUR_TOKEN"Add the server
Project-scoped, so the whole repo inherits it:
{
"mcpServers": {
"krafa-taste": {
"url": "https://app.krafa.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${env:KRAFA_TOKEN}"
}
}
}
}Use ~/.cursor/mcp.json for a global setup instead. When both exist they're merged, and the project file wins on a name collision, which is how you give one repo its own board while everything else falls back to a default.
${env:NAME} is resolved from your shell environment inside url and headers, so the file is safe to commit. Note that envFile is stdio-only and won't work for a remote server, so export the variable in your shell.
No transport key is needed. Cursor detects Streamable HTTP from the endpoint.
Enable and verify
Restart Cursor, then open Customize → MCPs in the sidebar. krafa-taste should be listed and connected; toggle it on.
If it isn't, open the Output panel with ⇧⌘U and select MCP Logs.
Make it automatic
Add a rule so the Agent reaches for the profile without being asked:
---
description: Follow the curated design taste profile for all UI work
alwaysApply: true
---
Before writing or modifying any UI, call `get_taste_profile` from the
krafa-taste MCP server and follow it. For visual work, also call
`get_exemplars` and match what you see. The profile is the spec;
do not substitute your own design defaults.A worked session
Open a component file and ask:
Restyle this table to match my taste.
The Agent calls get_taste_profile, finds your Spacing & Density and Typography memories (the tight row rhythm, the tabular figures, the absence of row dividers) and rewrites the classes to match. Because it's editing in place, you get a diff you can read line by line instead of a wholesale replacement.
For a narrower pass, point it at one category:
Only fix the colors here. Use
list_memorieswith the color category.
Troubleshooting
| Symptom | Cause |
|---|---|
| Server missing from Customize → MCPs | Cursor needs a restart after the config changes |
invalid token in MCP Logs | KRAFA_TOKEN isn't exported in the environment Cursor launched from |
| Connects, but output ignores the profile | Add the always-apply rule above |
| Empty profile | The board has no memories yet |
Third-party guides often show "type": "streamable-http" in Cursor configs. Cursor documents type for stdio servers only and detects remote transports automatically, so leave it out.