Open-source MCP server for Google AppSheet — CRUD, schema discovery, and automation tools
AppSheet MCP has solid naming conventions (verb_noun pattern) and complete input schemas with type definitions. However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions are minimal (10-30 chars), missing format constraints, dependencies, and recovery hints. Output schemas are undocumented, LLMs cannot infer what fields to expect from responses. Error handling is absent; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Security is well-handled (no secrets in params, server-side injection). Tool composition is good (single responsibility, chainable IDs), but descriptions don't explain WHEN to use each tool or dependencies between them.
Add one or more rows to an AppSheet table.
Delete one or more rows from an AppSheet table by key column values.
Discover the column structure of an AppSheet table by fetching a sample row. Returns column names and sample values.
Query/search rows from an AppSheet table. Returns all rows or filtered rows using an AppSheet expression.
Get configuration summary for an AppSheet app (ID, region, tables). Does not expose the API key.
List all configured AppSheet apps with their regions and table counts.
Output schemas completely undocumented. LLMs cannot infer response structure, field types, or chaining IDs. Responses are raw AppSheet API objects without field documentation.
Parameter descriptions are minimal (10-30 chars) and lack format constraints, enums, or dependencies. E.g., 'selector' param says 'Optional AppSheet filter expression' but doesn't explain syntax, valid operators, or examples of valid expressions.
No error handling guidance. Tools lack recovery hints, retryability classification, or actionable error messages. E.g., if a table name is invalid, the LLM receives a raw API error with no suggestion to call appsheet_list_tables first.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
List table names configured for an AppSheet app.
Execute a custom AppSheet action on a table. Use for actions defined in the AppSheet editor (e.g., send email, change status, grouped actions).
Trigger an AppSheet automation/bot/workflow by executing its associated action. The action must be configured as a bot trigger in AppSheet.
Update one or more existing rows in an AppSheet table. Each row object must include the key column.
Tool descriptions lack WHEN-to-use guidance and inter-tool dependencies. E.g., appsheet_describe_table should say 'Call this first to discover column names before using appsheet_add_rows or appsheet_update_rows.' This prevents wasted calls.
Destructive operations (appsheet_delete_rows) lack confirmation or dry-run support. No pattern to prevent accidental data loss when agents make mistakes.