# Connect Claude & ChatGPT

> Add one connector URL, authorize with OAuth, pick a workspace. The read-only avatar tools turn on. This page covers Claude, ChatGPT, and generic MCP clients (Cursor, MCP Inspector), plus what the consent screen shows and how to fix a stuck connection.

```
https://avtrz.dev/mcp
```

The Avtrz MCP server is a remote, OAuth-secured streamable-HTTP endpoint. Every client connects the same way: paste the URL, complete the handshake, choose the workspace. The consent screen detects which client you're coming from and tailors the copy.

## Claude

Claude reaches the server through its **Connectors** directory.

1. In Claude, open **Settings → Connectors** (web and desktop both work).
2. Choose **Add custom connector**.
3. Paste the connector URL:

```
https://avtrz.dev/mcp
```

4. Claude opens the Avtrz consent screen in your browser. Sign in if you aren't already.
5. **Pick the workspace** this connection should bill to (if you belong to more than one), then click **Authorize**.
6. Claude confirms the connector is connected. Start a chat and ask it to look up a LinkedIn profile — it will call `get_profile` or `get_profile_avatar` automatically.

## ChatGPT

ChatGPT connects MCP servers through **Apps / Developer Mode**.

1. Enable **Developer Mode** in ChatGPT settings if you haven't already.
2. Open **Apps & Connectors → Add**, and choose to add an MCP server.
3. Paste the connector URL:

```
https://avtrz.dev/mcp
```

4. ChatGPT opens the Avtrz consent screen. Sign in, **pick your workspace**, and **Authorize**.
5. Back in ChatGPT, the Avtrz tools appear. Ask it to resolve a profile and it calls the tools inline.

## Generic MCP clients (Cursor, MCP Inspector)

Any MCP client that supports remote servers with OAuth works. Point it at the same URL and complete the browser handshake.

**Cursor** — add an MCP server in settings with the remote URL:

```json
{
  "mcpServers": {
    "avtrz": {
      "url": "https://avtrz.dev/mcp"
    }
  }
}
```

Cursor opens the consent screen in your browser; authorize and pick a workspace.

**MCP Inspector** — run the inspector and connect to the streamable-HTTP transport:

```shell
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: https://avtrz.dev/mcp
```

The inspector walks the OAuth flow for you, then lists `get_profile_avatar` and `get_profile` so you can call them by hand.

## What the consent screen shows

The screen is built to make the grant obvious before you approve it:

- **Verified publisher** — the connecting client (Claude, ChatGPT, or your MCP client) is detected from its redirect URI and named at the top, with a verified badge.
- **Granting access as** — your account and the **workspace** this connection binds to. If you're in more than one workspace, use **Switch** to choose the right one. The issued token, and every quota and rate-limit decision, keys off that workspace.
- **Scopes** — the OpenID scopes requested (`openid`, `profile`, `email`, `offline_access`). Required scopes are locked on; optional ones you can toggle off.
- **Read-only guarantee** — an explicit note that the client can't write or delete data, change billing, or message your team.
- **Tools this unlocks** — the read-only avatar tools, `get_profile_avatar` and `get_profile`.
- **Security** — the exact redirect URI, and a note that the connection uses OAuth 2.1 + PKCE and can be revoked anytime from your dashboard.

Once connected, the model also gets `get_publishable_key`, a read-only helper that returns the workspace's avatar key and a URL template for building durable image URLs. See [MCP tools](https://avtrz.dev/docs/mcp/tools) for all three.

You must have at least one workspace to authorize. If you don't, create one in your dashboard first — the consent screen will prompt you.

## Troubleshooting

- **No workspace to grant** — the consent screen blocks authorization until you have an organization. Create one in the [dashboard](https://avtrz.dev/dashboard), then retry the connection.
- **Tools return "Not authenticated"** — the access token expired or was revoked. Reconnect the connector to start a fresh OAuth handshake.
- **Wrong workspace billed** — a connection is bound to the workspace you chose at consent time. To change it, revoke the connection and reconnect, picking the right workspace.
- **Client can't discover the server** — confirm the URL is exactly `https://avtrz.dev/mcp` (streamable HTTP). The server answers an unauthenticated request with a `401` and an RFC 9728 `WWW-Authenticate` challenge so the client can find the authorization server; a client that ignores it won't start the flow.
- **Quota exhausted mid-chat** — the tools return a clear "quota exceeded for this workspace" message. Upgrade the plan or wait for the next cycle; the connection itself stays valid.

## Where to go next

- [MCP tools](https://avtrz.dev/docs/mcp/tools): Inputs, outputs, example prompts, and edge cases for all three tools.
- [MCP server](https://avtrz.dev/docs/mcp): What the server is and how it relates to the avatar API.
