Skip to main content
Glama
daekeun-ml

PowerPoint Translator

by daekeun-ml

get_slide_preview

Extract and preview detailed content of a specific slide from a PowerPoint file, enabling focused analysis or translation workflows within the PowerPoint Translator server.

Instructions

Get a detailed preview of a specific slide's content.

Args: input_file: Path to the PowerPoint file (.pptx) slide_number: Slide number to preview (1-based indexing)

Returns: Detailed preview of the slide content

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
input_fileYes
slide_numberYes

Implementation Reference

  • MCP tool handler for 'get_slide_preview'. Validates the input file path, creates PowerPointTranslator instance, fetches slide preview, and formats the response with additional context.
    @mcp.tool()
    def get_slide_preview(input_file: str, slide_number: int) -> str:
        """
        Get a detailed preview of a specific slide's content.
        
        Args:
            input_file: Path to the PowerPoint file (.pptx)
            slide_number: Slide number to preview (1-based indexing)
        
        Returns:
            Detailed preview of the slide content
        """
        try:
            # Validate input file using helper function
            input_path, error_msg = validate_input_path(input_file)
            if error_msg:
                return error_msg
            
            # Create translator and get preview
            translator = PowerPointTranslator()
            slide_count = translator.get_slide_count(str(input_path))
            
            if slide_number < 1 or slide_number > slide_count:
                return f"โŒ Error: Invalid slide number {slide_number}. Valid range: 1-{slide_count}"
            
            preview = translator.get_slide_preview(str(input_path), slide_number, max_chars=500)
            
            return f"""๐Ÿ“„ Slide {slide_number} Preview
    
    ๐Ÿ“ File: {input_path}
    ๐Ÿ“Š Total slides: {slide_count}
    
    ๐Ÿ“ Content preview:
    {preview}
    
    ๐Ÿ’ก To translate this slide:
    translate_specific_slides("{input_file}", "{slide_number}")"""
            
        except Exception as e:
            logger.error(f"Failed to get slide preview: {str(e)}")
            return f"โŒ Failed to get slide preview: {str(e)}"
  • Core helper method in PowerPointTranslator class that implements the slide preview logic by loading the PPTX, collecting text from shapes and notes using SlideTextCollector, concatenating them, truncating to max_chars, and returning the preview string.
    def get_slide_preview(self, input_file: str, slide_number: int, max_chars: int = 200) -> str:
        """Get a preview of text content from a specific slide"""
        try:
            Presentation = self.deps.require('pptx')
            prs = Presentation(input_file)
            
            if slide_number < 1 or slide_number > len(prs.slides):
                raise ValueError(f"Invalid slide number: {slide_number}. Valid range: 1-{len(prs.slides)}")
            
            slide = prs.slides[slide_number - 1]  # Convert to 0-based index
            text_items, notes_text = SlideTextCollector().collect_slide_texts(slide)
            
            # Collect all text content
            all_texts = []
            for item in text_items:
                if item['text'].strip():
                    all_texts.append(item['text'].strip())
            
            if notes_text and notes_text.strip():
                all_texts.append(f"[Notes: {notes_text.strip()}]")
            
            # Join and truncate if necessary
            preview = " | ".join(all_texts)
            if len(preview) > max_chars:
                preview = preview[:max_chars] + "..."
            
            return preview if preview else "[No text content found]"
            
        except Exception as e:
            logger.error(f"โŒ Failed to get slide preview: {str(e)}")
            raise
  • mcp_server.py:320-320 (registration)
    FastMCP tool registration decorator for the get_slide_preview tool.
    @mcp.tool()
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daekeun-ml/ppt-translator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server