Skip to main content
Glama
taylorwilsdon

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

list_spreadsheets

Retrieve and display a list of Google Drive spreadsheets accessible to a specified user, including file names, IDs, and modification times. Configure results limit for precise output.

Instructions

Lists spreadsheets from Google Drive that the user has access to. Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of spreadsheets to return. Defaults to 25. Returns: str: A formatted list of spreadsheet files (name, ID, modified time).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
max_resultsNo
serviceYes
user_google_emailYes

Implementation Reference

  • The handler function for the 'list_spreadsheets' tool. It lists the user's spreadsheets from Google Drive using the Drive API, formats them with name, ID, modified time, and link, and returns a formatted string.
    @server.tool() @handle_http_errors("list_spreadsheets", is_read_only=True, service_type="sheets") @require_google_service("drive", "drive_read") async def list_spreadsheets( service, user_google_email: str, max_results: int = 25, ) -> str: """ Lists spreadsheets from Google Drive that the user has access to. Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of spreadsheets to return. Defaults to 25. Returns: str: A formatted list of spreadsheet files (name, ID, modified time). """ logger.info(f"[list_spreadsheets] Invoked. Email: '{user_google_email}'") files_response = await asyncio.to_thread( service.files() .list( q="mimeType='application/vnd.google-apps.spreadsheet'", pageSize=max_results, fields="files(id,name,modifiedTime,webViewLink)", orderBy="modifiedTime desc", supportsAllDrives=True, includeItemsFromAllDrives=True, ) .execute ) files = files_response.get("files", []) if not files: return f"No spreadsheets found for {user_google_email}." spreadsheets_list = [ f"- \"{file['name']}\" (ID: {file['id']}) | Modified: {file.get('modifiedTime', 'Unknown')} | Link: {file.get('webViewLink', 'No link')}" for file in files ] text_output = ( f"Successfully listed {len(files)} spreadsheets for {user_google_email}:\n" + "\n".join(spreadsheets_list) ) logger.info(f"Successfully listed {len(files)} spreadsheets for {user_google_email}.") return text_output
  • The import and __all__ registration of the list_spreadsheets tool in the gs sheets module, making it available when the package is imported.
    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