This server provides 11 Google Drive and Sheets integration tools with complete input schemas and reasonable descriptions. Most tools follow verb_noun naming (gdrive_search, gsheets_read, etc.). However, descriptions are sometimes generic or lack actionable guidance for LLM selection. Parameters are well-typed with enums where appropriate (gdrive_add_permission uses 'role' and 'type' enums), but output schemas are not documented in the source. Error handling guidance is minimal, tools return unstructured errors without recovery suggestions. The server lacks tool annotations (readOnlyHint, destructiveHint, idempotentHint), which would help agents understand side effects. Security is reasonable (credentials injected server-side, not in params), but no permission gates or audit logging visible.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Agents cannot determine which tools are safe to retry or have side effects without explicit marking.
Error handling does not provide recovery guidance. Tools return raw errors without suggesting next steps (e.g., 'File not found. Try gdrive_search to find the ID first.').
Add tool annotations to all tool definitions. Mark read-only tools with 'readOnlyHint: true', destructive tools (delete, move, share) with 'destructiveHint: true', and idempotent tools with 'idempotentHint: true'. Example: { name: 'gdrive_delete_file', inputSchema: {...}, description: '...', readOnlyHint: false, destructiveHint: true, idempotentHint: false }
Document output schema for every tool. Add a 'result' field to the tool definition that specifies the return type and field names. Example for gdrive_search: 'Returns { files: Array<{id: string, name: string, mimeType: string}>, nextPageToken?: string }'
Enhance error handling with recovery suggestions. When a file is not found, suggest: 'File not found. Try calling gdrive_search with a name or owner filter to find it first.' When permission is denied, suggest checking shares or requesting access.
Clarify tool selection with better descriptions. For gsheets_read, explain: 'Use this to read existing data from a sheet. Use gsheets_update_cell to modify a single cell or gsheets_append_row to add new rows.' Add 'WHEN to use' sections.
Expand pagination descriptions. For gdrive_search and gdrive_search_advanced, add: 'Use pageSize to limit results per call (1-1000, default 100). If more results exist, use pageToken from the previous response to fetch the next page.'
Add optional dry-run capability to gdrive_delete_file. Consider adding a 'dryRun?: boolean' parameter or a separate 'gdrive_delete_file_confirm' step that requires explicit confirmation before irreversible deletion.
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Dynamic Client Registration (deprecated) - use Client ID Metadata Documents (CIMD)
Score history
Overall score trend
↑ 46 points across a rubric change (v1 → v2)
62/100
Scored
Grade
Overall
Spec posture
Rubric
2026-09-22
C
62
<=2025-11-25
v2
2026-03-09
F
16
-
v1
Advanced search in Google Drive with filters for MIME type, owner, dates, and shared drives
gdrive_upload_filewriteauthsource verified78/100
Upload a file to Google Drive (max 5MB, use simple upload)
Some descriptions are too generic and don't explain WHEN to use a tool vs similar ones. E.g., gsheets_read vs gsheets_append_row are both Sheets operations but descriptions don't clarify the distinction for LLM selection.
No pagination guidance in descriptions for search tools. LLMs may not realize pageToken and pageSize control result limits, leading to missed opportunities to paginate large result sets.
gdrive_delete_file lacks explicit confirmation or dry-run pattern. A destructive operation should support a safeguard step to prevent accidental data loss.
Implement and document permission checks and audit logging. Before executing sensitive tools, verify the authenticated user/agent has necessary scopes (e.g., 'write:drive' for write operations). Log all tool invocations with user ID, timestamp, tool name, and parameters.
Add dependency hints to tool descriptions. E.g., for gdrive_move_file: 'Note: You need the destination folder ID. If you only have a folder name, call gdrive_search with a MIME type filter for folders first.'
Use natural identifiers where possible. For gdrive_add_permission, consider accepting 'email' as a parameter (already there, good). For future tools, avoid requiring opaque IDs alone, accept names or emails and resolve them server-side.
Document parameter constraints in descriptions more explicitly. E.g., gdrive_upload_file says 'max 5MB' in description but doesn't specify what format content should be (text, base64). Clarify: 'content is base64-encoded binary or plain UTF-8 text. Max 5MB total file size.'