google-tasks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GTASKS_READONLY | No | Set to '1' to request tasks.readonly instead of read/write | |
| GTASKS_TIMEZONE | No | Timezone used to decide what 'today' means. Defaults to the host's | |
| GTASKS_TOKEN_PATH | No | Path to the stored token file | |
| GTASKS_CREDENTIALS_PATH | No | Path to the Desktop-app OAuth client 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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_task_listsA | Show every Google Tasks list on the account, with a short alias and the real id. Either can be passed as list_id to the other tools. |
| list_tasksA | List tasks, optionally from one list and/or within a due-date range. Omit list_id to cover every list. Due dates are calendar dates (YYYY-MM-DD): the Google Tasks API cannot store or return a due time. |
| search_tasksA | Find tasks whose title or notes contain the query, across every list. Case-insensitive substring match — the Google Tasks API has no search endpoint, so this filters client-side. Use it to locate a task before acting on it. |
| get_taskA | Full detail for one task, including notes, links and subtask parent. |
| create_taskA | Add a task. Omit list_id for the default list. due is a calendar date (YYYY-MM-DD); resolve relative dates like "Thursday" yourself before calling. parent_id makes it a subtask; previous_id places it after a given sibling. |
| create_tasksA | Add several tasks at once. Use this instead of repeated create_task calls when the user lists multiple things. Each entry may target a different list. |
| update_taskA | Change a task's title, notes or due date. Only the fields you pass are touched — this uses patch, so omitting notes leaves existing notes intact. To remove a due date pass clear_due=true; omitting due leaves it unchanged. Cannot change parent or position — use move_task for that. |
| complete_tasksA | Mark one or more tasks done. This is the most common write by a wide margin — prefer it over update_task for finishing things. Safe to repeat. |
| uncomplete_tasksA | Mark one or more completed tasks as not done again. Safe to repeat. |
| move_taskA | Reorder a task, make it a subtask, or move it to another list. Note that repeating tasks cannot be moved between lists. |
| delete_taskA | Permanently delete a task. This cannot be undone. If the task looks like an instance of a repeating task, this refuses unless force=true, because deleting one instance through the API can delete the whole series. Prefer complete_tasks for finished work. |
| clear_completedB | Hide every completed task in a list. They remain retrievable with include="all" but disappear from the Google Tasks UI. |
| create_task_listC | Create a new task list. |
| delete_task_listA | Permanently delete a task list and every task in it. This cannot be undone. Requires confirm=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 14 tools
Each tool targets a distinct action and resource: list vs. get vs. search vs. create vs. update vs. complete vs. move vs. delete are clearly separated. The batch create_tasks and completion helpers are explicitly distinguished from their single counterparts, leaving no ambiguity.
All tools follow a consistent verb_noun snake_case pattern (list_task_lists, create_task, update_task, etc.). The plural variants like create_tasks and complete_tasks are predictable, and clear_completed is the only slight deviation but still uses a verb+noun form.
14 tools is well within the ideal 3-15 range for a domain-specific server. Each tool covers a necessary operation on tasks or task lists without unnecessary bloat or redundancy.
The surface covers the core lifecycle of tasks and lists thoroughly: create, read, update, delete, complete, move, and search. Minor gaps exist, such as no way to rename a task list or explicitly filter tasks by completion status via list_tasks, but these are workable and do not severely impact typical usage.