API & MCP
Everything a person can do on Markdown to Slides (PDF and HTML), a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://deckwrightmarkdowntodeck.usefulweb.site/api/v1/calculate– run Markdown to Slides (PDF and HTML)GET https://deckwrightmarkdowntodeck.usefulweb.site/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Markdown to Slides (PDF and HTML)
Write slides in Markdown (headings, lists, tables, code, quotes, images, CSV charts and flowchart/sequence/mind-map diagrams, speaker notes) and get a 16:9 or 4:3 deck in one of six themes: a vector PDF with embedded, searchable fonts (Latin, Cyrillic, Greek, Arabic, Devanagari, Chinese, Japanese, Korean), a self-contained HTML presentation and a PNG of the first slide. Right-to-left decks are mirrored.
| Field | Type | Default | Description |
|---|---|---|---|
markdown | textarea | "---\ntitle: Quarterly review\nauthor: Example Co\nlang: en\ntheme: paper\nfoote | Deck in Markdown. Slides are separated by a line ---; without separators every # or ## heading starts a slide. Charts: ```chart blocks with options and CSV; diagrams: ```diagram or ```mermaid blocks; speaker notes after a line Notes:. Images: . |
theme | select (deck, paper, midnight, harbor, ember, slate, contrast) | "deck" | Theme |
aspect | select (deck, 16:9, 4:3) | "deck" | Slide shape |
lang | text | — | Deck language (BCP 47, e.g. en, de, ar). Leave empty to use “lang:” from the front matter (English if not set). |
dir | select (deck, ltr, rtl) | "deck" | Text direction |
Example request
Quarterly review with a chart, a flowchart and a table
curl -X POST https://deckwrightmarkdowntodeck.usefulweb.site/api/v1/calculate -H 'content-type: application/json' -d '{"markdown":"---\ntitle: Quarterly review\nauthor: Example Co\nlang: en\ntheme: paper\nfooter: Example Co · internal\n---\n\n# Quarterly review\n\nWhere we stand after the fourth quarter and what comes next\n\n---\n\n## Agenda\n\n- Results in numbers\n- What **worked** and what did not\n - Pricing test\n - New onboarding\n- Plan for the next quarter\n\nNotes:\nThank the team first. Keep this slide under one minute.\n\n---\n\n## Revenue by month\n\n```chart\ntype: bar\ntitle: Revenue in k€ (example data)\nx: Month\ny: Revenue\nalt: Revenue rose every month, from 120 k€ in October to 168 k€ in December.\n\nMonth,Revenue\nOct,120\nNov,141\nDec,168\n```\n\n- December was the best month so far\n- The bundle offer drove a third of the growth\n\nNotes:\nPoint at the December bar. The bundle started on 1 December.\n\n---\n\n## How a support request flows\n\n```diagram\n%% alt: A request is answered with a help article when the issue is known; otherwise a ticket is opened, fixed and answered.\nflowchart LR\n A[Customer request] --> B{Known issue?}\n B -- yes --> C[Send help article]\n B -- no --> D[Open ticket]\n D --> E[Fix and reply]\n```\n\n---\n\n## Key figures\n\n| Figure | Q3 | Q4 |\n|---|--:|--:|\n| Customers | 1,204 | 1,388 |\n| Churn | 3.1 % | 2.4 % |\n| Replies within a day | 81 % | 92 % |\n\nThe figures are example data.\n\n---\n\n## Next quarter\n\n1. Roll out the new onboarding to everyone\n2. Test yearly prices\n3. Hire a second support person\n"}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://deckwrightmarkdowntodeck.usefulweb.site/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
deckwright_markdown_to_deck - Local stdio connector:
node src/mcp-stdio.ts --tool=deckwright-markdown-to-deck
{
"mcpServers": {
"deckwright-markdown-to-deck": { "type": "http", "url": "https://deckwrightmarkdowntodeck.usefulweb.site/mcp" }
}
}