Skip to main content
Glama

get_comments_for_paragraph

Extract comments associated with a specific paragraph in a Word document using the filename and paragraph index to streamline feedback review and edits.

Instructions

Extract comments for a specific paragraph in a Word document.

Input Schema

NameRequiredDescriptionDefault
filenameYes
paragraph_indexYes

Input Schema (JSON Schema)

{ "properties": { "filename": { "title": "Filename", "type": "string" }, "paragraph_index": { "title": "Paragraph Index", "type": "integer" } }, "required": [ "filename", "paragraph_index" ], "type": "object" }

Implementation Reference

  • The main handler function for the 'get_comments_for_paragraph' tool. It loads the Word document, validates inputs, extracts all comments using core utilities, filters comments for the specified paragraph using the helper function, retrieves paragraph text for context, and returns a formatted 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)
  • Registration of the 'get_comments_for_paragraph' tool using FastMCP's @mcp.tool() decorator. This sync wrapper delegates execution to the async implementation in comment_tools.py.
    @mcp.tool() 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)
  • Helper function that filters a list of comments to those associated with a specific 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]

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

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