---
name: workspace-commands
description: The shell commands and task tools available in this workspace.
---
# Available commands
Python (`python` or `python3`), Perl, JavaScript/Node.js, and TypeScript
runtimes are unavailable. Use the shell commands and task CLIs documented
below; do not probe for or attempt to install other runtimes. Use `pdf-tools`
for PDFs and `pptx` for presentations.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip
with pipes, `>` redirection, `$(...)` substitution and `$'...'`.
The task CLIs below are registered with this shell rather than installed
as files; do not inspect them with `which`, `file` or `/usr/bin`.
## pdf-tools
Use `pdf-tools <command> '<JSON arguments>'`. Run
`pdf-tools <command> --help` to get more information.
| Command | Arguments | Description |
|---|---|---|
| `pdf-tools read-pdf-pages` | `{pdf_file_path: str, start_page?: int = 1, end_page?: int = 1}` | Read content from PDF file for specified page range. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Note: Avoid reading too many pages at once (recommended: <50 pages) to prevent errors. Args: pdf_file_path: Path to the PDF file or URL to PDF start_page: Starting page number (default: 1) end_page: Ending page number (default: 1) Returns: Extracted text content from the specified pages |
| `pdf-tools get-pdf-info` | `{pdf_file_path: str}` | Get basic information about a PDF file including page count. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Args: pdf_file_path: Path to the PDF file or URL to PDF Returns: Basic information about the PDF file |
| `pdf-tools merge-pdfs` | `{pdf_paths: list[str], output_path: str}` | Merge multiple PDF files into one. Supports both local file paths and URLs. URLs will be downloaded to temporary files before merging. Mixed local and URL paths are supported. Args: pdf_paths: List of paths to PDF files to merge (in order) - can include URLs output_path: Path where the merged PDF will be saved (must be local path) Returns: Success message with merge details or error message |
| `pdf-tools extract-pdf-pages` | `{source_path: str, page_numbers: list[int], output_path: str}` | Extract specific pages from a PDF and create a new PDF. Supports URLs for source PDF. The source PDF will be downloaded to a temporary directory if it's a URL. Output path must be a local file path. Args: source_path: Path to the source PDF file or URL to PDF page_numbers: List of page numbers to extract (1-indexed) output_path: Path where the new PDF will be saved (must be local path) Returns: Success message with extraction details or error message |
| `pdf-tools search-pdf-content` | `{pdf_file_path: str, pattern: str, page_size?: int = 10}` | Search for regex pattern in PDF content and return paginated results. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Args: pdf_file_path: Path to the PDF file or URL to PDF pattern: Regular expression pattern to search for page_size: Number of results per page (10-50, default: 10) Returns: Search results with UUID for pagination, or error message |
| `pdf-tools search-pdf-next-page` | `{search_id: str}` | Get next page of search results. Args: search_id: Search session ID from previous search Returns: Next page of search results or error message |
| `pdf-tools search-pdf-prev-page` | `{search_id: str}` | Get previous page of search results. Args: search_id: Search session ID from previous search Returns: Previous page of search results or error message |
| `pdf-tools search-pdf-go-page` | `{search_id: str, page_number: int}` | Go to specific page of search results. Args: search_id: Search session ID from previous search page_number: Page number to go to (1-indexed) Returns: Specified page of search results or error message |
| `pdf-tools search-pdf-info` | `{search_id: str}` | Get information about a search session. Args: search_id: Search session ID from previous search Returns: Information about the search session |
## pptx
Use `pptx <command> '<JSON arguments>'`. Run `pptx <command> --help` to get
more information.
| Command | Arguments | Description |
|---|---|---|
| `pptx create-presentation` | `{id?: str = null}` | Create a new PowerPoint presentation. |
| `pptx create-presentation-from-template` | `{template_path: str, id?: str = null}` | Create a new PowerPoint presentation from a template file. |
| `pptx open-presentation` | `{file_path: str, id?: str = null}` | Open an existing PowerPoint presentation from a file. |
| `pptx save-presentation` | `{file_path: str, presentation_id?: str = null}` | Save a presentation to a file. |
| `pptx get-presentation-info` | `{presentation_id?: str = null}` | Get information about a presentation. |
| `pptx get-template-file-info` | `{template_path: str}` | Get information about a template file including layouts and properties. |
| `pptx set-core-properties` | `{title?: str = null, subject?: str = null, author?: str = null, keywords?: str = null, comments?: str = null, presentation_id?: str = null}` | Set core document properties. |
| `pptx add-slide` | `{layout_index?: int = 1, title?: str = null, background_type?: str = null, background_colors?: list[list[int]] = null, gradient_direction?: str = "horizontal", color_scheme?: str = "modern_blue", presentation_id?: str = null}` | Add a new slide to the presentation with optional background styling. |
| `pptx get-slide-info` | `{slide_index: int, presentation_id?: str = null}` | Get information about a specific slide. |
| `pptx extract-slide-text` | `{slide_index: int, presentation_id?: str = null}` | Extract all text content from a specific slide. |
| `pptx extract-presentation-text` | `{presentation_id?: str = null, include_slide_info?: bool = true}` | Extract all text content from all slides in the presentation. |
| `pptx populate-placeholder` | `{slide_index: int, placeholder_idx: int, text: str, presentation_id?: str = null}` | Populate a placeholder with text. |
| `pptx add-bullet-points` | `{slide_index: int, placeholder_idx: int, bullet_points: list[str], presentation_id?: str = null}` | Add bullet points to a placeholder. |
| `pptx manage-text` | `{slide_index: int, operation: str, left?: number = 1, top?: number = 1, width?: number = 4, height?: number = 2, text?: str = "", shape_index?: int = null, text_runs?: list[dict] = null, font_size?: int = null, font_name?: str = null, bold?: bool = null, italic?: bool = null, underline?: bool = null, color?: list[int] = null, bg_color?: list[int] = null, alignment?: str = null, vertical_alignment?: str = null, auto_fit?: bool = true, validation_only?: bool = false, min_font_size?: int = 8, max_font_size?: int = 72, presentation_id?: str = null}` | Unified text management tool for adding, formatting, validating text, and formatting multiple text runs. |
| `pptx manage-image` | `{slide_index: int, operation: str, image_source: str, source_type?: str = "file", left?: number = 1, top?: number = 1, width?: number = null, height?: number = null, enhancement_style?: str = null, brightness?: number = 1, contrast?: number = 1, saturation?: number = 1, sharpness?: number = 1, blur_radius?: number = 0, filter_type?: str = null, output_path?: str = null, presentation_id?: str = null}` | Unified image management tool for adding and enhancing images. |
| `pptx add-table` | `{slide_index: int, rows: int, cols: int, left: number, top: number, width: number, height: number, data?: list[list[str]] = null, header_row?: bool = true, header_font_size?: int = 12, body_font_size?: int = 10, header_bg_color?: list[int] = null, body_bg_color?: list[int] = null, border_color?: list[int] = null, presentation_id?: str = null}` | Add a table to a slide with enhanced formatting options. |
| `pptx format-table-cell` | `{slide_index: int, shape_index: int, row: int, col: int, font_size?: int = null, font_name?: str = null, bold?: bool = null, italic?: bool = null, color?: list[int] = null, bg_color?: list[int] = null, alignment?: str = null, vertical_alignment?: str = null, presentation_id?: str = null}` | Format a specific table cell. |
| `pptx add-shape` | `{slide_index: int, shape_type: str, left: number, top: number, width: number, height: number, fill_color?: list[int] = null, line_color?: list[int] = null, line_width?: number = null, text?: str = null, font_size?: int = null, font_color?: list[int] = null, presentation_id?: str = null}` | Add an auto shape to a slide with enhanced options. |
| `pptx add-chart` | `{slide_index: int, chart_type: str, left: number, top: number, width: number, height: number, categories: list[str], series_names: list[str], series_values: list[list[number]], has_legend?: bool = true, legend_position?: str = "right", has_data_labels?: bool = false, title?: str = null, x_axis_title?: str = null, y_axis_title?: str = null, color_scheme?: str = null, presentation_id?: str = null}` | Add a chart to a slide with comprehensive formatting options. |
| `pptx apply-professional-design` | `{operation: str, slide_index?: int = null, slide_type?: str = "title_content", color_scheme?: str = "modern_blue", title?: str = null, content?: list[str] = null, apply_to_existing?: bool = true, enhance_title?: bool = true, enhance_content?: bool = true, enhance_shapes?: bool = true, enhance_charts?: bool = true, presentation_id?: str = null}` | Unified professional design tool for themes, slides, and visual enhancements. This applies professional styling and themes rather than structural layout changes. |
| `pptx apply-picture-effects` | `{slide_index: int, shape_index: int, effects: dict, presentation_id?: str = null}` | Apply multiple picture effects in combination. |
| `pptx manage-fonts` | `{operation: str, font_path: str, output_path?: str = null, presentation_type?: str = "business", text_content?: str = null}` | Unified font management tool for analysis, optimization, and recommendations. |
| `pptx list-slide-templates` | `{}` | List all available slide layout templates. |
| `pptx apply-slide-template` | `{slide_index: int, template_id: str, color_scheme?: str = "modern_blue", content_mapping?: dict = null, image_paths?: dict = null, presentation_id?: str = null}` | Apply a structured layout template to an existing slide. This modifies slide layout and content structure using predefined templates. Args: slide_index: Index of the slide to apply template to template_id: ID of the template to apply (e.g., 'title_slide', 'text_with_image') color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red') content_mapping: Dictionary mapping element roles to custom content image_paths: Dictionary mapping image element roles to file paths presentation_id: Presentation ID (uses current if None) |
| `pptx create-slide-from-template` | `{template_id: str, color_scheme?: str = "modern_blue", content_mapping?: dict = null, image_paths?: dict = null, layout_index?: int = 1, presentation_id?: str = null}` | Create a new slide using a layout template. Args: template_id: ID of the template to use (e.g., 'title_slide', 'text_with_image') color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red') content_mapping: Dictionary mapping element roles to custom content image_paths: Dictionary mapping image element roles to file paths layout_index: PowerPoint layout index to use as base (default: 1) presentation_id: Presentation ID (uses current if None) |
| `pptx create-presentation-from-templates` | `{template_sequence: list[dict], color_scheme?: str = "modern_blue", presentation_title?: str = null, presentation_id?: str = null}` | Create a complete presentation from a sequence of templates. Args: template_sequence: List of template configurations, each containing: - template_id: Template to use - content: Content mapping for the template - images: Image path mapping for the template color_scheme: Color scheme to apply to all slides presentation_title: Optional title for the presentation presentation_id: Presentation ID (uses current if None) Example template_sequence: [ { "template_id": "title_slide", "content": { "title": "My Presentation", "subtitle": "Annual Report 2024", "author": "John Doe" } }, { "template_id": "text_with_image", "content": { "title": "Key Results", "content": "• Achievement 1\n• Achievement 2" }, "images": { "supporting": "/path/to/image.jpg" } } ] |
| `pptx get-template-info` | `{template_id: str}` | Get detailed information about a specific template. Args: template_id: ID of the template to get information about |
| `pptx auto-generate-presentation` | `{topic: str, slide_count?: int = 5, presentation_type?: str = "business", color_scheme?: str = "modern_blue", include_charts?: bool = true, include_images?: bool = false, presentation_id?: str = null}` | Automatically generate a presentation based on topic and preferences. Args: topic: Main topic/theme for the presentation slide_count: Number of slides to generate (3-20) presentation_type: Type of presentation ('business', 'academic', 'creative') color_scheme: Color scheme to use include_charts: Whether to include chart slides include_images: Whether to include image placeholders presentation_id: Presentation ID (uses current if None) |
| `pptx optimize-slide-text` | `{slide_index: int, auto_resize?: bool = true, auto_wrap?: bool = true, optimize_spacing?: bool = true, min_font_size?: int = 8, max_font_size?: int = 36, presentation_id?: str = null}` | Optimize text elements on a slide for better readability and fit. Args: slide_index: Index of the slide to optimize auto_resize: Whether to automatically resize fonts to fit containers auto_wrap: Whether to apply intelligent text wrapping optimize_spacing: Whether to optimize line spacing min_font_size: Minimum allowed font size max_font_size: Maximum allowed font size presentation_id: Presentation ID (uses current if None) |
| `pptx manage-hyperlinks` | `{operation: str, slide_index: int, shape_index?: int = null, text?: str = null, url?: str = null, run_index?: int = 0, presentation_id?: str = null}` | Manage hyperlinks in text shapes and runs. Args: operation: Operation type ("add", "remove", "list", "update") slide_index: Index of the slide (0-based) shape_index: Index of the shape on the slide (0-based) text: Text to make into hyperlink (for "add" operation) url: URL for the hyperlink run_index: Index of text run within the shape (0-based) presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
| `pptx update-chart-data` | `{slide_index: int, shape_index: int, categories: list[str], series_data: list[dict], presentation_id?: str = null}` | Replace existing chart data with new categories and series. Args: slide_index: Index of the slide (0-based) shape_index: Index of the chart shape (0-based) categories: List of category names series_data: List of dictionaries with 'name' and 'values' keys presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
| `pptx add-connector` | `{slide_index: int, connector_type: str, start_x: number, start_y: number, end_x: number, end_y: number, line_width?: number = 1, color?: list[int] = null, presentation_id?: str = null}` | Add connector lines/arrows between points on a slide. Args: slide_index: Index of the slide (0-based) connector_type: Type of connector ("straight", "elbow", "curved") start_x: Starting X coordinate in inches start_y: Starting Y coordinate in inches end_x: Ending X coordinate in inches end_y: Ending Y coordinate in inches line_width: Width of the connector line in points color: RGB color as [r, g, b] list presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
| `pptx manage-slide-masters` | `{operation: str, master_index?: int = 0, layout_index?: int = null, presentation_id?: str = null}` | Access and manage slide master properties and layouts. Args: operation: Operation type ("list", "get_layouts", "get_info") master_index: Index of the slide master (0-based) layout_index: Index of specific layout within master (0-based) presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with slide master information |
| `pptx manage-slide-transitions` | `{slide_index: int, operation: str, transition_type?: str = null, duration?: number = 1, presentation_id?: str = null}` | Manage slide transitions and timing. Args: slide_index: Index of the slide (0-based) operation: Operation type ("set", "remove", "get") transition_type: Type of transition (basic support) duration: Duration of transition in seconds presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with transition information |
| `pptx list-presentations` | `{}` | List all loaded presentations. |
| `pptx switch-presentation` | `{presentation_id: str}` | Switch to a different loaded presentation. |
| `pptx get-server-info` | `{}` | Get information about the MCP server. |
| name | workspace-commands |
|---|
| description | The shell commands and task tools available in this workspace. |
|---|
Available commands
Python (python or python3), Perl, JavaScript/Node.js, and TypeScript runtimes are unavailable. Use the shell commands and task CLIs documented below; do not probe for or attempt to install other runtimes. Use pdf-tools for PDFs and pptx for presentations.
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip
with pipes, > redirection, $(...) substitution and $'...'.
The task CLIs below are registered with this shell rather than installed as files; do not inspect them with which, file or /usr/bin.
pdf-tools
Use pdf-tools <command> '<JSON arguments>'. Run pdf-tools <command> --help to get more information.
| Command | Arguments | Description |
|---|
pdf-tools read-pdf-pages | {pdf_file_path: str, start_page?: int = 1, end_page?: int = 1} | Read content from PDF file for specified page range. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Note: Avoid reading too many pages at once (recommended: <50 pages) to prevent errors. Args: pdf_file_path: Path to the PDF file or URL to PDF start_page: Starting page number (default: 1) end_page: Ending page number (default: 1) Returns: Extracted text content from the specified pages |
pdf-tools get-pdf-info | {pdf_file_path: str} | Get basic information about a PDF file including page count. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Args: pdf_file_path: Path to the PDF file or URL to PDF Returns: Basic information about the PDF file |
pdf-tools merge-pdfs | {pdf_paths: list[str], output_path: str} | Merge multiple PDF files into one. Supports both local file paths and URLs. URLs will be downloaded to temporary files before merging. Mixed local and URL paths are supported. Args: pdf_paths: List of paths to PDF files to merge (in order) - can include URLs output_path: Path where the merged PDF will be saved (must be local path) Returns: Success message with merge details or error message |
pdf-tools extract-pdf-pages | {source_path: str, page_numbers: list[int], output_path: str} | Extract specific pages from a PDF and create a new PDF. Supports URLs for source PDF. The source PDF will be downloaded to a temporary directory if it's a URL. Output path must be a local file path. Args: source_path: Path to the source PDF file or URL to PDF page_numbers: List of page numbers to extract (1-indexed) output_path: Path where the new PDF will be saved (must be local path) Returns: Success message with extraction details or error message |
pdf-tools search-pdf-content | {pdf_file_path: str, pattern: str, page_size?: int = 10} | Search for regex pattern in PDF content and return paginated results. Supports both local file paths and URLs. For URLs, the PDF will be downloaded to a temporary directory and cached for future use. Args: pdf_file_path: Path to the PDF file or URL to PDF pattern: Regular expression pattern to search for page_size: Number of results per page (10-50, default: 10) Returns: Search results with UUID for pagination, or error message |
pdf-tools search-pdf-next-page | {search_id: str} | Get next page of search results. Args: search_id: Search session ID from previous search Returns: Next page of search results or error message |
pdf-tools search-pdf-prev-page | {search_id: str} | Get previous page of search results. Args: search_id: Search session ID from previous search Returns: Previous page of search results or error message |
pdf-tools search-pdf-go-page | {search_id: str, page_number: int} | Go to specific page of search results. Args: search_id: Search session ID from previous search page_number: Page number to go to (1-indexed) Returns: Specified page of search results or error message |
pdf-tools search-pdf-info | {search_id: str} | Get information about a search session. Args: search_id: Search session ID from previous search Returns: Information about the search session |
pptx
Use pptx <command> '<JSON arguments>'. Run pptx <command> --help to get more information.
| Command | Arguments | Description |
|---|
pptx create-presentation | {id?: str = null} | Create a new PowerPoint presentation. |
pptx create-presentation-from-template | {template_path: str, id?: str = null} | Create a new PowerPoint presentation from a template file. |
pptx open-presentation | {file_path: str, id?: str = null} | Open an existing PowerPoint presentation from a file. |
pptx save-presentation | {file_path: str, presentation_id?: str = null} | Save a presentation to a file. |
pptx get-presentation-info | {presentation_id?: str = null} | Get information about a presentation. |
pptx get-template-file-info | {template_path: str} | Get information about a template file including layouts and properties. |
pptx set-core-properties | {title?: str = null, subject?: str = null, author?: str = null, keywords?: str = null, comments?: str = null, presentation_id?: str = null} | Set core document properties. |
pptx add-slide | {layout_index?: int = 1, title?: str = null, background_type?: str = null, background_colors?: list[list[int]] = null, gradient_direction?: str = "horizontal", color_scheme?: str = "modern_blue", presentation_id?: str = null} | Add a new slide to the presentation with optional background styling. |
pptx get-slide-info | {slide_index: int, presentation_id?: str = null} | Get information about a specific slide. |
pptx extract-slide-text | {slide_index: int, presentation_id?: str = null} | Extract all text content from a specific slide. |
pptx extract-presentation-text | {presentation_id?: str = null, include_slide_info?: bool = true} | Extract all text content from all slides in the presentation. |
pptx populate-placeholder | {slide_index: int, placeholder_idx: int, text: str, presentation_id?: str = null} | Populate a placeholder with text. |
pptx add-bullet-points | {slide_index: int, placeholder_idx: int, bullet_points: list[str], presentation_id?: str = null} | Add bullet points to a placeholder. |
pptx manage-text | {slide_index: int, operation: str, left?: number = 1, top?: number = 1, width?: number = 4, height?: number = 2, text?: str = "", shape_index?: int = null, text_runs?: list[dict] = null, font_size?: int = null, font_name?: str = null, bold?: bool = null, italic?: bool = null, underline?: bool = null, color?: list[int] = null, bg_color?: list[int] = null, alignment?: str = null, vertical_alignment?: str = null, auto_fit?: bool = true, validation_only?: bool = false, min_font_size?: int = 8, max_font_size?: int = 72, presentation_id?: str = null} | Unified text management tool for adding, formatting, validating text, and formatting multiple text runs. |
pptx manage-image | {slide_index: int, operation: str, image_source: str, source_type?: str = "file", left?: number = 1, top?: number = 1, width?: number = null, height?: number = null, enhancement_style?: str = null, brightness?: number = 1, contrast?: number = 1, saturation?: number = 1, sharpness?: number = 1, blur_radius?: number = 0, filter_type?: str = null, output_path?: str = null, presentation_id?: str = null} | Unified image management tool for adding and enhancing images. |
pptx add-table | {slide_index: int, rows: int, cols: int, left: number, top: number, width: number, height: number, data?: list[list[str]] = null, header_row?: bool = true, header_font_size?: int = 12, body_font_size?: int = 10, header_bg_color?: list[int] = null, body_bg_color?: list[int] = null, border_color?: list[int] = null, presentation_id?: str = null} | Add a table to a slide with enhanced formatting options. |
pptx format-table-cell | {slide_index: int, shape_index: int, row: int, col: int, font_size?: int = null, font_name?: str = null, bold?: bool = null, italic?: bool = null, color?: list[int] = null, bg_color?: list[int] = null, alignment?: str = null, vertical_alignment?: str = null, presentation_id?: str = null} | Format a specific table cell. |
pptx add-shape | {slide_index: int, shape_type: str, left: number, top: number, width: number, height: number, fill_color?: list[int] = null, line_color?: list[int] = null, line_width?: number = null, text?: str = null, font_size?: int = null, font_color?: list[int] = null, presentation_id?: str = null} | Add an auto shape to a slide with enhanced options. |
pptx add-chart | {slide_index: int, chart_type: str, left: number, top: number, width: number, height: number, categories: list[str], series_names: list[str], series_values: list[list[number]], has_legend?: bool = true, legend_position?: str = "right", has_data_labels?: bool = false, title?: str = null, x_axis_title?: str = null, y_axis_title?: str = null, color_scheme?: str = null, presentation_id?: str = null} | Add a chart to a slide with comprehensive formatting options. |
pptx apply-professional-design | {operation: str, slide_index?: int = null, slide_type?: str = "title_content", color_scheme?: str = "modern_blue", title?: str = null, content?: list[str] = null, apply_to_existing?: bool = true, enhance_title?: bool = true, enhance_content?: bool = true, enhance_shapes?: bool = true, enhance_charts?: bool = true, presentation_id?: str = null} | Unified professional design tool for themes, slides, and visual enhancements. This applies professional styling and themes rather than structural layout changes. |
pptx apply-picture-effects | {slide_index: int, shape_index: int, effects: dict, presentation_id?: str = null} | Apply multiple picture effects in combination. |
pptx manage-fonts | {operation: str, font_path: str, output_path?: str = null, presentation_type?: str = "business", text_content?: str = null} | Unified font management tool for analysis, optimization, and recommendations. |
pptx list-slide-templates | {} | List all available slide layout templates. |
pptx apply-slide-template | {slide_index: int, template_id: str, color_scheme?: str = "modern_blue", content_mapping?: dict = null, image_paths?: dict = null, presentation_id?: str = null} | Apply a structured layout template to an existing slide. This modifies slide layout and content structure using predefined templates. Args: slide_index: Index of the slide to apply template to template_id: ID of the template to apply (e.g., 'title_slide', 'text_with_image') color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red') content_mapping: Dictionary mapping element roles to custom content image_paths: Dictionary mapping image element roles to file paths presentation_id: Presentation ID (uses current if None) |
pptx create-slide-from-template | {template_id: str, color_scheme?: str = "modern_blue", content_mapping?: dict = null, image_paths?: dict = null, layout_index?: int = 1, presentation_id?: str = null} | Create a new slide using a layout template. Args: template_id: ID of the template to use (e.g., 'title_slide', 'text_with_image') color_scheme: Color scheme to use ('modern_blue', 'corporate_gray', 'elegant_green', 'warm_red') content_mapping: Dictionary mapping element roles to custom content image_paths: Dictionary mapping image element roles to file paths layout_index: PowerPoint layout index to use as base (default: 1) presentation_id: Presentation ID (uses current if None) |
pptx create-presentation-from-templates | {template_sequence: list[dict], color_scheme?: str = "modern_blue", presentation_title?: str = null, presentation_id?: str = null} | Create a complete presentation from a sequence of templates. Args: template_sequence: List of template configurations, each containing: - template_id: Template to use - content: Content mapping for the template - images: Image path mapping for the template color_scheme: Color scheme to apply to all slides presentation_title: Optional title for the presentation presentation_id: Presentation ID (uses current if None) Example template_sequence: [ { "template_id": "title_slide", "content": { "title": "My Presentation", "subtitle": "Annual Report 2024", "author": "John Doe" } }, { "template_id": "text_with_image", "content": { "title": "Key Results", "content": "• Achievement 1\n• Achievement 2" }, "images": { "supporting": "/path/to/image.jpg" } } ] |
pptx get-template-info | {template_id: str} | Get detailed information about a specific template. Args: template_id: ID of the template to get information about |
pptx auto-generate-presentation | {topic: str, slide_count?: int = 5, presentation_type?: str = "business", color_scheme?: str = "modern_blue", include_charts?: bool = true, include_images?: bool = false, presentation_id?: str = null} | Automatically generate a presentation based on topic and preferences. Args: topic: Main topic/theme for the presentation slide_count: Number of slides to generate (3-20) presentation_type: Type of presentation ('business', 'academic', 'creative') color_scheme: Color scheme to use include_charts: Whether to include chart slides include_images: Whether to include image placeholders presentation_id: Presentation ID (uses current if None) |
pptx optimize-slide-text | {slide_index: int, auto_resize?: bool = true, auto_wrap?: bool = true, optimize_spacing?: bool = true, min_font_size?: int = 8, max_font_size?: int = 36, presentation_id?: str = null} | Optimize text elements on a slide for better readability and fit. Args: slide_index: Index of the slide to optimize auto_resize: Whether to automatically resize fonts to fit containers auto_wrap: Whether to apply intelligent text wrapping optimize_spacing: Whether to optimize line spacing min_font_size: Minimum allowed font size max_font_size: Maximum allowed font size presentation_id: Presentation ID (uses current if None) |
pptx manage-hyperlinks | {operation: str, slide_index: int, shape_index?: int = null, text?: str = null, url?: str = null, run_index?: int = 0, presentation_id?: str = null} | Manage hyperlinks in text shapes and runs. Args: operation: Operation type ("add", "remove", "list", "update") slide_index: Index of the slide (0-based) shape_index: Index of the shape on the slide (0-based) text: Text to make into hyperlink (for "add" operation) url: URL for the hyperlink run_index: Index of text run within the shape (0-based) presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
pptx update-chart-data | {slide_index: int, shape_index: int, categories: list[str], series_data: list[dict], presentation_id?: str = null} | Replace existing chart data with new categories and series. Args: slide_index: Index of the slide (0-based) shape_index: Index of the chart shape (0-based) categories: List of category names series_data: List of dictionaries with 'name' and 'values' keys presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
pptx add-connector | {slide_index: int, connector_type: str, start_x: number, start_y: number, end_x: number, end_y: number, line_width?: number = 1, color?: list[int] = null, presentation_id?: str = null} | Add connector lines/arrows between points on a slide. Args: slide_index: Index of the slide (0-based) connector_type: Type of connector ("straight", "elbow", "curved") start_x: Starting X coordinate in inches start_y: Starting Y coordinate in inches end_x: Ending X coordinate in inches end_y: Ending Y coordinate in inches line_width: Width of the connector line in points color: RGB color as [r, g, b] list presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with operation results |
pptx manage-slide-masters | {operation: str, master_index?: int = 0, layout_index?: int = null, presentation_id?: str = null} | Access and manage slide master properties and layouts. Args: operation: Operation type ("list", "get_layouts", "get_info") master_index: Index of the slide master (0-based) layout_index: Index of specific layout within master (0-based) presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with slide master information |
pptx manage-slide-transitions | {slide_index: int, operation: str, transition_type?: str = null, duration?: number = 1, presentation_id?: str = null} | Manage slide transitions and timing. Args: slide_index: Index of the slide (0-based) operation: Operation type ("set", "remove", "get") transition_type: Type of transition (basic support) duration: Duration of transition in seconds presentation_id: Optional presentation ID (uses current if not provided) Returns: Dictionary with transition information |
pptx list-presentations | {} | List all loaded presentations. |
pptx switch-presentation | {presentation_id: str} | Switch to a different loaded presentation. |
pptx get-server-info | {} | Get information about the MCP server. |