> ## 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

> Install the Uplink MCP server and configure it in your AI client

<Info>
  **Prerequisites:**

  * Node.js 18 or higher
  * An Uplink account (sign up on [Uplink Console](https://console.uplink.build))
  * An MCP-capable AI client (Claude Code, Cursor, Windsurf, etc.)
  * The **Uplink Connect** mobile app — the companion app you use to pair your phone to 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>

## Step 1: Install the CLI

The `@uplink-code/cli` package ships both the `uplink` command (for signing in) and the credentials helpers the MCP server uses to authenticate.

```bash theme={null}
npm install -g @uplink-code/cli
```

## Step 2: Install the MCP server

```bash theme={null}
npm install -g @uplink-code/mcp
```

This installs the `uplink-mcp` binary, which any MCP client can spawn over stdio.

## Step 3: Sign in

```bash theme={null}
uplink login
```

`uplink login` opens your browser to Uplink Console, captures your session tokens via a localhost callback, and writes them to `~/.config/uplink/credentials.json` (mode 0600). The MCP server reads from this file at startup.

<Warning>
  During sign-in your browser may ask to **allow local network access** (a loopback-address permission on recent macOS and Chrome). That prompt is the browser handing your tokens to the `uplink login` command running on your machine — nothing leaves your device. **Allow it.** If you deny it, `uplink login` hangs and times out; reset the permission for the console site in your browser's site settings, then re-run `uplink login`.
</Warning>

Verify the sign-in:

```bash theme={null}
uplink whoami
```

You should see your email, user id, and the credential expiry.

## Step 4: Configure your AI client

### Claude Code

Add the Uplink MCP server to `~/.claude.json` (or run via `claude mcp add`):

```json theme={null}
{
  "mcpServers": {
    "uplink": {
      "type": "stdio",
      "command": "uplink-mcp"
    }
  }
}
```

Restart Claude Code. The `uplink_*` tools become available.

### Cursor

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

```json theme={null}
{
  "mcpServers": {
    "uplink": {
      "command": "uplink-mcp"
    }
  }
}
```

### Other MCP clients

Any client that supports the standard stdio MCP transport works — point it at the `uplink-mcp` binary with no arguments.

## Signing out

```bash theme={null}
uplink logout
```

## First session

In your AI client, ask: *"Start an Uplink session"*. The model calls `uplink_connect` and surfaces a **pairing link**, a **6-digit code**, and a **QR code** (on request). Since you're driving the model from your desktop, pairing hands off to your phone:

* **iPhone** — open the pairing link on your phone, or scan the QR with your Camera. Either one launches the Connect **App Clip** and pairs you instantly — no install. (Tip: paste the link onto your iPhone from your Mac via Universal Clipboard.)
* **Android** — install the [Connect app](https://play.google.com/store/apps/details?id=build.uplink.connect), open it, then scan the QR or enter the 6-digit code.
* **Already have Connect open?** Just enter the 6-digit code.

The model then calls `uplink_wait_for_device`, which blocks until your device pairs. Once paired, it can drive the page with the rest of the [tool catalog](/mcp/tools).

## 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. But 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>
