Skip to main content
Glama
siennag-mcp

FlowPresentationMCP

by siennag-mcp

FlowPresentationMCP

A custom Model Context Protocol (MCP) server that lets people generate polished, on-brand presentations on demand — styled with the Peach State Truck Centers theme in a clean, modern look, and built from a library of prebuilt graphics. It exports both PowerPoint (.pptx) and HTML presentations.

What it does

FlowPresentationMCP exposes presentation-building tools to any MCP-compatible client (Cursor, Claude Desktop, etc.). Instead of starting from a blank slide, you describe the deck — title, sections, bullets, icon columns, images — and the server assembles a complete, branded presentation in both formats.

  • Modern Peach State theme — brand red #E1251B and gray with generous whitespace, large type, and a refreshed icon set.

  • Prebuilt graphics — the brand logo, the signature chevron accent, and 25 modern line-icons (red + gray hexagon tiles).

  • Two output formats from one spec:

    • PowerPoint (.pptx) — fully editable in Office / Keynote / Google Slides.

    • HTML — a single self-contained file (icons/images inlined) that runs in any browser, with keyboard navigation.

Related MCP server: Slidespeak

Requirements

  • Python 3.9+

  • pip install -r requirements.txt (installs python-pptx and Pillow)

No external MCP SDK is required — the server speaks the MCP stdio JSON-RPC protocol directly.

Install

cd /Users/siennagalli/Documents/FlowPresentationMCP
python3 -m pip install -r requirements.txt

Connect it to an MCP client

Add this to your client's MCP config (see examples/mcp-config.json):

{
  "mcpServers": {
    "flowpresentation": {
      "command": "python3",
      "args": ["-m", "flowpresentation"],
      "cwd": "/Users/siennagalli/Documents/FlowPresentationMCP",
      "env": { "FLOWPRESENTATION_OUTPUT": "/Users/siennagalli/Documents/FlowPresentations" }
    }
  }
}

FLOWPRESENTATION_OUTPUT sets the default folder for generated files (defaults to ./output).

Tools

Tool

Purpose

create_presentation

Build a deck from a spec and write .pptx and/or .html.

list_themes

List themes with their colors and fonts.

list_layouts

List slide layouts and the fields each accepts.

list_icons

List the prebuilt modern icon names.

create_presentation arguments

  • spec (object, required) — the deck (see below)

  • formats (array) — ["pptx", "html"] (default: both)

  • filename (string) — base name (default: derived from title)

  • output_dir (string) — target folder (default: FLOWPRESENTATION_OUTPUT)

Deck spec

{
  "title": "Peach State Service Update",
  "theme": "peach-modern",
  "slides": [
    { "layout": "title", "kicker": "Quarterly Review", "title": "Service & Parts Update", "subtitle": "Q3 performance and what's ahead" },
    { "layout": "section", "number": "01", "title": "Where we are today" },
    { "layout": "bullets", "title": "Highlights", "bullets": ["Turnaround down 18%", "Parts fill rate at a high"] },
    { "layout": "columns", "title": "Built around our customers", "columns": [
      { "icon": "wrench", "heading": "Expert Service", "body": "Factory-trained technicians." },
      { "icon": "truck",  "heading": "Fleet Ready",   "body": "Uptime support for every truck." }
    ]},
    { "layout": "big-idea", "title": "Uptime is everything." },
    { "layout": "image", "side": "right", "image": "dealership-hero", "title": "Built for the long haul", "bullets": ["Locations statewide", "Genuine parts in stock"] },
    { "layout": "quote", "quote": "They get our trucks back faster than anyone.", "attribution": "Fleet Manager" },
    { "layout": "closing", "title": "Thank you", "subtitle": "peachstatetrucks.com" }
  ]
}

A full example lives in examples/sample_deck.json.

Layouts

Content: title, section, bullets, columns (2–4 icon cards), big-idea, quote, closing.

Photos: image (left/right split), photo-full (full-bleed photo with overlaid caption), gallery (2–6 photo grid with captions).

Graphs & reporting: chart (bar / line / pie) and kpi (a row of 2–4 big metric cards).

Run list_layouts for exact fields. Friendly aliases are accepted (e.g. dividersection, cardscolumns, bar/line/piechart, stats/metricskpi, photosgallery).

Charts & reporting standards

Charts use a fixed brand series palette so every report looks consistent: red #E1251B → dark gray #53575A → near-black → mid gray → red tint → light gray. In PowerPoint these are native, editable charts; in HTML they're crisp inline SVG.

{ "layout": "chart", "title": "Service revenue by month",
  "chart": { "type": "bar", "unit": "$",
    "categories": ["Jul", "Aug", "Sep"],
    "series": [{ "name": "Revenue", "values": [820000, 910000, 1020000] }] } }
  • chart.type: bar | line | pie

  • chart.unit: "$", "%", or any suffix (formats axis + labels)

  • chart.series: one or more { name, values[] } (multi-series → legend); categories[] are the x-axis labels

  • value_labels: show value on each bar (default true for single-series)

{ "layout": "kpi", "title": "Quarter at a glance",
  "stats": [
    { "value": "98%",   "label": "Fleet Uptime",   "caption": "+3 pts vs Q2", "icon": "truck" },
    { "value": "$2.4M", "label": "Parts Revenue",   "caption": "+12% YoY",     "icon": "money" }
  ] }

A full reporting example lives in examples/reporting_deck.json.

Themes

  • peach-modern (default) — light, modern, brand red accent

  • peach-dark — modern dark background

  • peach-classic — closer to the original template look

Icons

check, click, clock, close, email, employee, fleet, gear, globe, insight, keys, location, mechanic, money, peak, people, presenter, star, swoosh, target, top-performer, truck, user, video, wrench — each in red and gray. Common aliases work too (e.g. settingsgear, dollarmoney).

Try it without a client

python3 -c "import json; from flowpresentation.models import normalize_deck; \
from flowpresentation.pptx_builder import build_pptx; from flowpresentation.html_builder import build_html; \
d=normalize_deck(json.load(open('examples/sample_deck.json'))); \
print(build_pptx(d,'output/sample.pptx')); print(build_html(d,'output/sample.html'))"

Project layout

flowpresentation/      MCP server package
  server.py            stdio JSON-RPC MCP server + tools
  models.py            deck spec validation/normalization
  theme.py             theme definitions
  assets.py            icon/logo/chevron/photo resolver
  pptx_builder.py      Deck -> PowerPoint
  html_builder.py      Deck -> self-contained HTML
assets/                brand assets (logo, chevron, photos, icons, template)
  icons-modern/        new modern icons (SVG, red + gray)
Modern Icons/          modern icons as PNG + SVG (easy to browse)
brand/                 theme.json, assets.json
examples/              sample_deck.json, mcp-config.json
scripts/               icon + slide generators, GitHub push helper
output/                generated decks (gitignored)

License

TBD

F
license - not found
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/siennag-mcp/FlowPresentationMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server