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
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| spreadsheet_id | Yes | ||
| user_google_email | Yes |
Implementation Reference
- gsheets/sheets_tools.py:73-120 (handler)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
- gsheets/__init__.py:7-23 (registration)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", ]