Skip to main content
Glama

Excel MCP Server

import uuid import logging from openpyxl import load_workbook from openpyxl.worksheet.table import Table, TableStyleInfo from .exceptions import DataError logger = logging.getLogger(__name__) def create_excel_table( filepath: str, sheet_name: str, data_range: str, table_name: str | None = None, table_style: str = "TableStyleMedium9" ) -> dict: """Creates a native Excel table for the given data range. Args: filepath: Path to the Excel file. sheet_name: Name of the worksheet. data_range: The cell range for the table (e.g., "A1:D5"). table_name: A unique name for the table. If not provided, a unique name is generated. table_style: The visual style to apply to the table. Returns: A dictionary with a success message and table details. """ try: wb = load_workbook(filepath) if sheet_name not in wb.sheetnames: raise DataError(f"Sheet '{sheet_name}' not found.") ws = wb[sheet_name] # If no table name is provided, generate a unique one if not table_name: table_name = f"Table_{uuid.uuid4().hex[:8]}" # Check if table name already exists if table_name in ws.parent.defined_names: raise DataError(f"Table name '{table_name}' already exists.") # Create the table table = Table(displayName=table_name, ref=data_range) # Apply style style = TableStyleInfo( name=table_style, showFirstColumn=False, showLastColumn=False, showRowStripes=True, showColumnStripes=False ) table.tableStyleInfo = style ws.add_table(table) wb.save(filepath) return { "message": f"Successfully created table '{table_name}' in sheet '{sheet_name}'.", "table_name": table_name, "range": data_range } except Exception as e: logger.error(f"Failed to create table: {e}") raise DataError(str(e))

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/haris-musa/excel-mcp-server'

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