
Research
/Security News
CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.
@slidemaster/mcp-server
Advanced tools
MCP server for SlideMaster - create AI presentation videos from Claude Desktop
MCP (Model Context Protocol) Server for the SlideMaster Public API. This server exposes 20+ tools that let any MCP-compatible AI assistant create AI-powered presentation videos from a simple topic.
sm_live_... keyClaude Desktop — add to claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"slidemaster": {
"command": "npx",
"args": ["-y", "@slidemaster/mcp-server"],
"env": {
"SLIDEMASTER_API_KEY": "sm_live_your_key_here"
}
}
}
}
Restart your AI client. Then just say: "Make a 5-slide presentation about [your topic]"
"Make slides about machine learning"
│
▼
┌─────────────────┐
│ generate_outline │ ← Generates outline + auto-creates project
│ │ Returns: project_id, slides array
└────────┬────────┘
▼
┌─────────────────┐
│ render_slides │ ← Generates AI images for each slide
│ │ Costs: 140 credits/slide (2K)
│ │ Poll check_status until status="parsed"
└────────┬────────┘
▼
┌───────────────────────┐
│ batch_generate_scripts │ ← Generates narration scripts (optional)
└────────┬──────────────┘
▼
┌─────────────────┐
│ generate_tts │ ← Text-to-speech audio (optional)
│ │ Costs: 16 credits/slide
└────────┬────────┘
▼
┌─────────────────┐
│ generate_video │ ← Compile final MP4 (optional)
│ │ Costs: 80 credits/project
│ │ Poll check_status until status="video_completed"
└────────┬────────┘
▼
┌─────────────────┐
│ export_pdf │ ← Download as PDF (pdf_url field)
│ export_pptx │ ← Download as PPTX (pptx_url field)
│ export_project │ ← Get all download URLs
└─────────────────┘
Shortcut: Use topic_to_video to run the entire pipeline in one call.
Tip: generate_outline automatically creates a project — you do NOT need to call create_project separately.
| Operation | Cost per unit |
|---|---|
| Render slide (1K) | 42 credits |
| Render slide (2K) | 140 credits |
| Render slide (4K) | 250 credits |
| TTS per slide | 16 credits |
| Video per project | 80 credits |
Quick math: 2,000 credits ≈ 14 slides at 2K (slides only). A full 25-slide course with video ≈ 3,980 credits.
Call get_credit_balance before large projects to check remaining credits.
When polling check_status, the status field means:
| Status | Meaning | Next step |
|---|---|---|
processing | Slides are being rendered | Poll again in 5-10 seconds |
parsed | Slides ready, check scripts/audio | Call batch_generate_scripts or generate_tts |
generating_video | Video being compiled | Poll again in 5-10 seconds |
video_completed | Video ready | Call export_project for download URLs |
video_failed | Video generation failed | Call generate_video to retry |
To apply a visual style, use analyze_style_image with a publicly accessible image URL (e.g. Imgur, Cloudinary). Base64 is not supported. The returned style_guide object can be passed to render_slides.
| Tool | Description |
|---|---|
generate_outline | Generate outline from topic. Auto-creates project — returns project_id |
create_project | Create an empty project (usually not needed — use generate_outline) |
render_slides | Generate AI slide images. Requires slides array with title + description |
analyze_style_image | Analyze a style reference image (public URL required) |
upload_init | Initialize PPTX/PDF file upload |
upload_complete | Complete a file upload |
| Tool | Description |
|---|---|
generate_script | Generate narration script for one slide |
batch_generate_scripts | Generate scripts for all slides at once |
generate_tts | Generate text-to-speech audio |
generate_video | Compile slides + audio into MP4 video |
| Tool | Description |
|---|---|
list_projects | List all projects |
get_project | Get project details |
update_project | Update project settings (TTS voice, language, etc.) |
delete_project | Permanently delete a project |
list_slides | List slides in a project |
update_slide | Edit slide title or script |
delete_slide | Delete a slide |
| Tool | Description |
|---|---|
export_pdf | Export as PDF. Returns pdf_url (signed download link) |
export_pptx | Export as PPTX. Returns pptx_url (signed download link) |
export_project | Get all download URLs (slides, audio, video) |
export_evercam | Export as offline HTML5 package |
evercam_status | Poll EverCam export progress |
| Tool | Description |
|---|---|
check_status | Poll processing progress |
get_credit_balance | Check remaining credits with cost breakdown |
get_project_context | Full project snapshot in one call |
list_voices | Browse available TTS voices |
topic_to_video | One-click: topic → finished presentation/video |
User: Create a 5-slide presentation about renewable energy in Taiwan
Claude: I'll create that for you.
[Calls generate_outline with topic="renewable energy in Taiwan", slides_count=5]
→ Returns project_id and slides array
[Calls render_slides with the project_id and slides]
→ Rendering started, polling...
[Calls check_status — status: "parsed", all slides rendered]
[Calls export_pdf]
→ Returns pdf_url
Here's your presentation! Download the PDF: [link]
npm install
npm run build
SLIDEMASTER_API_KEY=your-key npm start
| Variable | Required | Description |
|---|---|---|
SLIDEMASTER_API_KEY | Yes | Your SlideMaster API key (sm_live_...) |
SLIDEMASTER_API_BASE | No | Override API base URL (default: https://api.slidemaster.tw/api/v1/public) |
Full API docs: slidemaster.tw/api-docs
MIT
FAQs
MCP server for SlideMaster - create AI presentation videos from Claude Desktop
We found that @slidemaster/mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.