# SlideMaster

Convert topics or existing files into professional presentation videos with automated slides and narration. Streamline content creation by generating outlines, scripts, and high-quality text-to-speec…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add slidemaster/mcp

# Browse available tools
npx -y @smithery/cli@latest tool list slidemaster/mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get slidemaster/mcp generate_outline

# Call a tool
npx -y @smithery/cli@latest tool call slidemaster/mcp generate_outline '{}'
```

## Direct MCP Connection

Endpoint: `https://mcp--slidemaster.run.tools`

**Optional config:**
- `x-slidemaster-api-key` (query) — Your SlideMaster API key. Get one free at https://slidemaster.tw/settings/api-keys

## Tools (32)

- `generate_outline` — Use this when the user wants to plan a presentation. Generates slide titles and descriptions from a topic. Automaticall…
- `create_project` — Use this to create a new empty project. Returns the project_id needed for all subsequent operations.
- `upload_init` — Use this to upload an existing PPTX or PDF file. Returns a pre-signed upload URL and project_id.
- `upload_complete` — Use this after the file has been uploaded to the pre-signed URL. Triggers server-side processing.
- `analyze_style_image` — Upload a style reference image to analyze its visual style (colors, fonts, layout). Returns a style_guide object that c…
- `render_slides` — Use this to generate AI slide images for a project. Each slide gets a background image from the AI model. Optionally pa…
- `generate_script` — Use this to generate a narration script for a single slide using AI.
- `batch_generate_scripts` — Use this to generate narration scripts for all slides in a project in one batch.
- `generate_tts` — Use this to generate text-to-speech audio. Pass project_id for all slides or slide_id for one slide.
- `generate_video` — Use this as the final step to compile slides + audio into an MP4 video. Poll check_status afterward.
- `list_projects` — Use this when the user wants to see their existing projects. Returns a paginated project list.
- `get_project` — Use this to retrieve detailed metadata and status for a specific project.
- `update_project` — Use this to update project settings like title, description, TTS provider, voice, or language.
- `delete_project` — Use this to permanently delete a project and all its slides, audio, and video. Do not use for archiving.
- `list_slides` — Use this to list all slides in a project with their titles, scripts, and render status.
- `update_slide` — Use this to edit a slide's title or narration script text.
- `delete_slide` — Use this to permanently remove a single slide from a project.
- `check_status` — Use this to poll processing progress after triggering render, TTS, or video generation.
- `export_project` — Use this to get download URLs for all generated assets: slides, audio, and video files.
- `export_pdf` — Export all rendered slides as a single PDF file (16:9 landscape, one slide per page). Returns { pdf_url, page_count, ti…
- `export_pptx` — Export all rendered slides as a single PPTX (PowerPoint) file. Returns { pptx_url, page_count, title, summary }. IMPORT…
- `export_evercam` — Export project as an EverCam offline HTML5 playable package (ZIP). Requires video to be generated first. This is async …
- `evercam_status` — Poll EverCam export progress. Returns status (processing/completed/failed/not_started) and download_url when completed.
- `list_voices` — Browse available TTS voices. Use this before generate_tts to help the user pick a voice.
- `get_credit_balance` — Check remaining API credits before starting expensive operations. Call this before large projects (>10 slides) to avoid…
- `get_credit_transactions` — View recent credit transaction history (purchases, consumption, monthly resets, refunds). Use this when the user asks a…
- `estimate_cost` — Estimate credit cost BEFORE running expensive operations. Returns per-operation breakdown, total, current balance, and …
- `get_project_context` — Get a complete snapshot of a project in one call: metadata, all slides with script/audio status, progress summary, and …
- `topic_to_video` — Use this for one-click presentation creation from a topic. Default: slides only. Set include_scripts=true for narration…
- `get_preferences` — Get saved user preferences (style, voice, language, etc). Call this at the START of every conversation to auto-apply th…
- `save_preferences` — Save user preferences for future sessions. Call this when the user explicitly states a preference (e.g. 'I prefer playf…
- `youtube_to_outline` — Analyze a YouTube video and generate a structured course outline. Extracts the transcript (or uses video analysis as fa…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get slidemaster/mcp <tool-name>
```

## Prompts (3)

- `create-presentation` (topic) — Step-by-step guide to create a presentation video from a topic
- `quick-video` (topic, language) — One-click video creation from a topic using the automation pipeline
- `list-my-projects` — View and manage existing presentation projects
