ChatGPT Setup
How do I connect ChatGPT and check its tools?
Section titled “How do I connect ChatGPT and check its tools?”Create a developer-mode app in ChatGPT that points at Controller AI’s remote MCP endpoint and uses OAuth. Verify its account before you work on Support helper.
Create the connection in ChatGPT
Section titled “Create the connection in ChatGPT”In Controller AI: open Connect and find Set up your coding agent. The copy icon beside the prompt copies instructions for a coding assistant. It does not create a ChatGPT app. ChatGPT setup is manual, and there is no cai agent setup --client chatgpt option.
As checked on September 7, 2026, developer mode is available on the web for Plus, Pro, Business, Enterprise, and Education accounts. If the controls are unavailable on a managed workspace, ask the administrator. On individual Plus or Pro, check your plan and use ChatGPT on the web. OpenAI’s developer-mode instructions describe the current controls.
-
Open Settings → Security and login → Developer mode and enable it.
-
Open Plugins and select the plus button to create a developer-mode app.
-
Name it
Controller AI, enterhttps://mcp.getcontroller.ai/mcp, and choose OAuth authentication. -
Review the custom-server warning, select I understand and want to continue, then select Create.
With an assistant: ask ChatGPT to identify these fields, then complete the browser authorization yourself.
Authorize the intended account
Section titled “Authorize the intended account”On Controller AI’s permissions screen, select Allow full access or Continue read-only for the access you want. Full access is enabled only when ChatGPT requested controller:full. Read-only appears only when ChatGPT requested controller:read. If the choice you need is unavailable, change the host’s requested access and reconnect. Consent cannot add a scope that was not requested.
Next choose My Controller account → Continue or Separate agent account → Use agent account. For your own account, check the signed-in email on Connect your Controller account. Then select Connect account.
If you want read-only access enforced by the server, configure https://mcp.getcontroller.ai/mcp/readonly. It rejects writes regardless of token scopes. Switching between /mcp and /mcp/readonly requires fresh OAuth authorization, because tokens are bound to the selected resource.
After creation, find the app under Drafts. In the conversation’s Plus menu, select Developer mode, then Controller AI.
Check identity and fetch guidance
Section titled “Check identity and fetch guidance”Ask ChatGPT to call account_status with {}. Check user, account.kind, account.accessMode, and grantedScopes against the account you chose. The kinds are member, agent, or claimed. Unclaimed accounts return user.email: null. Unconfirmed and synthetic addresses are also hidden, so a null email alone does not establish the wrong account.
If account.kind is agent, explain that it is an unclaimed separate account created without email or password. Show the allowance reported in usage, then offer to claim it. account_claim_start takes the owner’s email, and account_claim_verify takes the six-digit code they receive. Both require controller:full on /mcp. Claiming removes the unverified usage cap and enables email recovery. Call account_status again to check for claimed. Reauthorizing a separate account can continue the same identity.
Call guide_list with {}, then guide_get with {"name":"controllerai-start"}. For Support helper, fetch {"name":"controllerai-agents"} next. These calls return instructions and reference contents, and require no local filesystem installation. MCP stores no workflow pin. Pass workflowId on every workflow-scoped call, and supply instructions and file contents inline, never as local paths.
Check the inventory without creating anything
Section titled “Check the inventory without creating anything”In the app: open Agents. You have no agents yet is a valid empty inventory, and search is hidden there. Otherwise search for Support helper. The default All agents view includes shared agents, while the commands below return only agents you own.
With an assistant: ask for matching names and IDs, or for no matches, and create nothing. In a separately connected terminal, these account-scoped commands report the CLI’s identity and its matching agents. They assume no workflow pin:
cai auth status --jsoncai agent list --ownership mine --search "Support helper" --jsonIn ChatGPT, use account_status with {} and agent_list with ownership: "mine" and search: "Support helper". These calls use ChatGPT’s OAuth grant, while CLI results use its separate credential. This connection is verified when the account_status identity matches and the MCP inventory succeeds, including when it returns no matches.
How do I refresh missing tools?
Section titled “How do I refresh missing tools?”After a server change, open the app’s details in ChatGPT and select Refresh. That retrieves tools, descriptions, and server instructions. Check that any unavailable tool is enabled there, then fetch the relevant Controller AI guide again. OpenAI’s tool controls cover refresh and enablement separately.
Why is a write blocked or waiting?
Section titled “Why is a write blocked or waiting?”ChatGPT’s tool-call confirmation and a Controller AI agent tool’s runtime confirmation are separate. Approving the host call does not supply the Controller conversation approval that the tool needs before it executes.
If writes fail, inspect both the URL and account_status. /mcp/readonly blocks writes even when account.accessMode says full. /mcp requires controller:full. To upgrade access, disconnect and reconnect to /mcp with full access requested, then select Allow full access.
How do I repair an expired request or wrong account?
Section titled “How do I repair an expired request or wrong account?”For a wrong account, follow OpenAI’s account-management path. Open Settings → Apps or Plugins → Controller AI → Connected accounts/Connection, then select Disconnect from the account’s or plugin’s more-options menu. If Controller’s account-link page shows the wrong email, open the Controller app, use the user menu → Log out, and sign in to the intended account. Start a fresh ChatGPT connection, then repeat account_status and the inventory. If you see This connection request is no longer valid, restart the connection from ChatGPT.
Next: build Support helper or review Assistant access and security.