URL: /code/docs-for-agents · Id: `page:/code/docs-for-agents`

# Docs for your agent: the connect lines

> Two lines connect your agent: one reads these pages, keyless, and one acts on your Startup in try mode first.

Two lines connect your agent. The first reads these pages, keyless; the second acts on your [Startup](https://startupbuilder.dev/business/nouns/startup), every call in try mode first.

```bash title="Read, keyless · then act, with your key"
claude mcp add --transport http salesbuilder-docs https://salesbuilder.dev/mcp
claude mcp add --transport http startup-builder https://api.sb/mcp
```

## Connect
| Line | It does | It needs |
| --- | --- | --- |
| `claude mcp add --transport http salesbuilder-docs https://salesbuilder.dev/mcp` | Reads these pages: search, fetch and the guides | Nothing |
| `claude mcp add --transport http startup-builder https://api.sb/mcp` | Acts on your Startup through `do`, every call in try mode first | `$STARTUP_BUILDER_API_KEY` |

Already connected for startupbuilder.dev? Skip the second line.

```text title="The read server’s four instructions"
Read these docs to answer how to win, keep and grow Customers on startupbuilder.dev; act only through the platform MCP.
Run every call in try mode first: it stores nothing and returns what would happen, refusals included.
A 422 names each failing check with its fix and the call that clears it; run that call, then retry.
Nothing marked Not live yet runs today: use the call or Play the mark names instead.
```

## Read
| Tool | It does | Input |
| --- | --- | --- |
| `search` | Finds pages, Plays and refusal codes by keyword | `{ query, limit }` |
| `fetch` | Returns one page as Markdown by its path | `{ id }`, such as `/plays/instant-response` |
| `guides` | Returns the guides whose phrasings answer a task, with the calls each runs | `{ phrase, limit }` |

| File | What it holds |
| --- | --- |
| `/llms.txt` | One line per page, linking its Markdown twin, then every check code with its anchor |
| `/<page>.md` | Each page as Markdown: its first line is `URL: <path> · Id: <id>`, and its code blocks are the window’s tabs |
| `/asks.json` | One guide per Play, channel and seat, in the hub’s Ask shape |
| `/openapi.json` | Every operation these pages call, each also in the hub’s own |
| `/plays/mix.json` | The 27 Play mix answers, until the dry run is keyless |
| `https://startupbuilder.dev/mcp` | The startupbuilder.dev docs server: every record type, call and guide these pages build on |

## Act
```json title="Week one through the act server’s do tool, in try mode"
{
  "name": "do",
  "arguments": {
    "code": "const sb = $.with({ namespace: 'leaseline.app' })\nawait sb.Mailbox.warm({ mailbox: 'mailbox_1', cap: 40 }, { mode: 'try' })   // day 0 · dana@leaseline.app starts warming; it sends on day 15\nawait sb.PlayMix.compile({ startup: 'leaseline.app' }, { mode: 'try' })   // day 1 · 0 Customers · 3 h a week · $0 → three Plays\nconst { task } = await sb.Task.next()   // drafted by your SDR agent: \"Ask Priya at Oakmont for two intros\"\nawait sb.Message.schedule({ message: 'message_3', at: '2026-10-20T14:00:00Z' }, { mode: 'try' })   // day 3 · the first cold email\n// 422 · Your SDR agent’s first cold email did not send: dana@leaseline.app has warmed 3 of 14 days.\n// mailbox-warm: Wait 11 days; warm intros keep running. · then Mailbox.warm\nreturn await sb.Metric.query({ metric: 'days-to-first-outside-order', shape: 'trend' })   // day 21 · the first order from a Customer outside your own Startups",
    "mode": "try"
  }
}
```

| Mode | It does |
| --- | --- |
| `try` | Waits for the result and stores nothing: every call on these pages runs this way first |
| `send` | Returns the pending Action at once |
| `do` | Waits for the Action to finish |

## The files
```bash title="Your own copy of Leaseline"
npm create startups -- --template leaseline --env test
npx startup-builder clock advance --by 56d
```

| Folder | One file is |
| --- | --- |
| `plays/` | A Play you run, stating only what differs from the catalog |
| `audiences/` | A List: who it goes to, saved as a search |
| `agents/` | A seat: its agent or person, its number and its approvals |
| `metrics/` | The quarter: its goal and each seat’s number |