MCP server for interacting with Google Sheets and Google Drive, enabling spreadsheet creation, manipulation, and data management
Server has 9 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (good), but many are vague or incomplete. Parameter descriptions are minimal (1-3 words). No output schemas documented. Error handling is absent, tools return raw Result types with no recovery guidance. Tool names follow verb_noun convention (positive), but descriptions lack WHEN/WHY context. No input validation, no pagination support, no idempotent hints. Schemas present but sparse, most parameters lack constraints (enums, ranges, formats). This is a typical community server with functional definitions but poor LLM optimization.
Attempts to add blank columns to a sheet inside a spreadsheet.
Attempts to add blank rows to a sheet inside a spreadsheet.
Attempts to copy a sheet from one spreadsheet to another.
Attempts to create a spreadsheet using a provided file name within the folder that you have access to. Note that the folder ID is only found internally and is not provided by the user.
Attempts to fetch all values from a given spreadsheet.
Attempts to list all the spreadsheets that the user currently owns.
No output schemas documented. Tools return raw Rust types (File, Spreadsheet, SheetProperties, Vec<File>) with no description of fields the LLM should expect. LLMs cannot plan downstream calls or extract required IDs without guessing.
Descriptions lack WHEN/WHY context and are too generic. E.g., 'Attempts to list all the spreadsheets that the user currently owns' (get_info_for_sheet) does not explain when to call it vs list_sheets, or what data it returns. Descriptions should be 50-200 chars with clear intent.
Parameter descriptions are minimal (1-3 words). E.g., 'The ID of the folder to use' lacks format, constraints, or examples. No enums for constrained values, no ranges for numeric params (rows_to_add, columns_to_add have no min/max). LLMs cannot validate inputs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Attempts to find and list all the spreadsheets that can be found. Note that the folder ID is only found internally and is not provided by the user.
Attempts to update cells within a given range. For the range you only have to provide the range since you already provide the sheet ID separately.
Attempts to update cells within multiple given ranges. For the range you only have to provide the range since you already provide the sheet ID separately. Please note that the ranges and the values should be lined up together such that when zipped together as an iterator it should be perfectly in step.
No error handling or recovery guidance. Tools return Box<dyn Error> with no categorization (retryable vs fatal) or actionable messages. E.g., if auth fails, the LLM gets a generic error with no hint to check SVC_ACC_PATH env var.
Destructive tools (create_spreadsheet, copy_sheet, add_blank_spreadsheet_rows, update_cells, update_cells_multiple) lack confirmation or dry-run support. No idempotent hints. Agents can accidentally duplicate sheets or overwrite data without safeguards.