← All docs

    Connect to ChatGPT

    Before you start

    You need a Lexomat account with MCP access (trial, starter, or plus — see Access tiers). You'll sign in to that account during setup.

    Steps

    1. Open Settings → Security and login (or Connectors) and enable Developer mode.

    2. Choose add a remote MCP server.

    3. Enter the server URL:

      https://mcp.lexoma.sk/mcp
      

      The connector appears in ChatGPT as Lexoma. Add only this one connector — if you already added the older lexomat connector, it keeps working and you do not need a second one.

    4. Choose OAuth as the auth method and leave Client ID / Client Secret blank — ChatGPT registers itself automatically. This is the correct setup; see How sign-in works below for why there is nothing to enter.

    5. Save, then sign in at lexomat.sk when prompted — Lexoma is the connector's name, and you sign in with the same Lexomat account.

    That's it — ChatGPT can now call the Lexomat tools described in Overview.

    How sign-in works (and why both fields stay blank)

    Lexomat's connector uses standard OAuth; the token ChatGPT receives is valid only for Lexomat's MCP connector. To start the flow ChatGPT needs an OAuth client identity. The MCP specification (revision 2026-07-28) prefers, in order: a pre-registered Client ID, then Client ID Metadata Documents (which OpenAI also recommends, but which Lexomat's sign-in server — Supabase Auth — does not advertise yet), then Dynamic Client Registration — which is what happens with blank fields, and which the 2026-07-28 revision marks deprecated, retained for backwards compatibility. Blank fields are the right setup here. ChatGPT gives each connector its own return address (https://chatgpt.com/connector/oauth/<id>) unless the sign-in server advertises RFC 9207 issuer identification, in which case ChatGPT uses one stable address for every connector instead. Supabase Auth does not advertise it, so each connector returns to a different address — and a pre-registered Client ID, which has to name its return addresses in advance, cannot cover them. Dynamic registration handles this correctly by registering each connector's own address as it is created.