ChatGPT can use your DenkOps connector the same way Claude can: add it as a connector in ChatGPT's settings, paste https://<slug>.denkops.host/mcp, complete the OAuth login, and the tools become available in conversations. The server side is identical to every other client; only the place you paste the URL changes.
You need a server deployed with "connector": true in denkops.json, which gives it hosted OAuth at that URL. If you have not done that yet, deploy the starter first and read how the one-flag OAuth works.
Where do I add a connector in ChatGPT?
ChatGPT accepts remote MCP servers through its connectors feature, with custom servers gated behind a developer-mode style setting. Menus and naming shift between releases, so in general terms:
- In ChatGPT's settings, find the connectors area and enable the option that allows custom or developer connectors.
- Add a new connector and paste
https://<slug>.denkops.host/mcpas the server URL. - ChatGPT detects that the server uses OAuth and sends you to the hosted login and consent screen.
- Sign in, approve, and the connector shows as connected.
One honest caveat: which ChatGPT plans can add custom MCP connectors, and where the toggle lives, has changed over time and differs between individual and workspace plans. If you do not see the option, check the current OpenAI documentation for your plan rather than assuming the feature is missing.
What does the OAuth step look like?
Exactly like it does for any other MCP client, because your connector serves one standard flow:
- ChatGPT reads the OAuth discovery metadata from your connector's domain.
- It registers itself through dynamic client registration. You do not create an OAuth app in any developer console, and there is no client secret to manage.
- The user signs in and approves on the hosted consent screen.
- ChatGPT gets a token and calls your tools over
/mcp.
Your application code contains none of this. Whether a given person gets through the login is set by the project's access policy in the dashboard's Access tab: public, or an allowed-email list. People not on the list are refused at the consent step, before any tool call reaches your handlers. So you can put the URL in your product docs and still decide, per email address, who can actually use it.
Using the tools in a conversation
Once connected, ChatGPT lists the connector among its available sources and tools. In a conversation, ask for the outcome and let the model pick the tool; it reads the descriptions and input schemas your server publishes. If a tool is never chosen, the fix is on your side: sharpen the description, redeploy, and the connector updates without anyone re-adding it. The URL, the grant, and the access list all stay put.
One server, every assistant
This is the point of shipping a connector instead of a per-vendor integration: the DenkOps side is one URL with hosted OAuth, dynamic client registration, and an owner-controlled access list, and it is the same for every client. The same server also plugs into Claude, Claude Code, and OpenAI Codex.