opencode-figma-for-actually-codex
Local MCP bridge that exposes the ChatGPT Figma connector to OpenCode without launching Codex.
This package is useful when OpenCode cannot complete Figma's remote MCP OAuth flow directly, but the same Figma connector is already authenticated in the ChatGPT/Codex account file.
How it works
- Reads the existing ChatGPT auth file from
~/.codex/auth.json. - Calls ChatGPT's connector MCP endpoint directly.
- Filters the upstream tool list to the Figma connector only.
- Exposes those tools over stdio as a local MCP server for OpenCode.
- Refreshes the ChatGPT access token from the same auth file when it is close to
expiry.
It does not start Codex, call codex mcp-server, or require the Codex app to be running.
OpenCode config
From GitHub:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"figma": {
"type": "local",
"command": [
"npx",
"-y",
"github:kargnas/opencode-figma-for-actually-codex"
],
"enabled": true,
"timeout": 60000
}
}
}
After publishing to npm, the command can be shortened to:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"figma": {
"type": "local",
"command": ["npx", "-y", "opencode-figma-for-actually-codex"],
"enabled": true,
"timeout": 60000
}
}
}
For local development:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"figma": {
"type": "local",
"command": [
"node",
"/path/to/opencode-figma-for-actually-codex/bin/chatgpt-figma-mcp.mjs"
],
"enabled": true,
"timeout": 60000
}
}
}
Prerequisites
The default auth source is ~/.codex/auth.json, and it must contain a ChatGPT login with tokens.access_token. The Figma connector must already be connected to that ChatGPT account.
Supported environment variables:
| Variable | Default | | --- | --- | | CODEX_AUTH_FILE | ~/.codex/auth.json | | CHATGPT_CONNECTORS_MCP_URL | https://chatgpt.com/backend-api/wham/apps | | CHATGPT_AUTH_TOKEN_URL | https://auth.openai.com/oauth/token | | CODEX_CLIENT_ID | Codex ChatGPT OAuth public client id | | CHATGPT_FIGMA_MCP_DEBUG | unset |
Development
npm run check
npm run smoke
npm run pack:dry
npm run smoke connects to the live ChatGPT connector endpoint and verifies that Figma tools can be listed.
Security
Do not commit ~/.codex/auth.json, exported account files, token caches, or debug logs that contain credentials. This package reads the local auth file at runtime and does not need secrets in opencode.jsonc.






