API & MCP
Everything a person can do on Markdown to PowerPoint (PPTX), a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://deckwrightpptxexport.usefulweb.app/api/v1/calculate– run Markdown to PowerPoint (PPTX)GET https://deckwrightpptxexport.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Markdown to PowerPoint (PPTX)
Converts a Markdown deck into a .pptx file written by hand in Office Open XML: real title placeholders, editable text boxes with bullet levels, bold, italic and links, native tables with a header row, pictures with alternative text, charts and diagrams as pictures with their description, speaker notes and a reading order that follows the Markdown. Opens in PowerPoint, Keynote, LibreOffice Impress and Google Slides.
| 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 as PowerPoint
curl -X POST https://deckwrightpptxexport.usefulweb.app/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://deckwrightpptxexport.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
deckwright_pptx_export - Local stdio connector:
node src/mcp-stdio.ts --tool=deckwright-pptx-export
{
"mcpServers": {
"deckwright-pptx-export": { "type": "http", "url": "https://deckwrightpptxexport.usefulweb.app/mcp" }
}
}