sheets_get_values
Retrieve data from a specific range in Google Sheets using A1 notation. Specify the spreadsheet ID and range to fetch values for streamlined data access.
Instructions
Get values from a Google Sheet range
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 notation range | |
| spreadsheet_id | Yes | ID of the spreadsheet |
Input Schema (JSON Schema)
{
"properties": {
"range": {
"description": "A1 notation range",
"type": "string"
},
"spreadsheet_id": {
"description": "ID of the spreadsheet",
"type": "string"
}
},
"required": [
"spreadsheet_id",
"range"
],
"type": "object"
}
Implementation Reference
- src/mcp_google_suite/server.py:371-386 (handler)MCP tool handler for sheets_get_values. Validates input arguments and calls SheetsService.get_values to retrieve values from a Google Sheet 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
- Tool schema definition for sheets_get_values, including input schema with required properties 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"], }, ),
- Core implementation in SheetsService that calls the Google Sheets API to get values from the specified spreadsheet and 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)}