MCP server for generating and rendering executive-ready presentations. Supports natural language prompt-to-presentation generation, IR rendering, theme discovery, slide type cataloging, cost estimation, and pricing information.
DeckForge has 6 well-structured tools with clear names following verb_noun convention (render, generate, themes, slide_types, cost_estimate, pricing). All tools have detailed descriptions (150-400+ chars, well above 10-char minimum). Input schemas are visible with type definitions and parameter descriptions. However, there are significant gaps: no output schemas documented in the source, no error handling guidance, no pagination support despite tools that could return large lists, missing validation constraints in schemas, and no tool annotations (readOnlyHint/destructiveHint). The STDIO transport limits protocol readiness to 50 maximum, but definition quality is solid within that constraint.
Estimate the credit cost of rendering a given Presentation IR before you spend credits. Use when you want a deterministic, pre-flight cost for a deck — base credits are ceil(slides/10), plus +0.5 per finance slide, +0.2 per chart element, and +2 if NL generation options are present. Returns total_credits, base_credits, a surcharges breakdown, a human-readable breakdown string, and a USD equivalent (x402_usd at $0.05/credit).
Turn a natural-language prompt into a structured Presentation IR (not a rendered file) using the 4-stage content pipeline (intent, outline, expand, refine). Use when you have a topic in plain text and need slide structure and content generated before rendering — chain the returned IR into render to get a .pptx/Google Slides file. Returns title, slide_count, theme, and the full ir object.
Return the current subscription tiers and per-call machine-payment rates. Use when an agent or user needs to know plan limits or pay-per-call pricing before committing to a workload. Returns tiers (name, display_name, credit_limit, price_usd, overage_rate_usd, rate_limit_rpm) and x402 per-call rates (render $0.05, generate $0.15, metadata calls free; protocol x402, USD).
Render a structured Presentation IR (JSON) into a PowerPoint (.pptx) or Google Slides deck and run the quality pipeline over it. Use when you already have a DeckForge IR object (slides, elements, theme) and want a finished, themed deck plus a quality check. Returns slide_count, quality_score, format, rendered size_bytes, and the number of QA issues found (qa_issues).
No output schemas documented in source code. Tools describe return values informally (e.g. 'Returns slide_count, quality_score, format...') but lack formal JSON Schema definitions for LLM parsing and planning.
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). Tools like render and generate modify state (WRITE risk) but lack explicit hints for agent planning.
Missing input validation constraints in schemas. Parameters like 'slide_count' (integer) and 'theme' (string) lack min/max bounds, enum constraints, or pattern rules. Schemas show type and default but no range or allowed values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 72 | 2026-07-28+ | v2 |
List the supported slide types (32 total: 23 universal + 9 finance) with each type's id, name, description, category, and required/optional elements. Use when building or validating IR by hand to discover which slide_type values exist and which elements each one needs before calling render.
List the built-in deck themes (currently 15) with their id, name, description, and version. Use when you need a valid theme identifier before calling generate or render, or to show a user the available visual styles. Returns a list of theme records; pass a returned id as the theme argument to render/generate.
No error handling guidance in tool descriptions. Descriptions do not explain what errors can occur, how to recover, or what the LLM should do if a call fails (e.g. 'Invalid theme, call themes() first to list valid IDs').
No pagination or result limits documented for list tools (themes, slide_types). If themes() returns 15 items and slide_types() returns 32, descriptions should clarify whether these are complete or paginated, and whether limits are enforced.
Parameter 'theme' accepted in generate and render without enum constraint. Descriptions say 'default corporate-blue' and 'call themes to list' but no formal enum in schema limits valid values. Agents may hallucinate theme names.
Output field naming not standardized. Description for render says 'Returns slide_count, quality_score, format, rendered size_bytes, and qa_issues' but actual JSON key names are not visible in source. If keys differ from description text, LLMs will fail to extract results.