Registry /
web-framework / office-powerpoint-mcp-server
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
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.fixImplement 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.fixReview 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.fixSpecify 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.