open-presentation
Open an existing presentation and create a backup copy using the Powerpoint MCP Server. Specify the presentation name and optional output path to save the duplicated file.
Instructions
Opens an existing presentation and saves a copy to a new file for backup. Use this tool when the user requests to open a presentation that has already been created.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No | Path where to save the presentation (optional) | |
| presentation_name | Yes | Name of the presentation to open |
Input Schema (JSON Schema)
{
"properties": {
"output_path": {
"description": "Path where to save the presentation (optional)",
"type": "string"
},
"presentation_name": {
"description": "Name of the presentation to open",
"type": "string"
}
},
"required": [
"presentation_name"
],
"type": "object"
}
Implementation Reference
- src/powerpoint/server.py:372-408 (handler)Handler logic for the 'open-presentation' tool: loads PPTX file using python-pptx, sanitizes path, creates backup, stores in PresentationManager, returns success message.if name == "open-presentation": presentation_name = arguments.get("presentation_name") if not presentation_name: raise ValueError("Missing presentation name") file_name = f"{presentation_name}.pptx" try: safe_file_path = sanitize_path(folder_path, file_name) except ValueError as e: raise ValueError(f"Invalid file path: {str(e)}") # attempt to load presentation try: prs = Presentation(safe_file_path) except Exception as e: raise ValueError(f"Unable to load {safe_file_path}. Error: {str(e)}") # Create a backup of the original file file_name = BACKUP_FILE_NAME try: safe_file_path = sanitize_path(folder_path, file_name) except ValueError as e: raise ValueError(f"Invalid file path: {str(e)}") # attempt to save a backup of presentation try: prs.save(safe_file_path) except Exception as e: raise ValueError(f"Unable to save {safe_file_path}. Error: {str(e)}") presentation_manager.presentations[presentation_name] = prs return [ types.TextContent( type="text", text=f"Opened presentation: {presentation_name}" ) ]
- src/powerpoint/server.py:324-342 (registration)Tool registration in list_tools(), including input schema defining 'presentation_name' (required) and optional 'output_path'.types.Tool( name="open-presentation", description="Opens an existing presentation and saves a copy to a new file for backup. Use this tool when " "the user requests to open a presentation that has already been created.", inputSchema={ "type": "object", "properties": { "presentation_name": { "type": "string", "description": "Name of the presentation to open", }, "output_path": { "type": "string", "description": "Path where to save the presentation (optional)", }, }, "required": ["presentation_name"], }, ),