Paste this URL into any MCP client that speaks Streamable HTTP:

`https://mcp.prezzly.ai`

Prezzly authenticates with `Authorization: Bearer <token>`. Prefer OAuth when the client supports it. If it asks for a key, generate one under [Connections](https://app.prezzly.ai/connections).

> **Note:** After you connect, [install the Prezzly skill](/docs/skills/install/) so the agent uploads files locally (`uploadUrl` + `curl`) instead of pasting image contents into tool calls.

## Cursor

Add this to `.cursor/mcp.json` in the project (or your user MCP config). The `url` field is enough:

```json
{
  "mcpServers": {
    "prezzly": {
      "url": "https://mcp.prezzly.ai"
    }
  }
}
```

Reload MCP in Cursor Settings. Cursor starts OAuth and asks you to sign in to Prezzly. Then tell the agent to upload the project folder. See [Publish and update a deck](/docs/mcp/upload/).

## Claude.ai

Settings → Connectors → Add custom connector. Paste `https://mcp.prezzly.ai`. Claude starts OAuth and asks you to sign in to Prezzly.

Ask Claude to build or upload the deck. In the browser it has no disk, so it should call `create_presentation` with a self-contained `index.html` in `files`.

## Claude Code

```bash
claude mcp add --transport http prezzly https://mcp.prezzly.ai
```

Claude Code starts OAuth when the client supports it. Otherwise paste a Bearer key from Connections.

## Claude Desktop

Add a custom connector with `https://mcp.prezzly.ai`, or put the same JSON as Cursor into the Desktop MCP config. Prefer OAuth. A Bearer key from Connections also works.

## VS Code (Copilot)

In `.vscode/mcp.json` or your user MCP settings:

```json
{
  "servers": {
    "prezzly": {
      "url": "https://mcp.prezzly.ai",
      "type": "http"
    }
  }
}
```

Field names vary by VS Code build. If the editor asks for a header, set `Authorization` to `Bearer <key>` from Connections.

## Windsurf, Cline, and Zed

Any client that accepts a Streamable HTTP MCP URL can use `https://mcp.prezzly.ai`. Use OAuth when the client starts it. Otherwise add:

```http
Authorization: Bearer <your-prezzly-mcp-key>
```

## ChatGPT and other hosts

If the host lets you add a custom MCP or connector URL, paste `https://mcp.prezzly.ai`. Chat clients without a disk should send HTML in `files`, not a zip. See [Publish and update a deck](/docs/mcp/upload/).

## OAuth vs API key

| Method | When to use |
| --- | --- |
| OAuth | Cursor, Claude.ai, and any client that opens a Prezzly sign-in window |
| Bearer API key | Desktop or CLI clients that only accept a token |

Create and revoke keys on [Connections](https://app.prezzly.ai/connections). A 401 with a `create_upload_link` hint means the upload token expired, not that you lost the connection. Mint a new upload URL and continue.

If tools look stale (no `create_upload_link`), reload the MCP server in the client. Do not fall back to pasting HTML into `add_revision`.