Skip to main content
Glama
adexltd

MCP Google Suite

by adexltd

sheets_create

Create a new Google Sheet with a specified title and optional sheet names. This tool generates spreadsheets for data organization and analysis within Google Workspace.

Instructions

Create a new Google Sheet

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the spreadsheet
sheetsNoSheet names

Implementation Reference

  • The MCP tool handler for 'sheets_create' that extracts arguments, validates, and delegates to SheetsService.create_spreadsheet.
    async def _handle_sheets_create(
        self, context: GoogleWorkspaceContext, arguments: dict
    ) -> Dict[str, Any]:
        """Handle sheets create requests."""
        title = arguments.get("title")
        sheets = arguments.get("sheets", [])
    
        if not title:
            raise ValueError("Spreadsheet title is required")
    
        logger.debug(f"Creating spreadsheet - Title: {title}, Sheets: {sheets}")
        result = await context.sheets.create_spreadsheet(title=title, sheets=sheets)
        logger.debug(f"Spreadsheet created - ID: {result.get('spreadsheetId')}")
        return result
  • Defines the input schema, description, and name for the 'sheets_create' tool.
    types.Tool(
        name="sheets_create",
        description="Create a new Google Sheet",
        inputSchema={
            "type": "object",
            "properties": {
                "title": {"type": "string", "description": "Title of the spreadsheet"},
                "sheets": {
                    "type": "array",
                    "items": {"type": "string"},
                    "description": "Sheet names",
                },
            },
            "required": ["title"],
        },
    ),
  • Dynamically registers the 'sheets_create' handler in the tool registry based on the tool list.
    for tool in self._get_tools_list():
        handler_name = f"_handle_{tool.name}"
        if hasattr(self, handler_name):
            handler = getattr(self, handler_name)
            self._tool_registry[tool.name] = handler
            logger.debug(f"Registered handler for {tool.name}")
  • Core implementation that creates the Google Spreadsheet using the Sheets API v4.
    def create_spreadsheet(self, title: str, sheets: Optional[List[str]] = None) -> Dict[str, Any]:
        """Create a new Google Spreadsheet with optional sheets."""
        try:
            spreadsheet_body = {"properties": {"title": title}}
    
            if sheets:
                spreadsheet_body["sheets"] = [
                    {"properties": {"title": sheet_name}} for sheet_name in sheets
                ]
    
            spreadsheet = self.service.spreadsheets().create(body=spreadsheet_body).execute()
    
            return {"success": True, "spreadsheet": spreadsheet}
        except HttpError as error:
            return {"success": False, **self.handle_error(error)}

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/adexltd/mcp-google-suite'

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