# For agents

The same label for an AI: an MCP server, an installable skill, llms.txt, a Markdown twin of every page and a JSON API. Public, read-only, no keys.

## The MCP server

`https://aidols.fans/mcp` — Model Context Protocol over Streamable HTTP. No account, no key, no state.

### Claude Code

One command.

```
claude mcp add --transport http castpad https://aidols.fans/mcp
```

### Claude (web and desktop)

Settings → Connectors → Add custom connector, then paste the address.

```
https://aidols.fans/mcp
```

### Cursor, Windsurf and other JSON-config clients

Add to the mcpServers block.

```
{
  "mcpServers": {
    "castpad": { "url": "https://aidols.fans/mcp" }
  }
}
```

### Codex CLI

In ~/.codex/config.toml.

```
[mcp_servers.castpad]
url = "https://aidols.fans/mcp"
```

### Clients that only speak stdio

Bridge it.

```
npx mcp-remote https://aidols.fans/mcp
```

## Tools

| Tool | What it does |
|---|---|
| `list_artists` | Every artist on the label: slug, name, one-line thesis, medium, number of films, whether it is a labelled demo. Start here. |
| `artist_canon` | Who an artist is, as data: the constants (what never changes), the identity text to paste into every prompt (long for close and medium shots, short for full-length and wide), every look with its wardrobe text, the voice, the never-list, credit and terms. Call this before making anything with an artist. |
| `list_films` | Films on the label (or one artist's): logline, length, the production numbers (song, edit, stills, motion, time), frames, and the making-of documents. |
| `browse_images` | Page through the images films were made from. scope: film (first frames in the finished cut), her (the artist is in it), all. Returns compact entries; get_image has the rest. |
| `search_images` | Full-text search over every image prompt, id, batch, look and set. All words must match. |
| `get_image` | One image: the exact prompt and params, size, framing, look, set, whether it is a plate in the film, the judge's or director's verdict, its siblings and URLs. id is artist/film.batch.job.n as returned by browse_images. |
| `get_guide` | A wiki page as Markdown, optionally one section (by its heading). Topics: start, status, master, make, films, package, audition, ledger, money, agents, build. |
| `get_record` | A film's making-of document as Markdown, in pages: readme (the story, numbers, cost), prompts-stills, prompts-motion, song. |
| `build_prompt` | Compose an image prompt for an artist from their canon: the framing, the identity text (long or short by distance, word for word), a look's wardrobe, your scene and light, the medium, and the safety tail. Paste the result into any image model. |

Resources: `castpad://artist/{slug}/canon`, `castpad://film/{artist}/{film}`, `castpad://record/{artist}/{film}/{doc}`, `castpad://wiki/{topic}`.
Prompts: `castpad_still` (a new still that stays on canon), `castpad_film` (plan a music video).

## The skill

```
curl -L -o castpad-skill.zip https://aidols.fans/skill/castpad-skill.zip && unzip -o castpad-skill.zip -d ~/.claude/skills/
```

Read it first: https://aidols.fans/skill/SKILL.md. Inside: the skill, every artist's canon, the wiki, every film's record, and a standard-library script to search prompts and fetch images.

## llms.txt and Markdown

- https://aidols.fans/llms.txt — the index
- https://aidols.fans/llms-full.txt — everything in one file
- Any page: add `.md` to the address.

## JSON

- `https://aidols.fans/api/index.json` — the site: artists, wiki, every endpoint
- `https://aidols.fans/api/films.json` — every film on the label, with numbers and documents
- `https://aidols.fans/api/shows/{artist}/films.json` — one artist's films
- `https://aidols.fans/api/shows/{artist}/films/{film}` — one film with every image and its prompt
- `https://aidols.fans/api/shows/{artist}/images/{film.batch.job.n}` — one image
- `https://aidols.fans/api/shows/{artist}/master.json` — an artist's canon as data
- `https://aidols.fans/api/shows/{artist}/receipts?download` — an artist's full record, replayable

Every endpoint sends `Access-Control-Allow-Origin: *`. Keep agents polite: cache what you fetch, take the small images unless you need the large ones.
