> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elanotes.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agents

> Connect Ela over MCP, HTTP, or the notes CLI. Search returns handles and coverage, not file dumps.

Ela is memory for agents that already speak MCP or HTTP. Search returns structured handles with provenance. Coverage on every response says what was searched and what was left out.

## How to connect

| Path                         | Use when                                                                         |
| ---------------------------- | -------------------------------------------------------------------------------- |
| [Local MCP](/mcp-local)      | The vault is on this machine. Stdio. Indexes `private/`.                         |
| [Cloud MCP](/mcp-cloud)      | A remote agent. Streamable HTTP on the API host. Same tools, same auth as `/v1`. |
| [HTTP API](/api/overview)    | Writes, filters, SDKs. Stable path `/v1`.                                        |
| [CLI](/cli) `notes --remote` | A first-class client through `@elanotes/sdk`.                                    |

MCP tools are **read-only**. Agents write through the HTTP API, `notes --remote`, or the web review queue.

Production origin: `https://api.elanotes.com` (`/v1` and `/mcp`). Send a bearer. Local clone: `http://127.0.0.1:4000` — see [MCP cloud](/mcp-cloud) and [CLI](/cli).

## What every retrieval keeps

* **Citations, not dumps.** Hits are pointers. Fetch only what you need.
* **Coverage.** Searched count, named exclusions, why the set is partial. Silent gaps are the failure mode Ela refuses.
* **Determinism.** Same query, same `index_version` and `ranker_version`, same hits.
* **Vault isolation.** Every query is scoped to one `vault_id`.
* **Zero is valid.** Empty results plus coverage beat padded noise.
* **`private/` never leaks** on cloud paths. Local MCP can see it. See [Privacy](/privacy).

## Machine-readable entry

This host serves `/llms.txt` and `/llms-full.txt`. The wire contract is OpenAPI 3.1 (`GET /openapi.json` on the API; this site’s copy is the [API reference](/api/overview)).

Typed clients: [TypeScript SDK](/sdk-ts) and [Python SDK](/sdk-python).
