PPTX Generator MCP Server

PPTX Generator MCP Server

Generates professional PowerPoint presentations from Markdown with support for code blocks, tables, custom branding, and mixed formatting. Transforms lesson plans and documentation into styled PPTX files with syntax highlighting and customizable themes.

Category
Visit Server

README

PPTX Generator MCP Server

Model Context Protocol (MCP) server for generating professional PowerPoint presentations from Markdown.

Transform your lesson plans and documentation into beautiful PPTX presentations with support for:

  • Inline code with monospace formatting
  • Code blocks with syntax highlighting background
  • Tables with styled headers
  • Bold text and mixed formatting
  • Bullet lists with proper indentation
  • Mixed content slides (bullets + code + tables)
  • Custom branding (logos, colors, instructor info)

📋 Table of Contents


🔧 Requirements

  • Node.js 18.0 or higher (Download)
  • Claude Desktop (Download)
  • macOS, Linux, or Windows

Check your Node.js version:

node -v

📦 Installation

Method 1: Quick Install (Recommended)

1. Clone the repository:

cd ~/Documents  # or any directory you prefer
git clone https://github.com/dmytro-ustynov/pptx-generator-mcp.git
cd pptx-generator-mcp

2. Run the installation script:

./install.sh

The script will:

  • Install all dependencies
  • Install the command globally
  • Show you the Claude Desktop configuration

3. Configure Claude Desktop:

The installer will show you what to add. Copy the configuration to:

  • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pptx-generator": {
      "command": "pptx-generator-mcp"
    }
  }
}

4. Restart Claude Desktop

✅ Done! The pptx-generator tools are now available in Claude.


Method 2: Manual Install

1. Clone and install dependencies:

# Change dmytro-ustynov to your username if you want to use your fork
git clone https://github.com/dmytro-ustynov/pptx-generator-mcp.git 
cd pptx-generator-mcp
npm install

2. Install globally:

npm install -g .

Or with sudo if needed:

sudo npm install -g .

3. Verify installation:

which pptx-generator-mcp
# Should show: /usr/local/bin/pptx-generator-mcp (or similar)

4. Configure Claude Desktop (same as Method 1, step 3)


⚙️ Configuration

Claude Desktop Setup

After installation, configure Claude Desktop to use the MCP server.

macOS/Linux:

# Open the config file
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# or
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows:

notepad %APPDATA%\Claude\claude_desktop_config.json

Add this configuration:

{
  "mcpServers": {
    "pptx-generator": {
      "command": "pptx-generator-mcp"
    }
  }
}

If you have other MCP servers:

{
  "mcpServers": {
    "pptx-generator": {
      "command": "pptx-generator-mcp"
    },
    "other-server": {
      "command": "other-server-command"
    }
  }
}

Restart Claude Desktop for changes to take effect.


Customization

Customize colors, fonts, and branding by editing config.json in the installation directory.

Find your installation:

npm list -g pptx-generator-mcp
# Shows: /usr/local/lib/node_modules/pptx-generator-mcp

Edit config:

cd $(npm root -g)/pptx-generator-mcp
nano config.json

Configuration options:

Instructor Information

{
  "instructor": {
    "rank": "майор",
    "name": "Дмитро УСТИНОВ",
    "position": "викладач"
  }
}

Institution Details

{
  "institution": {
    "name": [
      "Військовий інститут",
      "телекомунікацій та інформатизації",
      "імені Героїв Крут"
    ],
    "department": "кафедри Комп'ютерних наук та інтелектуальних технологій"
  }
}

Colors

Colors are adjusted according to the official Armed Forces of Ukraine brandbook, and the logo is Armed Forces of Ukraine emblem.

{
  "colors": {
    "step": "#6A653A",        // Dividers and table headers
    "titleText": "#003366",   // Slide titles
    "bodyText": "#333333"     // Regular text
  }
}

Fonts

{
  "fonts": {
    "title": "Raleway",
    "body": "Open Sans",
    "code": "JetBrains Mono"  // For inline code and code blocks
  }
}

Font Sizes

{
  "sizes": {
    "slideTitle": 28,
    "body": 18,
    "code": 14
  }
}

After editing config.json:

  • No need to restart Claude Desktop
  • Changes apply to next generated presentation

🎯 Usage

In Claude Desktop

Once installed and configured, you can use these tools in Claude:

1. Generate a presentation:

Create a presentation about Docker basics with 5 slides

Claude will use the pptx-generator:generate_presentation tool automatically.

2. Get a template:

Show me the markdown template for presentations

Uses pptx-generator:get_template tool.

3. View configuration:

What are the current presentation settings?

Uses pptx-generator:get_config tool.

4. Update instructor:

Change the instructor to "капітан Іван ПЕТРЕНКО"

Uses pptx-generator:update_instructor tool.


Markdown Format

Presentations are created from Markdown with special syntax:

Frontmatter (Required)

---
discipline: Веб-розробка
type: practical
module: "3: Docker та контейнеризація"
lesson: "3.1: Основи Docker"
---

Types:

  • practical - Практичне заняття
  • lecture - Лекційне заняття
  • group - Групове заняття

Slide Types

Plan Slide:

## [plan] План заняття

- Topic 1
- Topic 2
- Topic 3

Divider Slide:

## [divider] 🔹 ЧАСТИНА 1. Introduction

Content Slide:

## [content] Slide Title

Regular text with **bold** and `inline code`.

Bullet points:
- First point with **bold**
- Second point with `code`
- Third point with **bold** and `code` mixed

Code block:
```bash
docker ps
docker images

Table:

Column 1 Column 2
value1 Description 1
value2 Description 2

#### Formatting

- **Bold text:** `**text**`
- **Inline code:** `` `code` ``
- **Code blocks:** Triple backticks with optional language
- **Tables:** Standard Markdown table syntax
- **Bullets:** `-` or `*` with optional indentation

---

## 📚 Examples

### Simple Presentation

```markdown
---
discipline: Programming Basics
type: lecture
module: "1: Introduction"
lesson: "1.1: Hello World"
---

## [plan] План заняття

- What is programming
- First program
- Variables and types

## [divider] 🔹 Getting Started

## [content] What is Programming?

**Programming** is giving instructions to computers.

Key concepts:
- Variables store data
- Functions perform actions
- Loops repeat tasks

Example:
```python
print("Hello, World!")

### Advanced Features

```markdown
## [content] Docker Commands

Common commands:

| Command | Description |
|---------|-------------|
| `docker ps` | List running containers |
| `docker images` | List images |
| `docker run` | Run a container |

Example usage:
```bash
docker run -d -p 80:80 nginx

The -d flag runs in detached mode.


---

## 🐛 Troubleshooting

### Command not found: pptx-generator-mcp

**Solution 1:** Check if installed globally
```bash
npm list -g pptx-generator-mcp

Solution 2: Add npm global bin to PATH

# Find npm global bin path
npm config get prefix

# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH=$(npm config get prefix)/bin:$PATH

Solution 3: Reinstall

cd /path/to/pptx-generator-mcp
npm install -g .

Tools not showing in Claude

  1. Check Claude Desktop config:

    cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
  2. Verify JSON syntax (use JSONLint)

  3. Restart Claude Desktop completely:

    • Quit Claude Desktop (Cmd+Q on macOS)
    • Reopen Claude Desktop
  4. Check MCP server logs (if available in Claude Desktop)


Permission denied when installing

Solution: Use sudo

sudo npm install -g .

Or install without sudo by configuring npm:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Fonts not displaying correctly

Issue: Custom fonts like JetBrains Mono not showing

Solution: Install the font on your system:

  1. Download JetBrains Mono
  2. Install the font
  3. Restart PowerPoint/Keynote

🔄 Updating

To update to the latest version:

# Navigate to repository
cd /path/to/pptx-generator-mcp

# Pull latest changes
git pull

# Reinstall
npm install
npm install -g .

No need to restart Claude Desktop - changes take effect immediately for new presentations.


🗑️ Uninstalling

# Uninstall global command
npm uninstall -g pptx-generator-mcp

# Remove repository
rm -rf /path/to/pptx-generator-mcp

# Remove from Claude Desktop config
# Edit: ~/Library/Application Support/Claude/claude_desktop_config.json
# Remove the "pptx-generator" section

📖 Additional Resources

  • MCP Documentation: https://modelcontextprotocol.io/
  • Claude Desktop: https://claude.ai/download
  • Markdown Guide: https://www.markdownguide.org/

📝 License

MIT License - See LICENSE file for details


🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

💬 Support

For issues or questions:


Made with ❤️ for VITI education

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured