This is an old revision of the document!
Setting up Penpot MCP for Codex
This page describes how to connect Codex to Penpot using the hosted Penpot MCP server.
How the connection works
Codex connects to the hosted Penpot MCP endpoint provided by Penpot. The currently open Penpot file must also be connected from the browser side.
Codex -> hosted Penpot MCP server -> Penpot browser connection -> current Penpot file
1. Enable MCP in Penpot
In Penpot:
- Go to Account → Integrations
- Enable MCP Server
- Generate/copy the MCP credentials
Penpot provides the credentials as JSON, for example:
{
"mcpServers": {
"penpot": {
"url": "https://design.penpot.app/mcp/stream?userToken=YOUR_PENPOT_MCP_TOKEN"
}
}
}
2. Save the MCP credentials
In your project directory, save the JSON as:
.mcp.json
Do not commit this file. The userToken is a secret.
3. Install Codex
Codex requires Node.js/npm.
npm install -g @openai/codex codex login
4. Register Penpot MCP in Codex
From the same project directory, run:
codex mcp add penpot --url "$(jq -r '.mcpServers.penpot.url' .mcp.json)"
This reads the hosted Penpot MCP URL from .mcp.json and adds it to Codex as an MCP server named penpot.
5. Connect the Penpot file
Open the relevant Penpot design file in the browser. Then connect the file to MCP from the Penpot UI:
- Open the design file
- Choose File → MCP Server → Connect
- Keep the Penpot browser tab open while Codex is using the design
6. Verify in Codex
Start Codex in the project directory:
codex
Inside Codex, run:
/mcp
The penpot MCP server should appear in the list.
You can also ask Codex to inspect the connected design, for example:
List all pages in the connected Penpot file.