Skip to main content
ClaudeWave

A whiteboard where AI agents draw their explanations — hand-drawn animated diagrams over MCP

MCP ServersOfficial Registry0 stars0 forksJavaScriptAGPL-3.0Updated today
Install in Claude Code / Claude Desktop
Method: NPX · lousa
Claude Code CLI
claude mcp add lousa -- npx -y lousa
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "lousa": {
      "command": "npx",
      "args": ["-y", "lousa"],
      "env": {
        "LOUSA_TOKEN": "<lousa_token>",
        "LOUSA_URL": "<lousa_url>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
LOUSA_TOKENLOUSA_URL
Use cases

MCP Servers overview

# Lousa

**A whiteboard where your AI agent draws its explanations.**

![Your agent drawing a rate limiter explanation, stroke by stroke](docs/demo.gif)

Ask your agent *"explain this visually"* and it sketches an animated, hand-drawn diagram on a live board — instead of another wall of text. Lousa is an MCP server + web viewer: the agent authors a declarative scene (boxes, arrows, cylinders, notes), and the board renders it stroke by stroke, as if someone were drawing it in front of you.

> *Lousa* is Portuguese for the classic school blackboard.

## Why it's different

- **The agent is the artist.** No prompt box, no OCR — your coding agent already has the context and draws through typed MCP tools.
- **Live, incremental drawing.** Follow-ups edit the scene; the open tab animates only what changed, like watching the diagram evolve.
- **Point at things.** Click elements in the viewer to select them, then tell your agent *"improve what I selected"* — it reads your selection through `get_selection` and targets exactly that.
- **Boards expire by default** (12h, sliding) — a whiteboard, not a document graveyard. `ttlHours: 0` keeps a board forever.

## Quick start

Requires [Node.js 18.17+](https://nodejs.org).

```bash
# Claude Code
claude mcp add lousa -- npx -y lousa mcp

# or run the server directly
npx lousa            # viewer at http://127.0.0.1:4666
```

Any MCP host works — for stdio configuration use command `npx`, args `["-y", "lousa", "mcp"]`. The stdio endpoint auto-starts the local server, so the viewer is always available. Then ask your agent to *"draw how our auth flow works"* and open the URL it returns.

## MCP tools

| Tool | What it does |
|---|---|
| `create_board` | Creates a board from a scene, returns `{id, url}` |
| `update_board` | Replaces the scene; unchanged elements stay byte-identical so only changes animate |
| `get_board` / `list_boards` | Read boards |
| `get_selection` | What the user selected in the viewer (ids + full elements) |
| `delete_board` | Deletes a board |

The scene is a JSON array of elements — `box`, `ellipse`, `diamond`, `cylinder`, `arrow` (connects ids), `line`, `text`, `note` — rendered with [rough.js](https://roughjs.com). The full schema ships inside the tool definitions; agents need no extra setup.

## Self-hosting a shared server

Run `lousa` on any Node host and point machines at it:

```bash
LOUSA_TOKEN=<secret> HOST=0.0.0.0 npx lousa        # server
LOUSA_URL=https://your-host LOUSA_TOKEN=<secret> npx lousa mcp   # each client
```

`LOUSA_TOKEN` gates board listing/creation/deletion and `/mcp`; per-board URLs act as capability links. AWS Lambda + S3 deployment is supported out of the box (`lambda.js` handler + `LOUSA_BUCKET` for storage); any HTTPS front (API Gateway, etc.) works.

| Env var | Default | Purpose |
|---|---|---|
| `PORT` / `HOST` | `4666` / `127.0.0.1` | server bind |
| `LOUSA_DATA_DIR` | `~/.lousa/boards` | filesystem board storage |
| `LOUSA_BUCKET` | — | use S3 storage instead of filesystem |
| `LOUSA_TOKEN` | — | require bearer token (header or `?t=`) on global routes and MCP |
| `LOUSA_URL` | — | `lousa mcp` proxies to this remote server |
| `LOUSA_DEFAULT_TTL_HOURS` | `12` | default board expiry |

## Development

```bash
npm install
npm test          # node --test
node cli.js       # local server
```

## License

[AGPL-3.0](LICENSE) © Henrique Pires

What people ask about lousa

What is henriquepe/lousa?

+

henriquepe/lousa is mcp servers for the Claude AI ecosystem. A whiteboard where AI agents draw their explanations — hand-drawn animated diagrams over MCP It has 0 GitHub stars and was last updated today.

How do I install lousa?

+

You can install lousa by cloning the repository (https://github.com/henriquepe/lousa) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is henriquepe/lousa safe to use?

+

henriquepe/lousa has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.

Who maintains henriquepe/lousa?

+

henriquepe/lousa is maintained by henriquepe. The last recorded GitHub activity is from today, with 0 open issues.

Are there alternatives to lousa?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy lousa to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: henriquepe/lousa
[![Featured on ClaudeWave](https://claudewave.com/api/badge/henriquepe-lousa)](https://claudewave.com/repo/henriquepe-lousa)
<a href="https://claudewave.com/repo/henriquepe-lousa"><img src="https://claudewave.com/api/badge/henriquepe-lousa" alt="Featured on ClaudeWave: henriquepe/lousa" width="320" height="64" /></a>

More MCP Servers

lousa alternatives