ChatGPT
ChatGPT can connect to Zandovi as a remote MCP connector over OAuth. Once connected, ChatGPT can list your projects and templates, render images and design new templates in the conversation, using the 18 tools in the MCP reference: get_account, list_projects, list_templates, get_template, generate_image, submit_batch, get_batch, the authoring tools validate_design, preview_design, create_template, edit_template, delete_template, create_project, the image tools list_images, upload_image and search_stock_images, and the knowledge tools search_icons and get_design_reference.
Custom connectors require a ChatGPT plan that supports Developer mode (Plus, Pro, Team, Enterprise, or Edu, depending on your workspace’s settings).
Add the connector
Section titled “Add the connector”-
In ChatGPT, open Settings → Connectors and turn on Developer mode if you have not already.
-
Click Create (or Add custom connector).
-
Give it a name (e.g. “Zandovi”) and enter the connector URL:
https://mcp.zandovi.com/mcp -
Leave authentication as OAuth. ChatGPT discovers the rest (authorization and token endpoints, supported scopes) from Zandovi’s OAuth metadata automatically; there is nothing else to configure.
-
Click Connect and sign in to Zandovi when prompted. You land on Zandovi’s consent page at
app.zandovi.com/connect, where you pick which organization to connect and review the scopes ChatGPT is requesting, then click Allow access. Every requested scope starts ticked (an app that names no scopes is offered all of them:design:read,templates:read,render,templates:write,images:readandimages:write); untick any you don’t want it to have, for exampletemplates:writeto stop it creating, updating and deleting templates and projects. A connection approved before the authoring tools shipped keeps its old scopes; reconnect to pick up the new ones.
How ChatGPT registers itself
Section titled “How ChatGPT registers itself”Per OpenAI’s guidance for MCP connectors, ChatGPT identifies itself to Zandovi with a Client ID Metadata Document (CIMD): its client_id is an https:// URL pointing at a small JSON document describing the client, rather than a client ID and secret Zandovi hands out ahead of time. Zandovi’s authorization server fetches and caches that document, so no manual client registration is needed on either side. ChatGPT’s document declares private_key_jwt, so at the token endpoint it authenticates with a signed key rather than a shared secret; Zandovi verifies the signature against the public key published at chatgpt.com/oauth/jwks.json. There is nothing for you to configure for this: it happens automatically as part of the connection. Zandovi’s dynamic client registration endpoint (POST /oauth/register) is also available for connectors that prefer registering a client directly instead; see Authentication → OAuth for both mechanisms.
Tool approval
Section titled “Tool approval”ChatGPT asks for your approval the first time it calls a tool with a side effect. generate_image, submit_batch, preview_design, create_template and edit_template render images and charge your Zandovi API quota, and create_template, edit_template, delete_template, create_project and upload_image change your workspace, so ChatGPT keeps approval enabled for them; the read-only tools (get_account, list_projects, list_templates, get_template, get_batch, validate_design, list_images, search_stock_images, search_icons, get_design_reference) do not prompt. delete_template cannot be undone; the tool asks ChatGPT to confirm with you first.
Design reference tools
Section titled “Design reference tools”ChatGPT gets Zandovi’s design knowledge from one tool, get_design_reference({topic}), which returns a whole knowledge-pack section: guide (design gotchas plus every element field’s default value), variables (binding variables, values and batch rules), codes (every validation code, split out to keep guide short), fonts, presets, examples, example:<name> for a full example design, elements for an index of all 15 element types, or element:<type> for one type’s field table, coordinate origin, unsupported fields and a valid example. Icon names come from search_icons. Both are read-only, run locally against the bundled pack and need no extra API call or credentials beyond the connection you already made, so they never prompt for approval. The same pack is also published as zandovi:// MCP resources, but ChatGPT can’t read MCP resources, so it uses the tools.
Disconnecting
Section titled “Disconnecting”- In Zandovi: go to Settings → Connected apps, click Revoke next to ChatGPT and confirm. This immediately invalidates every access and refresh token the connection holds.
- In ChatGPT: open Settings → Connectors, select Zandovi, and remove it.
To switch which organization is connected, revoke the existing connection (either side) and connect again; you pick the organization fresh each time you connect.