Connect Windsurf Cascade to Loora over MCP.
Windsurf names the remote-server key serverUrl rather than url, which is the single difference between a working entry and a silently ignored one. Cascade reads the file on refresh rather than on save, so the panel button matters as much as the edit.
Configuration
~/.codeium/windsurf/mcp_config.json.
{
"mcpServers": {
"loora": {
"serverUrl": "https://mcp.loora.design/mcp"
}
}
}Steps
- Open Cascade, then the Plugins or MCP panel, and choose Configure to open mcp_config.json.
- Add the loora entry above and save the file.
- Click Refresh in the MCP panel so Cascade re-reads the configuration.
- Complete the sign-in when the browser opens, then confirm the Loora tools are listed.
Worth knowing
- serverUrl, not url — a url key in Windsurf is read as a local server definition and dropped.
- Cascade does not hot-reload the file; Refresh in the MCP panel is what picks up an edit.
- Windsurf shows a tool count per server, which is the fastest confirmation that the handshake actually completed.
What you can ask for
Once the server is connected, Windsurf has the same vocabulary as every other client. Every call commits a validated canvas transaction, so it is inspectable, undoable, and safe to make on a branch.
| Group | Tools |
|---|---|
| Read | listDesigns, getDesignContext, readNode, readTree, searchNodes, listAssets, listVersions |
| Write | createPage, insertNodes, patchNodes, moveNodes, deleteNodes |
| Reuse | createComponent, createInstance, setTokens |
| Motion | setAnimations, animateNodes |
| Look | viewCanvas, viewPage, viewNode, getScreenshot |
| Branches | listBranches, createBranch, proposeBranch, compareBranch, applyBranch, reopenBranch, closeBranch |
| Designs | createDesign, renameDesign, deleteDesign, exportCode |
A good first prompt: ask for listDesigns, then getDesignContext on the one you want, then have it call setTokens before it draws anything. Why that order matters →
Windsurf and Loora: questions
Why is my Windsurf MCP entry ignored?
Check the key name. Windsurf uses serverUrl for a remote server. A url key — correct in Cursor — is not read here, and the entry is skipped without an error.
Do I have to restart Windsurf?
No. Clicking Refresh in the MCP panel re-reads mcp_config.json. A full restart works too but is rarely necessary.
What can Cascade actually change in a design?
Everything the editor can: pages, frames, text, shapes, images, components, instances, design tokens, and motion. Each change is a validated transaction, so it is inspectable and undoable.