Auf dieser Seite
MCP

Tools (9)

Render — Both transports

ToolDescriptionTransport
render_template Named template + Nunjucks vars (+ optional markdown body) → PNG or PDF. Output format driven by the template registry. stdio http
render_html_to_png Raw HTML string → PNG screenshot. Brand fonts and tokens auto-injected. stdio http
render_html_to_pdf Raw HTML → PDF. Playwright auto-paginates. Supports A4/A3/Letter/Legal or custom pixel dimensions. stdio http
render_slides N pages → toggleable { viewer (HTML), pdf, pngs }. Markdown mode (=== separators) or pages mode (explicit HTML/template per slide). stdio http

Publish — HTTP transport only

ToolDescriptionTransport
publish_artifact Promote a bundle from the ephemeral store (1 h TTL) to the persistent published store. Returns a stable public URL. http
unpublish_artifact Remove a published item by ID. Idempotent. http
list_published List published items, optionally filtered by type: deck, document, image, carousel, html-pdf, html-png. http

Introspect — Both transports

ToolDescriptionTransport
list_templates Full template registry (output format, dims, required vars, tags). Optional tag filter. stdio http
get_tokens Parsed tokens.json — colors, typography, spacing. stdio http
Templates

Template Catalog (17)

Auto-generated from templates.meta.ts + a scan of each template's .html. Pass the key to render_template. Visual previews live on Documents, Graphics, and Presentations.

Template key Out Size / Format Parameters Tags
carousel/cta

Carousel CTA / closing slide (1080×1350).

PNG 1080×1350
BUTTON string undocumented
CTA string unused
EYEBROW string undocumented
HEADLINE string undocumented
HEIGHT string undocumented
SUBTITLE string
URL string undocumented
WIDTH string undocumented
carousel-slidelinkedin
carousel/numbered-item

Carousel numbered list item (1080×1350). Used inside multi-slide carousels.

PNG 1080×1350
BODY markdown (auto)
HEIGHT string undocumented
NUMBER string undocumented
PILL string undocumented
PROGRESS string
TITLE string
WIDTH string undocumented
carousel-slidelinkedin
carousel/title

Carousel title slide (LinkedIn portrait 1080×1350). Eyebrow + big number + body.

PNG 1080×1350
BIGNUMBER string
BODY markdown (auto)
EYEBROW string
HEADLINE string undocumented
HEIGHT string undocumented
TITLE string unused
WIDTH string undocumented
carousel-slidelinkedin
invoice

Branded invoice PDF. Line items in the body; recipient + UID (or private) and service_date required. Invoice number (ref), dates and bank details are rendered structurally — never put them in the body.

PDF A4
markdown markdown required
recipient object required
date string required
ref string required
subject string
eyebrow string
confidential boolean
lang 'de' | 'en'
attachPath path
document
letter

Branded business letter (single or multi-page). Markdown body, optional recipient block.

PDF A4
markdown markdown required
recipient object
date string
ref string
subject string
eyebrow string
confidential boolean
lang 'de' | 'en'
attachPath path
document
offer

Branded offer / proposal PDF. Markdown body, recipient + date required for canonical filename.

PDF A4
markdown markdown required
recipient object required
date string required
ref string
subject string
eyebrow string
confidential boolean
lang 'de' | 'en'
attachPath path
document
print/business-card

Business card, 85×55mm + bleed, front + back in one CMYK PDF/X-1a (FOGRA51/52). Render via render_print_pdf. Front: Escape Velocity wordmark + glow; back: name, role, contacts, QR.

PDF
EMAIL string required
NAME string required
PHONE string required
TITLE string required
WEBSITE string required
GRADIENT_URI string undocumented
PAGE_H_PT string undocumented
PAGE_W_PT string undocumented
QR_SVG string
TAGLINE string
TRIM_H_MM string undocumented
TRIM_W_MM string undocumented
printbusiness-cardcmykvisitenkarte
report

Branded multi-page report. Markdown body, optional cover image.

PDF A4
markdown markdown required
recipient object
date string
ref string
subject string
eyebrow string
coverPath path
confidential boolean
lang 'de' | 'en'
attachPath path
document
social/announcement

Announcement post (1200×630). Bold title + body copy.

PNG 1200×630
BODY markdown (auto)
CTA string undocumented
EYEBROW string
HEADLINE string undocumented
TITLE string unused
social
social/linkedin-banner

LinkedIn profile banner (1584×396).

PNG 1584×396
CTA_LABEL string undocumented
SUBTITLE string unused
TAGLINE string undocumented
TITLE string unused
URL string undocumented
sociallinkedin
social/linkedin-post-portrait

LinkedIn portrait feed post (1080×1350, 4:5). Content-flexible: eyebrow + headline + body + CTA. The generalist "LinkedIn shareable image" — use when nothing more specific (quote-card, stats-card) fits.

PNG 1080×1350
BODY markdown (auto)
CTA string
EYEBROW string
HEADLINE string
sociallinkedinfeed-post
social/og

Open Graph image (1200×630). For website / blog post sharing. SUBTITLE accepts inline markup — wrap a phrase in <span class="accent">…</span> to color just that part terracotta.

PNG 1200×630
SUBTITLE string
TITLE string
socialog
social/process-flow

Process / step diagram for the LinkedIn feed (default 1080×1350 portrait; pass width=1080 height=1080 for square). STEPS is a JSON array of {label, accent?, tag?, desc?} — steps are auto-numbered with badges and joined by arrowhead connectors. ORIENTATION "vertical" (default, stacks top→down — best for portrait/mobile) or "horizontal" (row — best for square / ≤4 short steps). Mark the pivotal step (e.g. the AI-augmented one) with accent:true for a terracotta border + tint fill.

PNG 1080×1350
COMPONENTS_CSS string undocumented
CTA string
EYEBROW string
HEADLINE string
ORIENTATION string unused
STEPS string unused
sociallinkedindiagram
social/quote-card

Square quote card (1200×1200). Quote + attribution.

PNG 1200×1200
AUTHOR string
COMPONENTS_CSS string undocumented
QUOTE string
ROLE string
social
social/stats-card

Square stats card (1200×1200). Big number + label + context.

PNG 1200×1200
COMPONENTS_CSS string undocumented
CONTEXT string
LABEL string
STAT string
UNIT string
social
social/twitter-banner

Twitter/X profile banner (1500×500).

PNG 1500×500
CTA_LABEL string undocumented
SUBTITLE string unused
TAGLINE string undocumented
TITLE string unused
URL string undocumented
socialtwitter
social/youtube-banner

YouTube channel banner (2560×1440, safe area ~1546×423).

PNG 2560×1440
BRAND string undocumented
SUBTITLE string unused
TAGLINE string undocumented
TITLE string unused
URL string undocumented
socialyoutube
tos

Terms of service / legal document. Markdown body, optional headings.

PDF A4
markdown markdown required
recipient object
date string
ref string
subject string
eyebrow string
confidential boolean
lang 'de' | 'en'
attachPath path
document
HTTP Transport

REST API

Base URL: https://mcp.escapevelocity.consulting

MethodPathAuthPurpose
POST /mcp Bearer JWT Streamable HTTP transport (stateful, per-session)
GET /mcp Bearer JWT SSE stream for an existing session
DELETE /mcp Bearer JWT Terminate a session
GET /artifacts/<token> Signed URL Download ephemeral rendered artifact (1 h TTL)
GET /published/<id>/<file> none Download a published file
GET /api/published none JSON list of published items (optional ?type= filter). CORS *.
GET /api/published/<id> none JSON metadata for one published item
GET /health none Liveness probe — { status: 'ok' }
GET /.well-known/oauth-protected-resource none RFC 9728 — points clients at the authorization server
GET /.well-known/oauth-authorization-server none RFC 8414 — authorization server metadata
GET /authorize none OAuth 2.1 code-flow entrypoint → redirects to Google login
GET /oauth/google/callback none Google OAuth callback — issues our own auth code
POST /token PKCE Exchange auth-code or refresh-token for JWT access token
POST /register none RFC 7591 Dynamic Client Registration

Reference

  • BRAND_SPEC.md — Canonical brand specification (source of truth)
  • docs/mcp-server.md — Full MCP server reference (routes, auth, env vars, architecture)
  • docs/ — Operational documentation (architecture, rules, MCP, publishing, templates, troubleshooting, glossary)
  • templates.meta.ts — Template registry source (descriptions, dims, required vars)
  • docs/publishing.md — Publish / unpublish flow and bundle abstraction
  • BRAND_SKILL.md — Agent cheatsheet for brand system (token table + CSS vars + layout patterns)
  • tokens.ts — Token source of truth (colors, fonts, spacing)
  • tokens.css — Generated CSS custom properties
  • skill/SKILL.md — Deployed skill source (template catalog + routing map)