{"slug": "one-mcp-config-for-claude-code-opencode-and-omp", "title": "One MCP config for Claude Code, OpenCode and OMP", "summary": "A tool called ivar lets developers declare Figma and Linear MCP servers once in a hall's ivar.json and writes the matching config files for Claude Code, OpenCode and OMP, with `ivar sync` rewriting all three files after manual edits. `ivar mcp auth figma --all-providers` runs each harness's login in sequence, and `ivar mcp status` reports which server has credentials on which harness, with client secrets stored in .ivar/secrets/mcp.env outside git. The author says ivar is unnecessary for a single harness whose login works, but earns its place across multiple harnesses, shared team servers, or logins that fail, such as Figma on OpenCode and any OAuth server on OMP.", "body_md": "You use Claude Code for one task and OpenCode for another, and both should see the same Figma and Linear MCP servers. Each harness wants them in its own file, under its own keys:\n\nWriting three files once is tedious. Keeping them equal is the real cost: change a URL in one, forget the others, and half your sessions start without the server. Then each harness needs its own login.\n\nThe files are the easy part. Authentication fails differently in each harness:\n\nWhere the harness’s own login works, ivar uses it. It only takes over where the harness cannot finish. [Figma MCP on OpenCode: fix \"Authentication failed\"](https://ivar.run/blog/figma-mcp-opencode?utm_source=medium&utm_medium=syndication&utm_campaign=one-mcp-config-claude-code-opencode-omp) explains the Figma case in detail.\n\nInstall ivar, create a hall in an empty directory with the harnesses you use, and add the servers:\n\n```\ncurl -fsSL 'https://ivar.run/install?ref=one-mcp-config' | shmkdir tools-hall && cd tools-hallivar init --provider claude-codeivar provider add opencodeivar provider add ompivar mcp add figmaivar mcp add linear\n```\n\nfigma and linear are known names, so ivar mcp add fills in their URLs. Any other HTTP server takes --url, for example ivar mcp add sentry --url https://mcp.sentry.dev/mcp. Adding a server that is already declared the same way changes nothing; adding one with the same name and a different URL is refused instead of overwriting it.\n\nThe declaration lives in the hall’s ivar.json:\n\n```\n{  \"mcp\": [    { \"name\": \"figma\", \"type\": \"http\", \"url\": \"https://mcp.figma.com/mcp\" },    { \"name\": \"linear\", \"type\": \"http\", \"url\": \"https://mcp.linear.app/mcp\" }  ]}\n```\n\nivar mcp add writes each harness's file from it on the spot. After you edit ivar.json by hand, ivar sync rewrites the three files to match.\n\n```\nivar mcp auth figma --all-providersivar mcp auth linear --all-providersivar mcp status\n```\n\n--all-providers runs every harness the hall lists, one after the other, because each login takes over the terminal and waits on the browser. Every harness is attempted even if an earlier one fails, and the run is reported as needing attention when any of them does. When a client registration happens first, as with Figma on OpenCode, it is reported apart from the login: a registered client is not yet an authenticated one.\n\nivar mcp status prints which server has credentials on which harness. The client secret lives in .ivar/secrets/mcp.env, outside git. Tokens never go into ivar.json, so you can commit the file and a teammate gets the same servers after their own ivar mcp auth.\n\nWith one harness and a server whose login works there, no. Add the server to that harness’s file and run its login. ivar earns its place when you use more than one harness, when a team should share the same servers, or when the login fails, as it does for Figma on OpenCode and for any OAuth server on OMP.\n\nThe hall that holds your MCP servers is also where ivar mounts your repositories and runs a feature across them, with every session reading the same servers. The [quickstart](https://ivar.run/docs/quickstart?utm_source=medium&utm_medium=syndication&utm_campaign=one-mcp-config-claude-code-opencode-omp) mounts the first repo. The [MCP guide](https://ivar.run/docs/guide/mcp?utm_source=medium&utm_medium=syndication&utm_campaign=one-mcp-config-claude-code-opencode-omp) covers transports and OAuth per harness.\n\n[One MCP config for Claude Code, OpenCode and OMP](https://blog.devgenius.io/one-mcp-config-for-claude-code-opencode-and-omp-a7c75100cd6b) was originally published in [Dev Genius](https://blog.devgenius.io) on Medium, where people are continuing the conversation by highlighting and responding to this story.", "url": "https://wpnews.pro/news/one-mcp-config-for-claude-code-opencode-and-omp", "canonical_source": "https://blog.devgenius.io/one-mcp-config-for-claude-code-opencode-and-omp-a7c75100cd6b?source=rss----4e2c1156667e---4", "published_at": "2026-10-20 13:52:37+00:00", "updated_at": "2026-10-20 14:16:20.935113+00:00", "lang": "en", "topics": ["agent-protocols", "ai-agents", "developer-tools", "ai-tools"], "entities": ["ivar", "Claude Code", "OpenCode", "OMP", "Figma", "Linear", "Sentry"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/one-mcp-config-for-claude-code-opencode-and-omp", "markdown": "https://wpnews.pro/news/one-mcp-config-for-claude-code-opencode-and-omp.md", "text": "https://wpnews.pro/news/one-mcp-config-for-claude-code-opencode-and-omp.txt", "jsonld": "https://wpnews.pro/news/one-mcp-config-for-claude-code-opencode-and-omp.jsonld"}}