ppt-generator
An MCP server that auto-generates presentations from a topic using AI, supporting slide editing, visual QA, and export to HTML/PPTX.
README
PPT Generator
An MCP (Model Context Protocol) server that automatically generates presentations from a given topic using AI.
Cost & Time
Based on Claude Opus 4-7 + Bedrock. Time and cost scale proportionally with slide count and complexity.
5-slide benchmark (Outline → Script → Design, excluding Visual QA)
| Stage | Input | Output | Cache Write | Cache Read | Cost (USD) |
|---|---|---|---|---|---|
| Outline + Script | 4K | 3K | - | - | $0.12 |
| Design (summary + slides) | 4K | 70K | 31K | 29K | $1.17 |
| Total | 8K | 73K | 31K | 29K | ~$1.3 |
Visual QA does not run automatically and must be explicitly requested by the user. To reduce costs, set max_iterations=1 or request Visual QA only for specific problematic slides.
Prerequisites
- Python 3.13+
- uv package manager
- AWS CLI configured (default: Bedrock IAM) or Anthropic API Key
1. Installation
git clone https://github.com/haandol/ppt-generator.git
cd ppt-generator
uv sync
2. Register MCP Server
Add the server to your MCP client configuration file.
Claude Code — create .mcp.json at the project root:
{
"mcpServers": {
"ppt-generator": {
"command": "uv",
"args": ["--directory", "/path/to/ppt-generator", "run", "ppt-generator"]
}
}
}
Kiro — create .kiro/settings/mcp.json at the project root:
{
"mcpServers": {
"ppt-generator": {
"command": "uv",
"args": ["--directory", "/path/to/ppt-generator", "run", "ppt-generator"]
}
}
}
Claude Desktop — add the same format to claude_desktop_config.json.
By default, IAM credentials from the AWS CLI profile are used (Bedrock). To use the Anthropic API, add
"ANTHROPIC_API_KEY": "sk-ant-..."to theenvsection.
Replace
/path/to/ppt-generatorwith the actual project path.
LLM Providers
Supports both Anthropic API and AWS Bedrock.
| Provider | Required Environment Variables |
|---|---|
| Bedrock IAM (default) | AWS CLI profile or AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION |
| Bedrock (Bearer Token) | AWS_BEARER_TOKEN_BEDROCK, AWS_REGION |
| Anthropic | ANTHROPIC_API_KEY |
When LLM_PROVIDER is not set, it auto-selects anthropic if ANTHROPIC_API_KEY is present, otherwise defaults to bedrock.
For the full list of environment variables and detailed client configurations, see docs/architecture.md.
3. Usage
Step 1 — Generate or Import PPT
Create new — Prepare your content in a file like context.md, then request via your MCP client:
Read @context.md and generate a PPT using ppt-generator.
Import existing PPTX — You can also import an existing PPTX file for editing:
Import @presentation.pptx using import_pptx.
Importing automatically generates an HTML preview. You can skip Step 2 and directly use per-slide editing, Visual QA, and export features. Parsing is deterministic with no LLM calls, so no additional cost is incurred.
Step 2 — Provide Project Information
Before outline generation, you will be asked for the following:
- Presentation purpose — e.g., "internal tech sharing", "client proposal", "conference talk"
- Presentation duration — 3–60 minutes (default: 15 minutes)
- Audience type —
general/technical/executive
The system then auto-generates in order: Outline → Design Spec. You get a chance to review and edit at each stage.
Step 3 — Edit Individual Slides (Optional)
After design spec generation (or PPTX import), you can modify individual slides. Instead of regenerating everything, you can add, update, or delete specific slides:
Add a bar chart comparing performance data below the diagram on slide 3.
Slide 5 has too much text — reduce it to key bullet points with icon layout.
Add a Q&A slide after slide 7.
Step 4 — Visual QA (Optional)
Automatically detects and fixes visual defects (line breaks, overlaps, margin misalignment, etc.). Does not run automatically — must be explicitly requested by the user.
Prerequisites:
uv sync --group visual-qa
playwright install chromium
Run visual_qa.
Visual QA is an opt-in tool. A suggestion message appears after design spec generation, but it will not run until explicitly requested. If Playwright is not installed, it can be skipped without affecting existing functionality.
Step 5 — Export Files
Once design spec generation is complete, an HTML file is automatically exported by default. If it was not exported automatically, you can request it manually:
Export as HTML and open it.
To export in PPTX format:
Export as PPT and open it.
Debug Logging
The MCP server uses stdio communication, so stdout logs cannot be viewed directly. Enable file logging to write debug-level logs to a file.
Configuration
Add PPT_LOG_DIR to the env section when registering the MCP server:
{
"mcpServers": {
"ppt-generator": {
"command": "uv",
"args": ["--directory", "/path/to/ppt-generator", "run", "ppt-generator"],
"env": {
"PPT_LOG_DIR": "/tmp/ppt-generator"
}
}
}
}
Environment Variables
| Variable | Description |
|---|---|
VISUAL_QA_PARALLEL |
Number of parallel workers for Visual QA (default: 8) |
VISUAL_QA_MAX_ITERATIONS |
Maximum fix iterations for Visual QA (default: 2) |
PPT_LOG_DIR |
Directory for per-project log files (recommended). e.g., /tmp/ppt-generator |
PPT_LOG_FILE |
Single log file path (legacy). Ignored when PPT_LOG_DIR is set |
- Log files rotate at 10MB with 2 backups retained.
- When
PPT_LOG_DIRis set, a<project_id>.logfile is created for each project.
Viewing Logs
# View logs for a specific project
tail -f /tmp/ppt-generator/<project_id>.log
# View all logs
tail -f /tmp/ppt-generator/*.log
Development
uv run ppt-generator # Run MCP server (stdio mode)
uv run pytest # Run all tests
Documentation
- Architecture — Feature details, MCP tool list, workflows, project structure, tech stack
- ALPS Design Document
- ADR — Architecture Decision Records
- Contributing Guide
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.