> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uplink.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Wire the Uplink MCP server into Claude Code, Cursor, or any other MCP client

<Info>
  **Prerequisites:**

  * An Uplink account (sign up on [Uplink Console](https://console.uplink.build))
  * The **Uplink Connect** mobile app — the companion app you pair with a session. Download for [iOS](https://apps.apple.com/us/app/connect-app/id6753720226) or [Android](https://play.google.com/store/apps/details?id=build.uplink.connect)
</Info>

The endpoint is `https://api.uplink.build/mcp`. Add it to your AI client and go.

## Claude Code

```bash theme={null}
claude mcp add --transport http uplink https://api.uplink.build/mcp
```

Restart Claude Code. The first time you ask it to do something with Uplink, it opens Uplink Console in your browser for you to grant access, then picks up where it left off.

## Cursor

Add to `~/.cursor/mcp.json`:

```json theme={null}
{
  "mcpServers": {
    "uplink": {
      "url": "https://api.uplink.build/mcp"
    }
  }
}
```

Cursor opens the browser sign-in the first time you use it.

## First session

Ask your client to *"start an Uplink session"*. It hands you a link to a pairing page in Uplink Console, showing a QR code and a 6-digit code:

* **iPhone** — scan the QR with your Camera app. It launches the Connect **App Clip** and pairs instantly, with nothing to install.
* **Android** — install the [Connect app](https://play.google.com/store/apps/details?id=build.uplink.connect), open it, then scan the QR.
* **Already have Connect open?** Type the 6-digit code instead.

Once your device connects, your client can drive the page. See [Your first session](/mcp/first-session) for what to say next.

## Other clients

Any client that speaks streamable-HTTP MCP works the same way: point it at `https://api.uplink.build/mcp` and it discovers the authorization server from the `WWW-Authenticate` challenge on its first request, then runs the same browser sign-in.

That discovery relies on the client identifying itself with a [Client ID Metadata Document](https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/) Uplink recognizes. Claude Code, Cursor, ChatGPT, Zed and Cline are on that list — if yours isn't, [get in touch](https://uplink.build) and we'll add it.

### Clients that can hold a secret

For a client that can't do the browser flow but can keep a `client_id` and `client_secret`, register an OAuth client in Console (**Projects → your project → Settings → OAuth clients**) with `sessions:read` and `sessions:write`, and give the client those credentials plus the token endpoint:

```
https://api.uplink.build/oauth/token
```

Discovery advertises `client_credentials`, so a client that supports the grant mints its own tokens and renews them as they expire. Unlike the browser flow, this authorizes the client against the organization the OAuth client belongs to — there is no consent step and no per-user grant.

<Warning>
  Minting a token by hand and pasting it into a config is a test, not a setup. It expires — an hour by default, 24 at most — and `client_credentials` issues no refresh token (RFC 6749 §4.4.3), so nothing renews it. Let the client hold the credentials and do the exchange itself.
</Warning>

## Revoking access

Every AI client that signs in shows up under **Settings → Authorized apps** in Uplink Console. See [Revoke access](/mcp/revoking-access).

## Optional: docs lookups from your AI client

The Uplink MCP server already ships its SDK reference as resources the model reads before writing scripts, so this isn't required. If you want your AI client to be able to search the full Uplink docs directly, you can add the Mintlify docs MCP alongside it:

```bash theme={null}
claude mcp add uplink-docs -- bunx mintlify-mcp -p uplink
```

<Info>
  Requires the [Bun](https://bun.sh) runtime. This is a third-party server ([`mintlify-mcp`](https://lobehub.com/mcp/vigtu-mintlify-mcp)) that reads any Mintlify-hosted docs site — it's independent of the Uplink MCP server and not needed for device automation.
</Info>
