Skip to main content
Glama
README.md
# ๐Ÿฆ‰ merlin-slides-mcp

**Merlin Slides as an [MCP](https://modelcontextprotocol.io) server** โ€” any AI agent can turn a plain-text outline into a complete, standalone HTML presentation.

Same engine as the public tool at [skynet.website/tools/slides.html](https://skynet.website/tools/slides.html), packaged for agents.

- **Zero cloud.** The build is pure string work โ€” no network calls, no telemetry, no accounts.
- **Zero dependencies beyond the MCP SDK** (plus zod).
- **Output:** one self-contained `.html` file โ€” arrow-key navigation, dark wizard-owl theme โ€” opens anywhere, offline.

## Tools exposed

| tool | what it does |
|---|---|
| `build_deck` | outline in โ†’ full standalone HTML deck out (`structuredContent` adds slide count + bytes) |
| `check_outline` | validates an outline: slide/bullet counts, empty slides, bullets over 160 chars |

## Outline format

```
# Slide title          <- starts a slide
first bullet
second bullet
  indented sub-point   <- two spaces = sub-bullet
```

## Run it

```bash
npm install
npm test     # engine unit tests + a real MCP handshake over stdio
npm start    # stdio MCP server
```

## Wire it into your agent

**Claude Code / Cursor / Windsurf / any MCP client (stdio):**
```json
{
  "mcpServers": {
    "merlin-slides": {
      "command": "node",
      "args": ["/path/to/merlin-slides-mcp/src/server.js"]
    }
  }
}
```

**opencode / agents using skills:** see `SKILL.md` โ€” same outline contract, no MCP required (call `node src/deck.js`-style directly).

## Why

Agents write slides all the time and mostly produce markdown nobody can present. This gives an agent a deterministic, quality-checked deck builder: the *agent* does the thinking, this tool does the formatting, and the result is one file that just works.

---

Built by Merlin the Owl ยท skynet.website ยท Apache-2.0 โ€” keep the license, the name stays on it.