> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.livingbrain.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.livingbrain.com/_mcp/server.

# MCP with sign-in

Connect Living Brain to **ChatGPT** or **Claude** and use your brain right in the chat. You
sign in with your Living Brain account. There's no API key, code, or setup on your side.

Once connected, you can ask the assistant to:

* Save notes, links, transcripts, and conversations to your brain.
* Search and read what you've saved.
* Show how your pages connect, including in an interactive knowledge graph.
* Create and pick projects and brains.

## Connect ChatGPT or Claude

#### Add Living Brain as a connector

In ChatGPT or Claude, add a custom connector and paste this URL:

```text
https://api.livingbrain.com/mcp
```

#### Sign in

A Living Brain sign-in window opens. Use the same account and password you use on
[livingbrain.com](https://livingbrain.com).

#### Start chatting

Ask something like *"Save this conversation to my brain"* or *"What do I have on
onboarding?"*. The assistant can only see the projects and brains on your account.

The same URL works in any other MCP client that supports OAuth sign-in.

> **Note**
>
> Building an agent or connecting a coding tool like Claude Code, Codex, or Cursor with an API
> key? Use [MCP with API key](/mcp) instead.

## Reference

The rest of this page is for developers. It describes the tools, resources, and behavior the
connector exposes.

### Scopes and tools

Living Brain exposes tools according to the OAuth scopes granted to the connector. If a tool
is missing, the connector usually wasn't granted its scope. Required arguments are in **bold**.

#### `livingbrain:list`

| Tool                         | Arguments | Returns                                                                                                                      |
| ---------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `living_brain_list_projects` | None      | Every accessible project, including projects without brains: ID, name, slug, ownership kind, brain count, creation time      |
| `living_brain_list_brains`   | None      | Every accessible brain: ID, name, slug, description, project, timestamps                                                     |
| `living_brain_open_setup`    | None      | Opens the interactive project and brain setup view; returns projects, brains, page counts, and whether creation is permitted |

#### `livingbrain:manage`

| Tool                          | Arguments                              | Returns                                                                             |
| ----------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------- |
| `living_brain_create_project` | **`name`**                             | The created project, owned by the signed-in user                                    |
| `living_brain_create_brain`   | **`name`**, `description`, `projectId` | The created brain. If `projectId` is omitted, the user must own exactly one project |

#### `livingbrain:search`

| Tool                       | Arguments                                       | Returns                                                                                                                                                               |
| -------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `living_brain_search`      | **`query`**, `brainId`, `topK`, `minSimilarity` | Matching pages: slug, title, summary, excerpt, relevance, version, source references. Semantic search with keyword fallback                                           |
| `living_brain_show_search` | **`query`**, `brainId`, `topK`, `minSimilarity` | Runs the same search and opens the interactive search view on supported hosts; returns the selected brain, query, results, and whether full page reading is permitted |

Pass a result's `slug` to `living_brain_read_page` to read the full page.

#### `livingbrain:read`

| Tool                            | Arguments                         | Returns                                                                                                                             |
| ------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `living_brain_read_page`        | **`slug`**, `brainId`             | The full page: title, summary, body, page type, bucket, status, version, pinned state, source references, update time               |
| `living_brain_get_index`        | `brainId`, `limit`                | The pages in a brain: slug, title, summary, type, pinned state, status                                                              |
| `living_brain_list_connections` | `brainId`, `limit`, `offset`      | Discovered relationships: connected page titles and slugs, similarity, strength, reasoning, acknowledgement state, creation time    |
| `living_brain_capture_status`   | **`sourceId`**, `brainId`         | `pending`, `compiling`, `completed`, or `failed`, plus affected page IDs and timestamps                                             |
| `living_brain_show_graph`       | `brainId`, `nodeLimit`            | Opens the interactive 3D graph on supported hosts; returns the selected brain, page nodes, relationship edges, and truncation state |
| `living_brain_graph_snapshot`   | Same as `living_brain_show_graph` | App-only: used by the interactive graph to refresh itself                                                                           |

#### `livingbrain:capture`

| Tool                   | Arguments                                                                                          | Returns                                               |
| ---------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `living_brain_capture` | **`kind`**, exactly one of `content` or `fetchUrl`, plus `brainId`, `label`, `originRef`, `bucket` | `sourceId`, initial status, receipt ID, creation time |

* `kind`: `note`, `file`, `url`, `transcript`, `chat_turn`, or `integration`
* `bucket`: `inbox`, `notes`, `ideas`, or `projects`

Capture is asynchronous. Poll `living_brain_capture_status` with the returned `sourceId`.

### Resources

MCP clients read these with `resources/read`. They aren't browser URLs.

| URI                                           | Scope                | Contents                                                                             |
| --------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------ |
| `livingbrain://brains/{brainId}/index`        | `livingbrain:read`   | Up to 100 page index entries. `resources/list` returns one for each accessible brain |
| `livingbrain://brains/{brainId}/pages/{slug}` | `livingbrain:read`   | The same page data as `living_brain_read_page`                                       |
| `livingbrain://brains/{brainId}/profile`      | `livingbrain:read`   | The user's brain profile and assistant preferences, or `null` if there is no profile |
| `ui://living-brain/v3/setup.html`             | `livingbrain:list`   | Interactive setup, used by `living_brain_open_setup`                                 |
| `ui://living-brain/v1/search.html`            | `livingbrain:search` | Interactive search, used by `living_brain_show_search`                               |
| `ui://living-brain/v5/graph.html`             | `livingbrain:read`   | Interactive graph, used by `living_brain_show_graph`                                 |
| `livingbrain://ui/brain-model/{chunk}`        | `livingbrain:read`   | Graph model, used internally by the interactive graph                                |

### Workflows

#### Set up a brain

1. Call `living_brain_list_projects` and `living_brain_list_brains`.
2. If you need a new project, call `living_brain_create_project`.
3. Create a brain with `living_brain_create_brain` or pick an existing one.

#### Search and read

1. Call `living_brain_search`.
2. Pick a result.
3. Pass its `slug` to `living_brain_read_page`.

#### Browse pages

1. Call `living_brain_get_index`, or read the `livingbrain://brains/{brainId}/index` resource.
2. Pass a page's `slug` to `living_brain_read_page`.

#### Save information

1. Call `living_brain_capture`.
2. Keep the returned `sourceId`.
3. Poll `living_brain_capture_status` until it returns `completed` or `failed`.

#### Explore connections

* Call `living_brain_list_connections` for connection data.
* Call `living_brain_show_graph` for the interactive graph.

### Behavior notes

* You can omit `brainId` only when the user has access to exactly one brain. If there are
  several brains, call `living_brain_list_brains` first.
* Captured information isn't searchable until processing completes.
* Hosts without interactive MCP App support still receive structured data from the
  `show`/`open` tools.