---
slug: "powerpoint-presentations-mcp服务器"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/samos123/pptx-mcp@main/README.md"
repo: "https://github.com/samos123/pptx-mcp"
source_file: "README.md"
branch: "main"
---
# PPTX MCP Server

A FastMCP-powered server for programmatically creating, editing, and rendering PowerPoint (PPTX) presentations. Supports slide creation, text and shape insertion, image embedding, and slide rendering to PNG (with LibreOffice).

## Features

- **Create/Clear Presentations:** Start new or reset existing PPTX files.
- **Add Slides:** Insert slides with customizable layouts.
- **Text & Content:** Add titles, content, and custom textboxes to slides.
- **Shapes:** Insert a wide variety of PowerPoint shapes (including flowchart elements).
- **Images:** Embed images into slides.
- **Slide Description:** Get a textual summary of slide contents for verification.
- **Slide Rendering:** Render slides as PNG images (requires LibreOffice).
- **Download PPTX:** Download the generated presentation file.

## Requirements

- Python 3.12+
- [python-pptx](https://python-pptx.readthedocs.io/)
- [Pillow](https://python-pillow.org/)
- [FastMCP](https://github.com/ContextualAI/fastmcp)
- **LibreOffice** (for slide image rendering; must be installed separately and available in your system PATH)
- [python-dotenv](https://pypi.org/project/python-dotenv/) (for development environment configuration)

## Installation

1. Install Python dependencies:
   ```bash
   pip install .
   ```
   *(Installs from `pyproject.toml` for dependencies)*

2. Optional: Install python-dotenv for development environment variables:
   ```bash
   pip install python-dotenv
   ```

3. **Install LibreOffice** (for image rendering):
   - Linux: `sudo pacman -S libreoffice-fresh` or `sudo apt install libreoffice`
   - macOS: `brew install --cask libreoffice`
   - Windows: [Download from libreoffice.org](https://www.libreoffice.org/download/download/)

## Usage

Start the server:
```bash
python server.py
```
For development with environment variables:

You can set the server's host and port using environment variables:
- `HOST` (default: `127.0.0.1`)
- `PORT` (default: `8000`)

For example, to run on all interfaces and port 9000:
```bash
HOST=0.0.0.0 PORT=9000 python server.py
```
OR

Create/edit the `.env` file in the project root:
For example, to run on all interfaces and port 9000:
```
HOST=0.0.0.0
PORT=9000
```

Load the environment variables when starting the server:
   ```bash
   python server.py
   ```

Or (for development with FastMCP):
```bash
fastmcp dev server.py
```

## API Overview

The server exposes tools and resources via FastMCP, including:

- `create_or_clear_presentation(filename)`
- `add_slide(filename, layout_index)`
- `add_title_and_content(filename, slide_index, title, content)`
- `add_textbox(filename, slide_index, text, left_inches, top_inches, width_inches, height_inches, font_size_pt, bold)`
- `add_shape(filename, slide_index, shape_type_name, left_inches, top_inches, width_inches, height_inches, text)`
- `add_picture(filename, slide_index, image, left_inches, top_inches, width_inches, height_inches)`
- `get_slide_content_description(filename, slide_index)`
- `get_slide_image(filename, slide_index)` *(requires LibreOffice)*
- `get_pptx_file(filename)`

See the code for full parameter details and available shape types.

## Presentations & Templates

- Presentations are saved in the `presentations/` directory.
- You can add your own templates in `presentations/templates/`.

## License

See [LICENSE](https://github.com/samos123/pptx-mcp/tree/HEAD/LICENSE) for details.


