Google Tasks MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GTASKS_TIMEZONE | No | Default IANA timezone used for task digests. | UTC |
| GTASKS_READ_ONLY | No | When true, hide all write tools and reject writes in the API client. | false |
| GTASKS_TOKEN_PATH | No | Path to the private stored user authorization token file. Defaults to the checkout's token.json. | token.json |
| GTASKS_CREDENTIALS_PATH | No | Path to the Desktop OAuth credentials JSON file. Defaults to the checkout's credentials.json. | credentials.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_infoA | Show local configuration and stored permission status without exposing secrets or contacting Google. |
| list_task_listsA | List one page of task lists with exact IDs. Names need not be unique; continue using next_page_token. |
| get_task_listB | Read one task list by its exact Google ID. |
| list_tasksA | Read one page of tasks from an exact list ID, excluding completed tasks by default. Date bounds are inclusive YYYY-MM-DD calendar dates. A filtered page can be empty and still have next_page_token. include_completed also requests hidden tasks completed in Google's own apps. Notes are omitted by default. Default listings omit tasks assigned from Docs/Chat. |
| get_taskA | Read one task by exact list ID and task ID, including its full notes. |
| search_tasksB | Search titles and notes with case-insensitive substring matching. Omit task_list_id to scan multiple lists. Follow pages up to max_tasks and max_lists; truncated=true means results are incomplete. No fuzzy matching or ambiguous name-based mutations are performed. |
| get_task_digestA | Group open tasks into overdue, due today, upcoming, and undated. Supply an IANA timezone such as America/Los_Angeles; the configured default is UTC unless GTASKS_TIMEZONE is set. Upcoming includes tomorrow through today plus days, inclusive. Return at most limit_per_group tasks per group with counts for all scanned matches. truncated=true means some results are omitted; scan_truncated tells whether scanning itself was incomplete. |
| create_taskA | Create a task, optionally as a subtask or after a sibling. due is a calendar date, never a time. Requires Google write permission. Creation is not idempotent: check the list before repeating a call whose outcome is unknown. |
| update_taskA | Patch only supplied fields, preserving all other task data. Omit notes to preserve them or use an empty string to clear them. Omit due to preserve it or set clear_due=true to remove it. Do not pass both. Use complete_task/reopen_task for status and move_task for hierarchy. |
| complete_taskA | Mark a task complete without overwriting its title, notes, or due date. |
| reopen_taskA | Reopen a completed task and clear its completion timestamp. |
| move_taskA | Move using Google's native API, optionally to another list. Never copy then delete. Omitting parent_id moves to the top level; omitting previous_id places the task first among its siblings. Repeating tasks cannot move between lists. Use IDs returned by this call for subsequent operations. |
| delete_taskA | Permanently delete a task after user confirmation. Requires its exact current title and confirm=true. Recurrence metadata is not exposed by Google. Do not promise that this deletes only one instance of a repeating task; prefer completion when appropriate. |
| create_task_listB | Create a task list. This is not idempotent; duplicate names are permitted by Google. |
| rename_task_listA | Rename a task list by exact ID, preserving its tasks. |
| delete_task_listA | Permanently delete a task list. Requires its exact current title and confirm=true. Lists with tasks are refused unless allow_nonempty=true after the user approves deletion of their contents. The task check includes hidden and completed tasks. |
| clear_completed_tasksA | Hide completed tasks after user confirmation. This does not permanently delete them. They remain retrievable by list_tasks with include_completed=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool targets a distinct resource and action: task-list operations, individual task operations, search, digest, and status changes are clearly separated. Read-oriented tools like list_tasks, search_tasks, and get_task_digest overlap only at a high level and are differentiated by scope and output.
All tools use a predictable snake_case verb_noun convention, including create_task_list, get_task, update_task, complete_task, move_task, and delete_task. Minor multi-word nouns like task_list and server_info remain consistent with the pattern.
The 17-tool surface is slightly above the typical 3-15 range but remains reasonable for Google Tasks, which has both task lists and tasks plus status, hierarchy, search, and digest operations. Most tools earn their place, though the server is on the heavier side.
The tool set covers task-list creation, listing, retrieval, renaming, and deletion, plus task creation, retrieval, listing, search, update, completion, reopening, moving, deletion, and clearing completed items. No obvious lifecycle gaps remain for the stated Google Tasks domain.