Skip to main content
Glama
GongRzhe

Office Word MCP Server

set_table_alignment_all

Align text horizontally and vertically in all cells of a Word document table to improve readability and formatting consistency.

Instructions

Set text alignment for all cells in a table.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
table_indexYes
horizontalNoleft
verticalNotop

Implementation Reference

  • Registers the MCP tool 'set_table_alignment_all' with FastMCP and delegates execution to the format_tools implementation.
    @mcp.tool()
    def set_table_alignment_all(filename: str, table_index: int, 
                              horizontal: str = "left", vertical: str = "top"):
        """Set text alignment for all cells in a table."""
        return format_tools.set_table_alignment_all(filename, table_index, horizontal, vertical)
  • Executes the tool logic: validates inputs, loads the Word document using python-docx, retrieves the specified table, calls the core set_table_alignment helper, and saves the modified document.
    async def set_table_alignment_all(filename: str, table_index: int, 
                                    horizontal: str = "left", vertical: str = "top") -> str:
        """Set text alignment for all cells in a table.
        
        Args:
            filename: Path to the Word document
            table_index: Index of the table (0-based)
            horizontal: Horizontal alignment ("left", "center", "right", "justify")
            vertical: Vertical alignment ("top", "center", "bottom")
        """
        filename = ensure_docx_extension(filename)
        
        # Ensure numeric parameters are the correct type
        try:
            table_index = int(table_index)
        except (ValueError, TypeError):
            return "Invalid parameter: table_index must be an integer"
        
        # Validate alignment parameters
        valid_horizontal = ["left", "center", "right", "justify"]
        valid_vertical = ["top", "center", "bottom"]
        
        if horizontal.lower() not in valid_horizontal:
            return f"Invalid horizontal alignment. Valid options: {', '.join(valid_horizontal)}"
        
        if vertical.lower() not in valid_vertical:
            return f"Invalid vertical alignment. Valid options: {', '.join(valid_vertical)}"
        
        if not os.path.exists(filename):
            return f"Document {filename} does not exist"
        
        # Check if file is writeable
        is_writeable, error_message = check_file_writeable(filename)
        if not is_writeable:
            return f"Cannot modify document: {error_message}. Consider creating a copy first."
        
        try:
            doc = Document(filename)
            
            # Validate table index
            if table_index < 0 or table_index >= len(doc.tables):
                return f"Invalid table index. Document has {len(doc.tables)} tables (0-{len(doc.tables)-1})."
            
            table = doc.tables[table_index]
            
            # Apply table alignment
            success = set_table_alignment(table, horizontal, vertical)
            
            if success:
                doc.save(filename)
                return f"Table alignment set successfully for table {table_index} to {horizontal}/{vertical} for all cells."
            else:
                return f"Failed to set table alignment."
        except Exception as e:
            return f"Failed to set table alignment: {str(e)}"
  • Low-level helper that applies the specified horizontal and vertical alignment to every cell in the table by calling set_cell_alignment on each.
    def set_table_alignment(table, horizontal="left", vertical="top"):
        """
        Set text alignment for all cells in a table.
        
        Args:
            table: The table to format
            horizontal: Horizontal alignment ("left", "center", "right", "justify")
            vertical: Vertical alignment ("top", "center", "bottom")
            
        Returns:
            True if successful, False otherwise
        """
        try:
            for row in table.rows:
                for cell in row.cells:
                    set_cell_alignment(cell, horizontal, vertical)
            return True
        except Exception as e:
            print(f"Error setting table alignment: {e}")
            return False

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