MCP server for Deckrun by Agentic Decks — generate presentation PDFs, narrated videos, and audio from Markdown. Works with Claude Code, Cursor, VS Code, and any MCP-compatible AI assistant. Free tier: no API key needed. Paid tier: video, audio, custom themes, and more.
Deckrun MCP demonstrates solid definition quality with clear naming conventions, comprehensive descriptions, and mostly complete schemas. All 9 tools follow verb_noun pattern (get_, generate_, list_, check_, validate_). Descriptions are detailed and action-oriented, ranging 45-280 characters, well above the 10-char minimum. Input schemas are present for all tools with proper type definitions. However, there are notable gaps: output schemas are not explicitly documented in the tool definitions (descriptions mention return fields but JSON Schema definitions are absent), some parameter descriptions lack format constraints, and error handling guidance is minimal. The server demonstrates understanding of tool composition (separate lookup tools before generation) and resource enablement, but output documentation and error recovery patterns need strengthening.
Poll the status of an async generation job. Returns: status (queued|running|complete|failed), progress (0–100), and artifact URLs when complete. Call repeatedly until status is 'complete' or 'failed'.
Generate an MP3 narration from Deckrun slide notes. Always async — returns a job_id. Call check_job to poll until complete. Requires a paid subscription.
Convert Deckrun Markdown into a PDF slide deck. Call get_slide_format first to learn the correct Markdown format. Then call this tool with the completed Markdown. Returns: url (public PDF, 90-day expiry), slug, slides (count), warnings (non-fatal notices to self-correct), schema_version. Limits: max 10 slides, 50 KB Markdown. Slides separated by --- on its own line.
Convert Deckrun Markdown into a narrated MP4 video (slides + audio). Always async — returns a job_id. Call check_job to poll until complete. Requires a paid subscription with the video add-on.
Fetch the current account's plan and usage. Returns: plan name, render_units_used, render_units_remaining, active add-ons. Use before large jobs to check quota.
Output schemas not documented in tool definitions. Descriptions mention return fields (url, slug, slides, warnings, status, progress) but no formal JSON Schema is provided in the tool registration. LLMs cannot plan downstream operations or validate returned data structure.
Async operation pattern (generate_video, generate_audio) relies on check_job polling but lacks explicit guidance on polling frequency, maximum wait time, or exponential backoff strategy. Descriptions say 'Call repeatedly until status is complete or failed' but do not specify recommended polling intervals. LLMs may poll too aggressively or give up prematurely.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
Fetch the authoritative Deckrun slide format specification. Call this first to learn all layout tags, Markdown syntax, and rules before writing slides. Returns JSON with layout_tags, surface_syntax, example_markdown, and limits.
List available slide/document themes for this account. Returns system themes and custom themes. Use the returned id as slide_theme_id in generate_slide_deck or generate_video.
List available narration voices for this account. Returns voice id, name, tier (system or premium), and language. Use the returned id as voice in generate_video or generate_audio.
Lint Deckrun Markdown and get a pre-flight RU estimate before generating. Returns: valid (bool), issues (lint errors/warnings), estimated_pages, estimated_ru. Use this before generate_slide_deck or generate_video to catch errors and check RU cost.
Error handling and recovery guidance is minimal. No tool descriptions explicitly state what errors are retryable vs. fatal, what invalid inputs look like, or what the agent should do on failure. 'Returns: url, slug, slides, warnings' lacks context on failure modes (API unreachable, quota exceeded, invalid markdown, etc.).
Parameter constraints not formalized. 'markdown' parameter description mentions 'Max 10 slides, 50 KB Markdown' in prose but no minLength/maxLength, pattern, or enum constraints in JSON Schema. Same for 'voice' parameter in generate_video/generate_audio, description says 'TTS voice ID (optional)' but no format or reference to list_voices schema.
Missing parameter descriptions for 'document_category' in validate_markdown. Enum values (slide, resume, whitepaper, datasheet, patent, generic, book) are listed but the parameter description does not explain what difference document_category makes to the validation or RU estimate. Is it required? What is the default?
List tools (list_themes, list_voices) lack pagination metadata. Descriptions do not mention whether results are capped, if there is a next_cursor or total count, or what happens if the user has hundreds of themes/voices. Baseline pattern expects limit/offset and total count.
Tool composition assumes agent knowledge of the correct order (get_slide_format → generate_slide_deck). Descriptions do NOT explicitly state prerequisites. E.g., generate_slide_deck says 'Call get_slide_format first' in parenthetical but does not make it a hard dependency or explain what failure looks like if skipped.