Add Loora to opencode as a remote MCP server.
opencode splits MCP servers by transport explicitly: "type": "local" for a process it spawns, "type": "remote" for a URL it calls. Loora is the second, so the entry is three keys and no command. The schema reference at the top is worth keeping — it is what gives you completion and validation while editing the file.
Configuration
opencode.json at the project root, or ~/.config/opencode/opencode.json.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"loora": {
"type": "remote",
"url": "https://mcp.loora.design/mcp",
"enabled": true
}
}
}Steps
- Add the mcp block above to opencode.json, or merge loora into the one already there.
- Restart opencode so it re-reads the configuration.
- Make any Loora tool call; the first one triggers the OAuth flow in your browser.
- Approve the connection and the call completes on its own.
Worth knowing
- "type": "remote" is required — omitting it makes opencode treat the entry as a local process and fail to spawn it.
- Setting "enabled": false keeps the entry but stops the tools from loading, which is the cheapest way to shrink a context window.
- A project-level opencode.json takes precedence over the one in ~/.config/opencode.
What you can ask for
Once the server is connected, opencode 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 →
opencode and Loora: questions
Does opencode support remote MCP servers?
Yes, through "type": "remote" with a url. That is the shape Loora needs; there is nothing to install locally and no process for opencode to manage.
When does opencode ask me to sign in?
On the first tool call after the server is enabled, not at startup. The browser opens, you approve, and the call that triggered the flow finishes normally.
Can I keep the server configured but switched off?
Set "enabled": false. The entry stays in opencode.json and no tools are loaded into the session.