Skip to main content
Glama
josedu90

MCP Google Workspace Server

sheets_get_values

Extract specific data from a Google Sheets range using the spreadsheet ID and A1 notation. Facilitates integration with Google Workspace via natural language commands.

Instructions

Get values from a Google Sheet range

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 notation range
spreadsheet_idYesID of the spreadsheet

Implementation Reference

  • The MCP tool handler for sheets_get_values. Validates input arguments and delegates to SheetsService.get_values to fetch values from the specified spreadsheet range.
    async def _handle_sheets_get_values(
        self, context: GoogleWorkspaceContext, arguments: dict
    ) -> Dict[str, Any]:
        """Handle sheets get values requests."""
        spreadsheet_id = arguments.get("spreadsheet_id")
        range_name = arguments.get("range")
    
        if not spreadsheet_id or not range_name:
            raise ValueError("Both spreadsheet_id and range are required")
    
        logger.debug(f"Getting sheet values - ID: {spreadsheet_id}, Range: {range_name}")
        result = await context.sheets.get_values(
            spreadsheet_id=spreadsheet_id, range_name=range_name
        )
        logger.debug(f"Sheet values retrieved - Row count: {len(result.get('values', []))}")
        return result
  • Input schema definition for the sheets_get_values tool, specifying required parameters: spreadsheet_id and range.
    types.Tool(
        name="sheets_get_values",
        description="Get values from a Google Sheet range",
        inputSchema={
            "type": "object",
            "properties": {
                "spreadsheet_id": {
                    "type": "string",
                    "description": "ID of the spreadsheet",
                },
                "range": {"type": "string", "description": "A1 notation range"},
            },
            "required": ["spreadsheet_id", "range"],
        },
    ),
  • Dynamic registration of tool handlers, including sheets_get_values, by looking up _handle_sheets_get_values and adding to registry.
    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 in SheetsService that interacts with Google Sheets API to retrieve values from the specified range.
    def get_values(self, spreadsheet_id: str, range_name: str) -> Dict[str, Any]:
        """Get values from a specific range in a spreadsheet."""
        try:
            result = (
                self.service.spreadsheets()
                .values()
                .get(spreadsheetId=spreadsheet_id, range=range_name)
                .execute()
            )
    
            return {"success": True, "values": result.get("values", [])}
        except HttpError as error:
            return {"success": False, **self.handle_error(error)}

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/josedu90/mcp-suiteg'

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