> Source: https://wexa.ai/docs/surfaces/mcp/chatgpt

# ChatGPT

ChatGPT connects to a remote server as a **connector**. Unlike an editor, there is no file to edit:
you add the server in Settings, ChatGPT runs the authorization in a browser, and the tools become
available to the model. The whole configuration is one URL.

Read the availability note first, because more of what stops people here is on OpenAI's side than
on Wexa's.

## Add the connector

You need the project's connect URL. It carries the project identifier, and a URL without one is
permanently retired:

```text
https://fabric.wexa.ai/mcp/{projectId}
```

Turn on developer mode, then open **Settings → Connectors**, choose to add a custom connector, and
give it a name and that URL. The URL is all you need: Wexa publishes the protected-resource and
authorization-server discovery documents a connector reads to find the authorization flow, so there
is no client identifier, secret or endpoint to paste anywhere. If the dialog asks you to pick an
authentication method, OAuth is the one Wexa advertises.

ChatGPT then registers itself with Wexa dynamically, which means no client identifier or secret is
created by you or stored by you, and opens Wexa's consent screen. Sign in, confirm the
organization, department and project, and approve. Because the URL was project-scoped, the consent
screen binds to that project rather than asking you to choose one.

Approve, and the connector is listed with Wexa's tools. Open it and switch off anything the
assistant should not reach — worth doing here more than anywhere, because a chat client will happily
try a tool your credential is not granted and report the refusal as a failure.

## If your account offers the SSE transport instead

Some versions of the connector dialog expect the older transport, where the URL ends in `/sse`
rather than `/mcp`. Wexa serves both, and the project identifier is required on either:

```text
https://fabric.wexa.ai/sse/{projectId}
```

Prefer the `/mcp/{projectId}` form when the dialog accepts it. On the SSE transport a reply is
pushed onto a buffered channel and dropped if the client is not reading quickly enough, so a busy
session can lose an answer silently rather than slow down. The
[overview](/docs/surfaces/mcp/overview) has the full comparison.

## What Wexa does not do here

Two of ChatGPT's features expect particular tools with particular shapes, and Wexa implements
neither.

**Deep research connectors** are asked for a `search` tool returning results with `id`, `title` and
`url`, and a `fetch` tool returning whole documents. Wexa has [`search-code`](/docs/tools/search-code)
and [`fetch-code`](/docs/tools/fetch-code), but they are named differently and answer with code
spans rather than that document shape, so Wexa will not appear as a research source. It works as
an ordinary developer-mode connector, with its full tool list available to the model in chat.

**Documents and prompt templates** attached from a connector do not exist for Wexa either. The
Wexa MCP server advertises the tools capability and nothing else — `resources/list` and
`prompts/list` answer "method not found" rather than answering empty. Wexa's own documents live in
the knowledge base and are read through a tool call like everything else, so ask for them rather
than looking for them in the attachment menu.

## Check it worked

Ask something that can only be answered from your project, and see whether ChatGPT reaches for a
Wexa tool:

> Use Wexa to tell me what my current scope and quota are.

The `docs` tool is the right first target: it works on every deployment,
needs no data in your project, and answers with your organization, department and project
identifiers, your grants and your quota windows. If the identifiers are not the ones you expect, the
connector is pointed at another project's URL.

## When it will not connect

**"This URL no longer works."** That text is Wexa's, returned with `410 Gone`, and it means the
URL had no project in it. Add the project identifier; the unscoped path will not come back.

**The authorization window opens and returns an error.** Wexa verifies that you are actually a
member of the project you consented to, and refuses to mint a token otherwise. Confirm your
membership in the Wexa console, then retry.

**Connected, but every tool call is refused.** That is Wexa's governance rather than the
connection: the message names the grant that was missing or the policy that stopped the call.
[Policy decisions and approvals](/docs/concepts/policy-and-approvals) covers the calls that wait for
a person to answer, which a chat client will show as a pending result rather than a failure.

## Where to go next

**Surfaces — Overview**
What the server exposes, and what a tool with no backing service answers.

**Surfaces — Custom clients**
The authorization flow ChatGPT runs for you, request by request.

**Reference — All tools**
Every tool the assistant can reach once the connector is on.
