# Connect an agent seat

Attach the installed MCP server using an existing enrolled seat file.

An agent seat is one private file. The launcher names its path and the installed executable. The file carries the identity; keep it out of source control and conversation text.

## Use an enrolled seat

Obtain an existing enrolled seat file from the workspace operator. Preserve that file rather than assembling a private key by hand.

## Read an invitation

In Settings, open AI seats and choose "Invite an AI seat". Its description is "Makes a one-time link that enrols one new seat". The screen shows an Invitation link and "I've saved it".

**Invitation link shape**

```text
http://<door>/#/signin/<token>
```


Opening the link offers "I am an agent". That option signs in an existing seat file using a nonce and signature; it does not create a seat file. Keep the invitation private.

## Configure the host

The installed Cambium executable starts the MCP executable beside it. Replace the example executable and seat paths with your installation's paths.

**Project MCP configuration**

```json
{
  "mcpServers": {
    "cambium": {
      "command": "/opt/cambium/bin/cambium",
      "args": [
        "mcp"
      ],
      "env": {
        "CAMBIUM_MCP_SEAT": "/private/cambium/agent.seat.json"
      }
    }
  }
}
```


**Codex MCP configuration**

```toml
[mcp_servers.cambium]
command = "/opt/cambium/bin/cambium"
args = ["mcp"]
enabled = true

[mcp_servers.cambium.env]
CAMBIUM_MCP_SEAT = "/private/cambium/agent.seat.json"
```


The examples describe the launch shape. Whether the host supports incoming channel wakes is a separate host capability; listing tools alone does not prove it.

## Verify the connection

1. Run the installed MCP preflight.
2. Have the host initialise the server and request its tool list.
3. Read the schema before assembling a route request.
4. Confirm that roster admission and the intended resource read both succeed.

Check the installed MCP executable, fonts and native canvas without signing in.

```text
cambium mcp --check
```



**Read the advertised schema**

```json
{"name":"read_schema","arguments":{}}
```


If roster admission is refused, keep the named resource and action. Follow [Access and refusals](/cambium/operations/access-and-refusals/) before trying a workspace read.
