{"slug": "configure-figma-mcp-for-opencode-in-one-step", "title": "Configure Figma MCP for OpenCode in one step", "summary": "A developer tool called Ivar reduces Figma MCP configuration across multiple repositories to a single step, storing one MCP server definition in an ivar.json manifest that syncs into every agent session. Because Figma rejects OpenCode's dynamic client registration identity, Ivar runs its own OAuth authorization-code flow with PKCE and installs credentials directly into OpenCode's MCP auth store, keeping secrets local while persisting non-secret OAuth metadata in the manifest.", "body_md": "Adding the Figma MCP to a single repository takes five steps. Keeping it updated across five repositories takes twenty-five — and when authentication breaks, everything stops. With `ivar`, that maintenance drops to zero steps.\n\nYou configured the Figma MCP in your harness, and your agent started reading designs. Great. Now do it across every other repository your product touches, and keep credentials in sync across tools and environments.\n\nHere is what the manual process looks like in practice:\n\nIf you manage three repositories that share a design system, you are maintaining three separate copies of the same MCP configuration. Change the configuration in one and the other two are stale. Forget one and half your sessions have no Figma access.\n\nIvar's Hall carries a single source of truth for every MCP server your workflow needs. When you run `ivar sync`, the harness materialises the configuration into each session's view directory — the same directory where your agent reads its instructions, finds its repos, and runs its tools.\n\nThe Figma MCP server is defined once in `ivar.json`:\n\n``` json title=\"ivar.json\"\n\n{\n\n  \"$schema\": \"[https://ivar.run/schema/4.json](https://ivar.run/schema/4.json)\",\n\n  \"name\": \"acme\",\n\n  \"providers\": {\n\n    \"available\": [\"opencode\"],\n\n    \"default\": \"opencode\"\n\n  },\n\n  \"mcp\": [\n\n    {\n\n      \"name\": \"figma\",\n\n      \"type\": \"http\",\n\n      \"url\": \"[https://mcp.figma.com/mcp](https://mcp.figma.com/mcp)\"\n\n    }\n\n  ],\n\n  \"repos\": [],\n\n  \"integration\": {\n\n    \"via\": \"local\",\n\n    \"strategy\": \"squash\"\n\n  },\n\n  \"version\": 4\n\n}\n\n```\n`ivar mcp auth figma --provider opencode` handles the entire authentication flow. Because Figma rejects OpenCode's dynamic client registration (DCR) identity, Ivar uses its internal OAuth flow rather than delegating the browser step to `opencode mcp auth`. Ivar performs prerequisite client preregistration when needed, runs an authorization-code flow with PKCE, persists non-secret metadata in `ivar.json` while keeping secret tokens local, and installs/verifies the provider credentials directly in OpenCode's MCP auth store.\n\nAfter authenticating, `ivar.json` can record generated OAuth metadata:\n\n``` json title=\"ivar.json (generated fragment)\"\n{\n  \"mcp\": [\n    {\n      \"name\": \"figma\",\n      \"type\": \"http\",\n      \"url\": \"https://mcp.figma.com/mcp\",\n      \"oauth\": {\n        \"client_id\": \"<generated-client-id>\",\n        \"client_secret_env\": \"IVAR_MCP_ACME_FIGMA_SECRET\",\n        \"token_url\": \"<token-url>\",\n        \"resource\": \"<resource>\"\n      }\n    }\n  ]\n}\n```\n\n*(Note: OAuth metadata shown above is generated; secrets and tokens are never committed to the manifest.)*\n\nBecause Figma's external allowlist policy and DCR requirements can change at any time, Ivar isolates these quirks so your agent sessions remain uninterrupted.\n\nFor full details on Claude Code, OMP, Linear, configuration mappings, and authenticating with `--all-providers`, consult the [MCP reference guide](https://ivar.run/docs/reference/mcp).\n\nThe moment you add the Figma MCP server to your Hall, every new session across every repository inherits it. There is no per-repo step. There is no configuration file to edit when you start working on a new codebase.\n\nThis is the same mechanism that makes [multiple repositories accessible in a single agent session](https://ivar.run/blog/ai-coding-agent-multiple-repos). The Hall is the unit of configuration; the session is the unit of execution. A change to the Hall propagates to every session that reads from it.\n\nIf you work with a design team that delivers in Figma, every agent session your developers run will have access to those designs — not because someone remembered to configure it, but because the Hall carries it.\n\nIvar does not modify Figma files, read design tokens from Figma variables, or sync design changes into code automatically. The MCP server gives your agent read access to Figma data — files, frames, comments, component metadata. What the agent does with that data depends on the prompt and the model.\n\nIvar's contribution is making sure the configuration reaches every session without manual duplication and that harness-specific auth barriers are resolved.\n\nIf you already have an Ivar Hall, adding the Figma MCP server is a one-block addition to `ivar.json`. Run `ivar sync`, authenticate with `ivar mcp auth figma --provider opencode` (or `ivar mcp auth --all-providers`), and the next session materialises with Figma access.\n\nIf you do not have a Hall yet, the [quickstart guide](https://ivar.run/docs/quickstart) walks through creating one. The MCP server configuration goes in the same place as your repos and instruction files — the Hall is the single place where everything your agent needs lives.", "url": "https://wpnews.pro/news/configure-figma-mcp-for-opencode-in-one-step", "canonical_source": "https://dev.to/mnzs/configure-figma-mcp-for-opencode-in-one-step-1633", "published_at": "2026-09-29 16:15:05+00:00", "updated_at": "2026-09-29 16:16:49.209489+00:00", "lang": "en", "topics": ["agent-protocols", "developer-tools", "ai-agents", "ai-tools"], "entities": ["Figma", "OpenCode", "Ivar", "Claude Code", "Linear", "OMP"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/configure-figma-mcp-for-opencode-in-one-step", "markdown": "https://wpnews.pro/news/configure-figma-mcp-for-opencode-in-one-step.md", "text": "https://wpnews.pro/news/configure-figma-mcp-for-opencode-in-one-step.txt", "jsonld": "https://wpnews.pro/news/configure-figma-mcp-for-opencode-in-one-step.jsonld"}}