# Build with AI

> Connect Claude Code, Cursor or any coding agent: the docs as Markdown, and an MCP server that builds agents and puts them on your site.

A coding agent can build on Crackle the way you would: read the docs, create an agent, put it on a website. Give it the docs in a form it reads well, and connect it to Crackle’s MCP server so it can do the work in your workspace.

## The docs, for agents

| Address | What it is |
| --- | --- |
| `https://www.cracklehq.com/llms.txt` | What Crackle is, its price, and every docs page with a line on each. |
| `https://www.cracklehq.com/llms-full.txt` | All of the docs in one file. |
| Any docs page plus `.md` | That page as Markdown, with every code sample in cURL, Node.js and Python. The overview is `/docs.md`. |

To keep a coding agent pointed the right way in your project, add a few lines to its instructions file (`AGENTS.md`, `CLAUDE.md` or Cursor’s rules):

AGENTS.md:

```
## Voice agents: Crackle

- Docs: https://www.cracklehq.com/llms.txt lists every page; add .md to any docs page for Markdown.
- The API key (CRACKLE_API_KEY, ck_…) stays on the server. A browser or app gets a join token
  from POST /v1/calls through our own backend, or uses the agent's call button, whose
  publishable key (pk_…) is safe in a page.
- Calls run on LiveKit: livekit-client on the web, @livekit/react-native in the app.
```

## The MCP server

`https://www.cracklehq.com/mcp` speaks MCP over HTTP. With a workspace API key it creates and changes agents, finds voices, puts an agent on a website and reads calls. Without a key it still searches and reads these docs. Create the key in the studio under **API keys**; see [Authentication](https://www.cracklehq.com/docs/authentication).

Claude Code:

```bash
claude mcp add --transport http crackle https://www.cracklehq.com/mcp \
  --header "Authorization: Bearer $CRACKLE_API_KEY"
```

Cursor: .cursor/mcp.json:

```json
{
  "mcpServers": {
    "crackle": {
      "url": "https://www.cracklehq.com/mcp",
      "headers": { "Authorization": "Bearer ck_your_key_here" }
    }
  }
}
```

VS Code: .vscode/mcp.json:

```json
{
  "servers": {
    "crackle": {
      "type": "http",
      "url": "https://www.cracklehq.com/mcp",
      "headers": { "Authorization": "Bearer ${input:crackle-key}" }
    }
  },
  "inputs": [
    { "type": "promptString", "id": "crackle-key", "description": "Crackle workspace API key", "password": true }
  ]
}
```

> **The key acts as your workspace**
>
> A workspace key can change your agents, and a change reaches callers on their next call. Keep a file with the key in it out of version control, or use VS Code’s prompt as above. Your coding agent asks before it runs a tool that changes something: read what it is about to do.

## What it can do

| Tool | What it does | Needs a key |
| --- | --- | --- |
| `search_docs` | Finds the docs pages that answer a question. | No |
| `read_docs_page` | Returns a docs page as Markdown. | No |
| `list_agents`, `get_agent` | Reads your agents, without their secret keys. | Yes |
| `create_agent` | Creates an agent from a name, instructions, an opening line, a language and a voice. | Yes |
| `update_agent` | Changes an agent’s name, instructions, opening line, language or voice, and nothing else. | Yes |
| `list_voices` | Finds voices by language, gender or a search. | Yes |
| `add_call_button` | Switches on an agent’s call button for the sites you name and returns the line of HTML to paste. | Yes |
| `list_calls`, `get_call` | Reads calls with their transcripts, length and cost. | Yes |

## Try it

With the server added, ask your coding agent for the whole thing at once:

Prompt:

```
Make me a Crackle voice agent that books appointments for a dental clinic, in Hinglish,
and put it on my site at localhost:3000.
```

It reads the docs, creates the agent with a voice recorded in Hindi, switches on the call button for `localhost:3000` and hands you the line to paste. Talk to the agent with **Test agent** in the studio, or press the button on your page. For a booking agent that really books, give it your endpoints as [tools](https://www.cracklehq.com/docs/tools); [the booking use case](https://www.cracklehq.com/use-cases/appointment-booking) walks through one.

Source: https://www.cracklehq.com/docs/build-with-ai
