Skip to main content
Glama
taylorwilsdon

Google Workspace MCP Server - Control Gmail, Calendar, Docs, Sheets, Slides, Chat, Forms & Drive

get_spreadsheet_info

Retrieve detailed information about a Google Sheets spreadsheet, including its title and sheet list, by providing the user's email and spreadsheet ID.

Instructions

Gets information about a specific spreadsheet including its sheets.

Args:
    user_google_email (str): The user's Google email address. Required.
    spreadsheet_id (str): The ID of the spreadsheet to get info for. Required.

Returns:
    str: Formatted spreadsheet information including title and sheets list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serviceYes
spreadsheet_idYes
user_google_emailYes

Implementation Reference

  • The handler function for the 'get_spreadsheet_info' tool. It uses the Google Sheets API to fetch spreadsheet details, including title and sheets with their grid sizes, and returns a formatted string summary. Registered via @server.tool() decorator.
    @server.tool()
    @handle_http_errors("get_spreadsheet_info", is_read_only=True, service_type="sheets")
    @require_google_service("sheets", "sheets_read")
    async def get_spreadsheet_info(
        service,
        user_google_email: str,
        spreadsheet_id: str,
    ) -> str:
        """
        Gets information about a specific spreadsheet including its sheets.
    
        Args:
            user_google_email (str): The user's Google email address. Required.
            spreadsheet_id (str): The ID of the spreadsheet to get info for. Required.
    
        Returns:
            str: Formatted spreadsheet information including title and sheets list.
        """
        logger.info(f"[get_spreadsheet_info] Invoked. Email: '{user_google_email}', Spreadsheet ID: {spreadsheet_id}")
    
        spreadsheet = await asyncio.to_thread(
            service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute
        )
    
        title = spreadsheet.get("properties", {}).get("title", "Unknown")
        sheets = spreadsheet.get("sheets", [])
    
        sheets_info = []
        for sheet in sheets:
            sheet_props = sheet.get("properties", {})
            sheet_name = sheet_props.get("title", "Unknown")
            sheet_id = sheet_props.get("sheetId", "Unknown")
            grid_props = sheet_props.get("gridProperties", {})
            rows = grid_props.get("rowCount", "Unknown")
            cols = grid_props.get("columnCount", "Unknown")
    
            sheets_info.append(
                f"  - \"{sheet_name}\" (ID: {sheet_id}) | Size: {rows}x{cols}"
            )
    
        text_output = (
            f"Spreadsheet: \"{title}\" (ID: {spreadsheet_id})\n"
            f"Sheets ({len(sheets)}):\n"
            + "\n".join(sheets_info) if sheets_info else "  No sheets found"
        )
    
        logger.info(f"Successfully retrieved info for spreadsheet {spreadsheet_id} for {user_google_email}.")
        return text_output
  • Imports and exports the get_spreadsheet_info tool function via __init__.py, making it available when importing the gs sheets module.
    from .sheets_tools import (
        list_spreadsheets,
        get_spreadsheet_info,
        read_sheet_values,
        modify_sheet_values,
        create_spreadsheet,
        create_sheet,
    )
    
    __all__ = [
        "list_spreadsheets",
        "get_spreadsheet_info", 
        "read_sheet_values",
        "modify_sheet_values",
        "create_spreadsheet",
        "create_sheet",
    ]

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/taylorwilsdon/google_workspace_mcp'

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