# Build with AI

> Every resource for coding agents: the docs as Markdown, the docs MCP, the Vestra skill, vestra agent setup and vestra mcp.

Give your coding agent an objective, and it builds on Vestra: it reads these docs, follows the Vestra skill and runs the CLI. Each resource is one copy away.

## The docs, for agents

Every page of these docs is Markdown at its own address plus `.md`, and for a request that sends `Accept: text/markdown`. [llms.txt](https://vestra.ai/developers/llms.txt) lists every page, and [llms-full.txt](https://vestra.ai/developers/llms-full.txt) is every page in one file.

At the top of each page, its menu copies the page as Markdown, opens its Markdown, or opens it in an assistant.

Terminal:

```bash
curl https://vestra.ai/developers/llms.txt
curl https://vestra.ai/developers/llms-full.txt
curl https://vestra.ai/developers/quickstart.md
```

## The docs MCP

A public MCP server for these docs: no key, no sign-in, and nothing it can change. `search_docs` finds the sections that answer a question, each with its page; `read_doc` reads a page as Markdown. Both tell the agent to trust the docs over what it remembers.

It speaks MCP over streamable HTTP. Add it to your coding tool once.

Claude Code:

```bash
claude mcp add --transport http vestra-docs https://vestra.ai/developers/docs-mcp
```

Cursor: .cursor/mcp.json:

```json
{
  "mcpServers": {
    "vestra-docs": {
      "url": "https://vestra.ai/developers/docs-mcp"
    }
  }
}
```

Codex:

```bash
codex mcp add vestra-docs --url https://vestra.ai/developers/docs-mcp
```

Gemini CLI:

```bash
gemini mcp add --transport http vestra-docs https://vestra.ai/developers/docs-mcp
```

## Set up your coding tools

`vestra agent setup` finds Claude Code, Codex, Cursor and Gemini CLI on your computer. For each, it puts the Vestra skill where the tool reads skills, and adds `vestra mcp` as an MCP server, with the tool's own command where it has one.

It shows the plan and asks first, then says what changed. It never writes a key anywhere: `vestra mcp` reads the one `vestra login` saved. Install the CLI first, straight from this site; the [quickstart](https://vestra.ai/developers/quickstart.md) has the rest.

Install the CLI:

```bash
npm install -g https://vestra.ai/developers/kit/vestra-cli-0.1.8.tgz
```

Terminal:

```bash
vestra agent setup             # the plan, then y/N
vestra agent setup --dry-run   # the plan only
vestra agent setup --print     # how to do it by hand
```

## vestra mcp: your account, from your editor

`vestra mcp` is an MCP server on your computer, over stdio, that acts on your account with your key: it sets Bash up, tests it, deploys it to test mode and asks it. It has `search_docs` and `read_doc` too.

The docs MCP only reads the docs, for anyone; `vestra mcp` acts for you, so it runs where your key is. [From your editor](https://vestra.ai/developers/guides/your-editor.md) walks through it.

mcp.json:

```json
{
  "mcpServers": {
    "vestra": {
      "command": "vestra",
      "args": [
        "mcp"
      ]
    }
  }
}
```

## The Vestra skill

A skill an agent loads when the work is Vestra's: the loop of init, test, deploy and ask, the file, keys, approvals, events and errors, and the docs to read first. `vestra agent setup` installs it, and `vestra agent skill` prints it.

The site serves it too, listed in `/.well-known/skills/index.json` for the tools that install skills from a site.

Terminal:

```bash
vestra agent skill > SKILL.md
curl https://vestra.ai/developers/skills/vestra/SKILL.md
npx skills add https://vestra.ai
```

## From an objective to a deployment

With the skill and an MCP server in place, give your agent the objective in plain words: "Set up Vestra to answer our travellers' booking questions, test it and deploy it to test mode." It runs `vestra init`, plays the tests, fixes what fails, deploys, wires your code and asks as a user would.

Two steps stay with you. A test key, once: make one on the [console's Keys page](https://vestra.ai/developers/console/keys), then `vestra login` asks for it without showing it. And going live: `vestra deploy --live` reaches real users and spends real money, so your agent stops and asks you first.

Yours to run:

```bash
vestra login            # once: your test key
vestra deploy --live    # going live, after you say yes
```
