MCP Toolbox for Google Workspace is an open source MCP server for Google Workspace services such as Drive, Calendar, Gmail, and Tasks.
The server presents 10 tools with well-structured schemas and generally clear descriptions. Naming follows verb_noun convention consistently (get_profile, list_messages, create_calendar, etc.). All tools have descriptions in the 150-400 character range, meeting the baseline. Input schemas are fully visible and use proper JSON Schema with types, descriptions, and constraints (enums, min/max). However, there are gaps in error guidance, output schema documentation, and composition patterns. The tools cover Google Workspace services (Gmail, Calendar, Drive, Tasks) with solid parameter validation but lack explicit recovery paths for common failures. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) are visible, and error handling is generic exception wrapping rather than category-driven. The code shows defensive input validation (email format checks, bounds checking) but responses lack next-step guidance when operations fail.
Tool to create a new secondary calendar in the user's Google Calendar. This tool creates a new secondary calendar with specified title, time zone, and description. It uses the Google Calendar API to create a new secondary calendar. If no time zone is provided, it defaults to 'UTC'.
Tool to create a new file in the user's drive with the specified metadata. This tool allows the user to create various types of files in their drive (e.g. Google Docs, plain text, PDFs, folders etc). It supports creating the file in a specific folder if a folder ID is provided.
Tool to create a new tasklist in the user's Google Tasks account. This tool interacts with the Google Tasks API to create a new tasklist with the specified title. After creating the tasklist, it returns the etag, title, last modification time, and a URL pointing to this task list.
Tool to retrieve a specific Gmail message from the user's gmail account. This tool fetches the details of a Gmail message using the Gmail API. The message is identified by its unique message ID. The format of the returned message is defined per the message_format.
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). Read-only tools like get_profile, list_messages, get_message, list_calendars, list_files, list_tasklists lack readOnlyHint. Write tools like create_calendar, create_file, create_tasklist lack destructiveHint to signal they have side effects.
Output schemas not formally documented. While docstrings describe return fields in prose (e.g., 'etag, title, last modification time'), no JSON Schema for response structure is provided. LLMs cannot reliably extract and chain results without formal output schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Tool to retrieve the Gmail profile of a user. This tool fetches the profile details for a specified user using the Gmail API. If the special identifier 'me' is used, the profile of the authenticated user is retrieved.
Tool to fetch a single tasklist from the user's Google Tasks account. This tool interacts with the Google Tasks API to retrieve a tasklist by its unique identifier (id). It returns the etag, title, last modification time, and a URL pointing to this task list.
Tool to list the calendars in an authenticated user's Google Calendar based on access level, visibility, and deletion status. This tool handles authentication using OAuth2 and uses the Google Calendar API to retrieve the list of calendars available with the user. It supports optional filters such as minimum access level, inclusion of deleted calendars, and visibility of hidden calendars.
Tool to search a user's Google Drive for specified number of files. This tool returns up to the specified number of files matching a query (if provided). The results can be sorted based on one or more sort keys and the search can also be limited to the specific Drive spaces.
Tool to list id and threadId of email messages from a user's gmail account. This tool fetches a list of message metadata (id and threadId) for a given user using the Gmail API based on specified filters such as the query (i.e. the search term), label IDs, and the maximum number of results to fetch.
Tool to fetch a list of tasklists from the user's Google Tasks account. This tool interacts with the Tasks API to retrieve the available tasklists, optionally limited by a maximum number of results. It returns the etag, title, last modification time, and a URL pointing to this task list.
Error handling lacks recovery guidance. Exception wrapping (@handle_gmail_exceptions) catches errors but responses do not categorize them as retryable/user-fixable/fatal or suggest next steps. E.g., 'User not found. Try search_users()' would be better than a generic error.
Write tools (create_calendar, create_file, create_tasklist) lack confirmation/dry-run step. Agents can accidentally create duplicate calendars or files without a check step.
Parameter documentation lacks format/constraint hints for LLM clarity. E.g., 'order_by' in list_files is an array of strings but valid keys are not enumerated or described. 'MIME types' in create_file mentions 'various types' without examples or constraints.
Pagination not implemented or documented. list_messages, list_calendars, list_files, list_tasklists accept max_results but lack offset/cursor/next_token for iterating beyond the first page. Large result sets will be truncated without guidance.
Parameter validation incomplete. create_tasklist has maxLength 1024 for title but no minLength constraint; could accept whitespace-only titles. get_tasklist.tasklist_id has minLength 1 but no pattern validation.