& breaks the command& in the MCP URL is interpreted as a command separator. You see errors like 'secret' is not recognized as an internal or external command.1234567{ "mcpServers": { "framer": { "url": "https://mcp.unframer.co/mcp?id=YOUR_ID&secret=YOUR_SECRET" } } }
mcp-remote bridge, wrap the URL in quotes in the args array:1234567891011{ "mcpServers": { "framer": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unframer.co/mcp?id=YOUR_ID&secret=YOUR_SECRET" ] } } }
OAuth discovery on mcp.unframer.co returns HTTP 404 or SSE fallback returns HTTP 405.mcp-remote as a bridge. This handles the transport negotiation for you:1234567891011{ "mcpServers": { "framer": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unframer.co/mcp?id=YOUR_ID&secret=YOUR_SECRET" ] } } }
getProjectXml, getNodeXml) work fine, but write operations (updateXmlForNode) immediately disconnect with WebSocket error code 1006 or 1001.unframer CLI instead.cursor/mcp.json in your project root, or ~/.cursor/mcp.json globallyDo you have access to the Framer MCP tool?
Get the project structure