Registry / web-framework / office-powerpoint-mcp-server

office-powerpoint-mcp-server

JSON →
library2.0.7pypypi✓ verified 82d ago

The `office-powerpoint-mcp-server` library provides a Flask-based HTTP API server for programmatic manipulation of PowerPoint presentations using `python-pptx`. It exposes endpoints to open, save, add slides, add text boxes, and perform various other operations on PPTX files. The current version is 2.0.7, with updates occurring infrequently as it wraps `python-pptx`.

pip install office-powerpoint-mcp-server
INSTALL
IMPORT
SIG · OFFICE-POWERPOINT-
O
office-powerpoint-mcp-server
web-frameworkpythonv2.0.7
Install
9.5s avg
Import
Disk
132MB
Pass rate
8/ 10
Env Coverage8 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v2.0.7 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✓ —
✓ 11.2s
py 3.11
✓ —
✓ 9.8s
py 3.12
✓ —
✓ 8.35s
py 3.13
✓ —
✓ 8.6s
py 3.9
✕ build_error
✕ build_error
132MB installed
● package 132MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

app
from ppt_mcp_server import app
from office_powerpoint_mcp_server import app
FastMCP
from ppt_mcp_server import FastMCP
from office_powerpoint_mcp_server import FastMCP
PresentationManager
from ppt_mcp_server import PresentationManager
from office_powerpoint_mcp_server import PresentationManager

This example demonstrates how to start the `office-powerpoint-mcp-server` programmatically using `subprocess`, verify its reachability, and then stop it. In a typical use case, you would run the server in a separate process or container and then interact with its HTTP API endpoints using a client library (e.g., `requests`) or `curl`.

import subprocess import time import requests print("Starting Office PowerPoint MCP Server...") # Use a non-default port to reduce conflict chances for example server_process = subprocess.Popen(['python', '-m', 'office_powerpoint_mcp_server', '--host', '127.0.0.1', '--port', '5001']) server_url = "http://127.0.0.1:5001" try: print(f"Server started. Waiting 5 seconds to ensure it's up on {server_url}...") time.sleep(5) # Give the server time to start # Test if the server is reachable try: response = requests.get(server_url) response.raise_for_status() # Raise an HTTPError for bad responses (4xx or 5xx) print(f"Server is reachable! Response: {response.text}") except requests.exceptions.ConnectionError: print("Error: Could not connect to the server. It might not have started correctly.") except requests.exceptions.RequestException as e: print(f"An unexpected error occurred: {e}") print(f"You can now send HTTP requests to its API endpoints, e.g., POST to {server_url}/open or {server_url}/save") print("To stop the server, interrupt this script (Ctrl+C).") # In a real scenario, you'd make various HTTP requests here to manipulate PowerPoint files. input("Press Enter to stop the server...") # Keep process alive until user input finally: print("Stopping server...") server_process.terminate() server_process.wait() print("Server stopped.")
Debug
Known issues
gotchaThe server does not include any built-in authentication or authorization mechanisms. Exposing it on a public network without additional security measures (e.g., reverse proxy with auth) can lead to unauthorized PowerPoint file manipulation.
fix
Implement a reverse proxy with authentication/authorization (e.g., Nginx, Caddy) in front of the server, or ensure it's only accessible on a trusted local network.
affects: All versions
breakingWhile no explicit changelog exists, upgrading from `1.x` to `2.x` might introduce changes to API endpoint paths or expected JSON payload structures. Always test upgrades thoroughly.
fix
Review the source code on GitHub for `app.py` (specifically route definitions) or test API endpoints against your client code after upgrading. If available, consult release notes on PyPI or GitHub.
affects: Between major versions 1.x and 2.x
gotchaThe default port (5000) might conflict with other applications (e.g., Flask development servers, common services). If the server fails to start, check for port conflicts.
fix
Specify a different port using `python -m office_powerpoint_mcp_server --port <new_port>` (e.g., 5001) when starting the server, or configure your environment to use an available port.
affects: All versions
Upgrade
Version history
2.0.7latest on PyPI · released Dec 31, 2025
Audit
Dependencies
python-pptxrequiredCore functionality for PowerPoint manipulation.
FlaskrequiredWeb framework for the HTTP API server.
Agent activity
4 hits · last 30 days
node
4
Resources