Skip to main content
Glama
GongRzhe

Office Word MCP Server

get_comments_for_paragraph

Extract comments for a specific paragraph in a Word document to review feedback or track changes efficiently.

Instructions

Extract comments for a specific paragraph in a Word document.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
paragraph_indexYes

Implementation Reference

  • Main asynchronous handler implementing the tool logic: loads document, validates inputs, extracts and filters comments for the specified paragraph, includes paragraph text context, returns structured JSON response.
    async def get_comments_for_paragraph(filename: str, paragraph_index: int) -> str:
        """
        Extract comments for a specific paragraph in a Word document.
        
        Args:
            filename: Path to the Word document
            paragraph_index: Index of the paragraph (0-based)
            
        Returns:
            JSON string containing comments for the specified paragraph
        """
        filename = ensure_docx_extension(filename)
        
        if not os.path.exists(filename):
            return json.dumps({
                'success': False,
                'error': f'Document {filename} does not exist'
            }, indent=2)
        
        if paragraph_index < 0:
            return json.dumps({
                'success': False,
                'error': 'Paragraph index must be non-negative'
            }, indent=2)
        
        try:
            # Load the document
            doc = Document(filename)
            
            # Check if paragraph index is valid
            if paragraph_index >= len(doc.paragraphs):
                return json.dumps({
                    'success': False,
                    'error': f'Paragraph index {paragraph_index} is out of range. Document has {len(doc.paragraphs)} paragraphs.'
                }, indent=2)
            
            # Extract all comments
            all_comments = extract_all_comments(doc)
            
            # Filter for the specific paragraph
            from word_document_server.core.comments import get_comments_for_paragraph as core_get_comments_for_paragraph
            para_comments = core_get_comments_for_paragraph(all_comments, paragraph_index)
            
            # Get the paragraph text for context
            paragraph_text = doc.paragraphs[paragraph_index].text
            
            # Return results
            return json.dumps({
                'success': True,
                'paragraph_index': paragraph_index,
                'paragraph_text': paragraph_text,
                'comments': para_comments,
                'total_comments': len(para_comments)
            }, indent=2)
            
        except Exception as e:
            return json.dumps({
                'success': False,
                'error': f'Failed to extract comments: {str(e)}'
            }, indent=2)
  • MCP tool registration via FastMCP @mcp.tool() decorator in the main server file, defining input parameters and docstring, delegating execution to the handler in comment_tools.
    def get_comments_for_paragraph(filename: str, paragraph_index: int):
        """Extract comments for a specific paragraph in a Word document."""
        return comment_tools.get_comments_for_paragraph(filename, paragraph_index)
    # New table column width tools
  • Core helper function that filters a list of comments to return only those associated with the given paragraph_index.
    def get_comments_for_paragraph(comments: List[Dict[str, Any]], paragraph_index: int) -> List[Dict[str, Any]]:
        """
        Get all comments for a specific paragraph.
        
        Args:
            comments: List of all comments
            paragraph_index: Index of the paragraph
            
        Returns:
            Comments for the specified paragraph
        """
        return [c for c in comments if c.get('paragraph_index') == paragraph_index]

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/GongRzhe/Office-Word-MCP-Server'

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