Skip to main content
Prerequisites:
  • An Uplink account (sign up on Uplink Console)
  • The Uplink Connect mobile app — the companion app you pair with a session. Download for iOS or Android
The endpoint is https://api.uplink.build/mcp. Add it to your AI client and go.

Claude Code

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:
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, 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 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 Uplink recognizes. Claude Code, Cursor, ChatGPT, Zed and Cline are on that list — if yours isn’t, get in touch 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:
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.
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.

Revoking access

Every AI client that signs in shows up under Settings → Authorized apps in Uplink Console. See Revoke 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:
Requires the Bun runtime. This is a third-party server (mintlify-mcp) that reads any Mintlify-hosted docs site — it’s independent of the Uplink MCP server and not needed for device automation.