MCP server for Google Apps Script development, enabling interaction with Google Spreadsheets
This MCP server exposes Google Sheets operations via three tools. While tool names are action-oriented (get_*, set_*) and input schemas are present with Zod validation, the definitions have critical gaps in completeness and clarity. All three tools use the `__gas_fakes` CLI wrapper to invoke Google Apps Script, which is a novel integration pattern but adds complexity. Tool descriptions are present but generic (10-60 chars), and output schemas are entirely undocumented, the agent cannot see what these tools return. Parameter descriptions exist for inputs but lack format guidance, ranges, or constraints. No error handling patterns are visible; the `__gas_fakes` wrapper catches exceptions and returns text output, but the agent receives no guidance on recovery or error classification. The tools follow basic verb_noun naming but lack the granularity to support agent-driven workflows (e.g., no batch operations, no pagination). Security review shows no secrets are exposed as parameters (credentials are handled by the `gas-fakes` CLI), which is positive.
Use this to get the sheet names of all sheets in a Google Spreadsheet.
Use this to get the values from a specific sheet in a Google Spreadsheet.
Use this to put the values in a specific sheet in a Google Spreadsheet.
Output schemas completely undocumented. Tools return text via console.log() piped through __gas_fakes, but MCP does not declare what fields or structure the agent should expect. The agent cannot plan downstream calls or extract structured data.
Descriptions are too short and lack context for agent selection. 'Use this to get the sheet names...' (44 chars) does not explain WHEN to call this vs other tools, what it returns, or prerequisites. Baseline is 194 chars average; these are 30-50% of that.
Parameters lack format guidance and constraints. 'range' param uses A1Notation but no regex pattern or example is provided to guide the agent. 'values' accepts nested arrays but no guidance on maximum size, depth, or cell type constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
No error handling guidance. When __gas_fakes returns an error (e.g., sheet not found, invalid range), the response is isError=true with raw text. Agent receives no recovery hints, error classification (retryable vs. user-fixable), or suggestions for corrective action.
set_values_to_sheet is a write operation but lacks confirmation or dry-run capability. Agents make mistakes, this tool can overwrite or append data irreversibly without a way to validate the operation first.
No batch operations. If an agent needs to read values from 10 sheets, it must call get_values_from_sheet 10 times sequentially. A batch_get_values or similar would reduce latency and token waste.