Skip to main content

Getting Started

This guide takes a new checkout from install to a locally running MCP App server.

Prerequisites

ToolVersion
Node.js18 or later
npmBundled with Node.js
GitAny current version

Install

git clone https://github.com/DarbotLM/adaptive-slide.git
cd adaptive-slide
npm install

Validate the example deck

npm run validate

The validation script loads the schemas from schemas/, registers the built-in tile schemas with AJV, and validates examples/hello-world.deck.json.

Build and test

npm run build
npm test

npm run build compiles the TypeScript source and copies the self-contained viewer HTML into dist/plugins/mcp-app/.

Run the MCP App server

npm run serve

The server starts at:

http://localhost:3001/mcp

Use a custom port when needed:

PORT=8080 npm run serve

Minimal deck

Create my-first.deck.json:

{
"$schema": "./schemas/deck.schema.json",
"type": "AdaptiveDeck",
"version": "1.0.0",
"metadata": {
"title": "My First Deck",
"author": "You"
},
"slides": [
{
"type": "AdaptiveSlide",
"id": "title-slide",
"title": "Welcome",
"body": [
{
"type": "Tile.Text",
"text": "Hello, Adaptive Slide",
"style": "heading",
"size": "extraLarge",
"horizontalAlignment": "center"
},
{
"type": "Tile.Text",
"text": "A schema-driven presentation format",
"style": "subheading",
"color": "accent",
"horizontalAlignment": "center"
}
]
}
]
}

Render from TypeScript

import { readFileSync } from "node:fs";
import { renderDeck } from "adaptive-slide";

const deck = JSON.parse(readFileSync("my-first.deck.json", "utf-8"));
const html = renderDeck(deck);

console.log(html);

Next steps

NextWhy
ArchitectureUnderstand deck structure, layout modes, and renderer boundaries.
Schema ReferenceReview required fields and tile-specific properties.
MCP App PluginConnect the server to an MCP-compatible host.