lpc-character-mcp
by Gamezxz
README.md
# lpc-character-mcp (Cloudflare Worker)
A hosted **MCP server** that randomly generates [Universal LPC Spritesheet
Character Generator](https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator)
characters and renders each as a full animation spritesheet PNG — no local
install, no AI image model, just real sprite layers composited on a canvas.
Runs entirely on **Cloudflare Workers** + **Browser Rendering** (headless
Chromium via `@cloudflare/puppeteer`), with the ~141k sprite assets and every
generated character stored in **R2**.
## Endpoints
| Route | Purpose |
|-------|---------|
| `GET /mcp` | MCP Streamable HTTP endpoint (tool: `generate_random_character`) |
| `GET /api/generate` | Generate one character on demand → JSON `{ files: [...] }` |
| `GET /api/files` | List every generated spritesheet stored in R2 |
| `GET /files` | Backend page: browse + download generated characters |
| `GET /generated/*` | Serve a generated PNG from R2 |
| `GET /spritesheets/*` | Serve a source sprite layer from R2 |
| `GET /mcp-docs.html` | Landing/docs page with a live "Randomize" button |
## MCP tool parameters
| Name | Type | Default | Notes |
|------|------|---------|-------|
| `count` | integer 1–8 | `1` | Characters per call |
| `bodyType` | enum | `random` | `male` `female` `teen` `child` `muscular` `pregnant` |
| `seed` | integer | — | Reproducible results across a batch |
| `includeRareExtras` | boolean | `false` | Wounds, tails, wings, prostheses, etc. |
| `humanOnly` | boolean | `false` | Human faces + normal skin bodies only |
## Connect
```
claude mcp add --transport http lpc-character-remote https://lpc-character-mcp.gamezxz.workers.dev/mcp
```
## Storage
Generated characters live under the `generated/` prefix in R2 and are
auto-deleted after **30 days** by a bucket lifecycle rule
(`expire-generated-30d`).
## Develop / deploy
See [DEPLOY.md](./DEPLOY.md). In short:
```sh
npm install
npx wrangler deploy
```
`PUBLIC_URL` in `wrangler.jsonc` must point at the Worker's own public URL —
Browser Rendering navigates over the real network.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues