Skip to main content
Glama
justerlex

google-tasks-mcp

by justerlex

google-tasks-mcp

An MCP server for Google Tasks with the full API surface: task-list CRUD, task CRUD, move/reorder, and a diff_tasks change-harvester that tells you what happened since your agent last looked.

Built for agents that maintain a task mirror (project lists your assistant keeps in sync, completions you tick on your phone that the agent picks up later), but it works fine as a general Tasks connector.

Why another one

The existing options each miss something this use case needs:

  • zcaceres/gtasks-mcp, the most-cited one, has no task-list operations at all: you can't create, rename, or delete lists, which rules out per-project lists entirely. The gtasks-mcp npm name is also a tombstone (the package was unpublished).

  • arpitbatra123/mcp-googletasks covers the full surface but isn't on npm, so it's clone-and-build, and auth means pasting an OAuth code back through a tool call.

  • google_workspace_mcp does everything, plus all of Workspace, plus an OAuth 2.1 setup and a native-build gotcha on Windows. Overkill if you only want Tasks.

None of them deal with the API's nastiest quirk: tasks completed in the Google Tasks apps become hidden, so a naive query silently misses exactly the completions a sync agent needs to see. diff_tasks exists because of that quirk.

Related MCP server: google-tasks-mcp

Install

# 1. One-time auth (see Google Cloud setup below first)
npx google-tasks-mcp auth

# 2. Register with your MCP client, e.g. Claude Code:
claude mcp add -s user gtasks -- npx google-tasks-mcp

Any MCP-capable client works; the server speaks stdio.

Google Cloud setup (one-time, ~15 minutes)

The Tasks API requires your own OAuth client. No verification, no billing.

  1. console.cloud.google.com → create a project.

  2. APIs & Services → Library → enable Google Tasks API.

  3. Google Auth Platform (consent screen): User type External (Internal is Workspace-only). App name + your email. Scope: https://www.googleapis.com/auth/tasks (classified sensitive, not restricted: no security audit needed).

  4. Credentials → Create credentials → OAuth client ID → Desktop app → download the JSON.

  5. Save it as ~/.config/google-tasks-mcp/client_secret.json (or point GTASKS_MCP_CREDENTIALS at it).

  6. The trap everyone hits: while the consent screen's publishing status is "Testing", refresh tokens expire every 7 days and you will re-auth weekly. Set publishing status to In production (skip verification; you'll click through a one-time "Google hasn't verified this app" interstitial: Advanced → Continue). Tokens then persist indefinitely.

  7. Run npx google-tasks-mcp auth: a browser opens, you approve, the refresh token lands in ~/.config/google-tasks-mcp/token.json. Done forever (revoking access or 6 months of disuse are the only expiries).

Environment variables

Variable

Default

Purpose

GTASKS_MCP_DIR

~/.config/google-tasks-mcp

Config directory

GTASKS_MCP_CREDENTIALS

<dir>/client_secret.json

OAuth client file

GTASKS_MCP_TOKEN

<dir>/token.json

Cached refresh token

Tools

Task lists: list_tasklists, get_tasklist, create_tasklist, update_tasklist, delete_tasklist

Tasks: list_tasks (filters: completed/hidden/deleted, updatedMin, due bounds), get_task, create_task, update_task, complete_task, delete_task, move_task (reorder, re-parent, or move across lists)

Sync: diff_tasks(since, [tasklist]) returns everything that changed after an RFC3339 timestamp, grouped per list into completed / active / deleted. It sweeps every list unless you name one.

Design notes (API sharp edges, handled)

  • Due dates are date-only. The API silently discards the time portion, and naive RFC3339 values can land a day off. Pass YYYY-MM-DD; the server normalizes to UTC midnight.

  • App-completed tasks go hidden. Ticking a task in the Google Tasks app sets hidden: true; a plain list call never sees it again. diff_tasks always queries with showCompleted + showHidden + showDeleted, so nothing is missed.

  • No sync tokens. Unlike the Calendar API, Tasks has no incremental sync token. diff_tasks uses updatedMin; keep a snapshot on your side and pass its timestamp.

  • position is read-only. Reordering only works through move_task (parent + previous). This includes subtask nesting.

  • There is deliberately no clear_completed tool. The API's tasks.clear wipes completed tasks from a list, which permanently destroys the evidence diff_tasks depends on. An LLM should not be able to call that casually. If you truly need it, the Tasks apps expose it in their UI.

Development

git clone https://github.com/justerlex/google-tasks-mcp
cd google-tasks-mcp
npm install
npm run build
node dist/index.js auth   # one-time
node dist/index.js        # stdio server

One TypeScript file, ~450 lines: src/index.ts.

License

MIT

Available Tools

13 tools
complete_taskA

Mark a task completed (shorthand for update_task with status=completed).

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask id
tasklistYesTask list id

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool performs a mutation (completing a task) by referencing update_task, but does not detail side effects or authorization needs. Given no annotations, it provides reasonable transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundant words, efficiently conveying the tool's purpose and relation to update_task.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with only two required parameters and no output schema, the description fully covers the behavior and usage context via its reference to update_task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description does not add meaning beyond the schema's minimal 'Task id' and 'Task list id' descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool marks a task completed and identifies it as a shorthand for update_task with status=completed, distinguishing it from the generic update_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames the tool as a shorthand for update_task with status=completed, guiding the agent to use complete_task for completion and update_task for other status changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskA

Create a task. Due dates are DATE-ONLY in Google Tasks (any time portion is discarded); pass YYYY-MM-DD and it is normalized safely.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoDue date, YYYY-MM-DD (or full RFC3339)
notesNoFree-text notes on the task
titleYesTask title
parentNoParent task id, to create as a subtask
previousNoSibling task id to insert after
tasklistYesTask list id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral aspects. It discloses the date-only normalization behavior, which is useful. However, it lacks other important traits like authentication needs, whether the operation is idempotent, or what happens on error (e.g., invalid tasklist).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences that first state the purpose and then add a crucial behavioral nuance. Every word earns its place, and the critical date handling is front-loaded after the purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 6 parameters, the description should mention return values (likely the created task) and potential errors. It omits these entirely. Given the complexity and sibling tools, the description is incomplete for an agent to fully understand the tool's usage and outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description's value is additive. It clarifies that 'due' should be date-only and provides standard format YYYY-MM-DD. This goes beyond the schema's description by explaining how the parameter is processed, which helps the agent choose correct values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a task.' with a specific verb and resource. It distinguishes itself from sibling tools like list_tasks or delete_task through the name, but doesn't explicitly differentiate in the description. The added detail about date-only handling improves clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides specific guidance on due date format ('pass YYYY-MM-DD') and warns that time portions are discarded. However, it doesn't explain when to use this tool vs. alternatives (e.g., update_task for modifying tasks) or mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_tasklistB

Create a new task list. Emoji in titles render fine in the Google Tasks apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new task list

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior. It notes that emojis render fine, which is a helpful behavioral detail, but fails to mention side effects, permissions, limits, or return value. The word 'Create' implies mutation, but deeper transparency is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous words. The first sentence states the primary action concisely; the second gives a specific, useful tip. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite being a simple creation tool with one parameter, the description does not explain what a task list is, what the return value is, or how it relates to other tools like 'create_task.' With no output schema, the agent lacks information about the result, making it incomplete for effective planning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing a baseline of 3. The description adds value by noting that emojis are supported in titles, which is not evident from the schema's generic 'Title of the new task list' description. This extra nuance helps the agent choose appropriate title values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new task list,' establishing a specific verb and resource. The sibling tools (list, get, update, delete) imply different actions, so the purpose is distinct. However, it does not explicitly differentiate from 'create_task' or mention that task lists are containers for tasks, which could be improved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'create_task' or 'update_tasklist.' The description lacks context on prerequisites, such as whether a user or workspace must be specified, or when creating a new list is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_taskC

Delete a single task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask id
tasklistYesTask list id

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full burden. It only says 'delete' without disclosing irreversibility, cascading effects on subtasks, or authorization needs. This is minimal for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, zero fluff, front-loaded with key action and resource. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a simple delete operation, the description is incomplete. It omits error conditions, idempotency, and impact on related data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters have descriptions), so baseline is 3. The description adds no additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and resource (a single task), distinguishing it from sibling tools like complete_task or move_task. However, it lacks scope details such as whether it's permanent or which user's tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as complete_task or move_task. No prerequisites (e.g., task must exist) or context for appropriate usage are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_tasklistA

Delete a task list AND all tasks in it. Irreversible: confirm intent before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list id

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses irreversibility and cascade deletion of all tasks, which are critical behavioral traits for a destructive operation. Could mention return value or auth, but the essential behavior is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence with no redundant information. Every word earns its place: 'Delete a task list AND all tasks in it. Irreversible: confirm intent before calling.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is sufficient. It explains the cascade and warning, but could optionally mention success confirmation. Overall, it provides the key context needed for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'tasklist' described as 'Task list id'. The description does not add further detail, so it meets the baseline without additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete', resource 'task list', and scope 'AND all tasks in it'. This distinguishes it from sibling tools like delete_task which only deletes a single task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The warning 'Irreversible: confirm intent before calling' provides explicit caution about when to use. While it doesn't list alternatives, the context of sibling tools implies that for individual tasks, delete_task should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_tasksA

Harvest every change since a timestamp: returns tasks updated after since, grouped per list into completed / active / deleted. Queries with showCompleted+showHidden+showDeleted so completions made in the Google Tasks apps (which become hidden) are not missed. Omit tasklist to sweep every list. The API has no sync tokens; keep your own snapshot and pass its timestamp as since.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceYesRFC3339 timestamp, e.g. 2026-07-20T00:00:00.000Z
tasklistNoLimit to one task list id (default: all lists)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully handles transparency: it explains that queries include showCompleted, showHidden, and showDeleted to avoid missing completions that become hidden, and notes the API lacks sync tokens, requiring manual snapshot management.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences) and front-loaded with the core purpose. Every sentence adds essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the return format (grouped into completed/active/deleted) and covers the main behavioral aspects, including the API limitation. It is complete for a sync tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that `since` is the timestamp of the last snapshot and that `tasklist` defaults to all lists, providing practical context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: harvesting changes since a timestamp, returning tasks updated after `since`, grouped by list into completed/active/deleted. It distinguishes itself from siblings like list_tasks by focusing on incremental sync with grouping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use, including omitting `tasklist` to sweep all lists and keeping a snapshot to pass as `since`. However, it does not explicitly contrast with sibling tools like list_tasks, which is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskC

Get a single task by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask id
tasklistYesTask list id

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the basic retrieval action, omitting details like permissions, rate limits, or return value structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is as concise as possible while conveying the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is incomplete. It does not explain what is returned, any prerequisites, or how this tool fits among many task-related siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's property descriptions, providing no extra context like id formats or the relationship between task and tasklist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and resource (single task by id), which differentiates it from listing or mutating tasks. However, it does not explicitly mention that both task and tasklist ids are required, relying on the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives like list_tasks or get_tasklist. The description lacks context for appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tasklistB

Get a single task list by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list id

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose any behavioral traits such as read-only nature, required permissions, or response details, leaving gaps for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single phrase, very concise and front-loaded, though it sacrifices some depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low tool complexity, the description is minimally complete, but the absence of annotations and output schema means more behavioral context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and describes the parameter as 'Task list id', but the description adds no extra meaning beyond the schema beyond confirming the role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Get' and resource 'single task list', and indicates retrieval by identifier, distinguishing it from list_tasklists and other siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific id, but does not explicitly state when to use versus alternatives like list_tasklists or any sharing conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasklistsA

List all of the user's task lists (id, title, updated).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly identifies the operation as a list (read-only), but lacks details on pagination, ordering, or auth requirements. However, given the simplicity, it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that front-loads key information (verb and resource) with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no params, no output schema), the description adequately covers the return fields. It is missing potential caveats (e.g., access scope), but is sufficient for a basic list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. Per the baseline rule, a score of 4 is appropriate since the description does not need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list', the resource 'task lists', and the specific fields returned (id, title, updated). It distinguishes itself from sibling tools like get_tasklist (single list) and create/update/delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., get_tasklist). It only states what it does without context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA

List tasks in a task list. By default returns only active (needsAction) tasks; set the show* flags for completed/hidden/deleted ones. Note: tasks completed in the Google Tasks apps become hidden, so harvesting completions needs showCompleted AND showHidden.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueMaxNoRFC3339 upper bound on due date
dueMinNoRFC3339 lower bound on due date
tasklistYesTask list id
showHiddenNoInclude hidden tasks (default false)
updatedMinNoRFC3339 timestamp; only tasks updated after this moment
showDeletedNoInclude deleted tasks (default false)
showCompletedNoInclude completed tasks (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It reveals the default filter (only active tasks), explains hidden tasks behavior (tasks completed in apps become hidden), and clarifies the combination needed for harvesting completions. While it omits details like rate limits or authentication, the core listing behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences that are front-loaded with the main action. Every word serves a purpose, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description covers the essential behavioral aspects well. It explains default filtering, show flags, and a key nuance about hidden tasks. It does not describe the return format or pagination, but for a list tool, this is acceptable. The contextual completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 7 parameters, so the baseline is 3. However, the description adds value by clarifying the interaction between showCompleted and showHidden for harvesting completions, which is not obvious from individual parameter descriptions. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists tasks in a task list, distinguishing it from sibling tools like list_tasklists (which lists task lists) and get_task (single task). It specifies the default behavior (only active tasks) and mentions show flags, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior (needsAction only) and how to use show* flags to include completed, hidden, or deleted tasks. It also provides a critical note about hidden tasks and harvesting completions. However, it does not explicitly list when to avoid this tool or suggest alternatives, but the usage context is well covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_taskA

Reorder a task (position is read-only; this is the only way to reorder), re-parent it as a subtask, or move it to another list via destinationTasklist.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask id
parentNoNew parent task id (omit for top level)
previousNoSibling task id to place after (omit for first position)
tasklistYesCurrent task list id
destinationTasklistNoTarget task list id, to move across lists

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that position is read-only and that this is the only way to reorder. However, it does not mention auth requirements, side effects, or how hierarchical reordering affects subtasks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence covering all three operations without redundancy. Every clausal element is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters and no output schema or annotations, the description adequately explains the tool's actions and parameter usage. It lacks details on return values and error conditions, but the core behavior is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline is 3. The description adds value by explaining the roles of 'parent', 'previous', and 'destinationTasklist' beyond their parameter names, clarifying reparenting and cross-list moves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool can reorder, re-parent, or move tasks to another list. It distinguishes from sibling tools like update_task by explicitly noting that position is read-only elsewhere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (reordering, reparenting, moving lists) and mentions it is the only way to reorder. It does not explicitly state when not to use it or list alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskA

Update a task's title, notes, due date, or status (needsAction | completed).

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoNew due date, YYYY-MM-DD (or full RFC3339)
taskYesTask id
notesNoNew notes
titleNoNew title
statusNoNew status
tasklistYesTask list id

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states 'Update' without disclosing side effects, auth needs, partial update behavior, or idempotency. Insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple update tool with 6 parameters (2 required). Schema covers params, but description could mention that other fields remain unchanged or the response. No output schema leaves a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning beyond schema; it merely lists some parameters already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('Update') and resource ('a task'), explicitly lists updatable fields (title, notes, due date, or status) with allowed status values. Distinguishes from sibling tools like complete_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs. alternatives (e.g., complete_task, create_task). Implies use for modifying listed fields but does not mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_tasklistB

Rename a task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNew title
tasklistYesTask list id

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits like whether the operation is idempotent, what happens if the tasklist ID is invalid, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence, but could benefit from a brief usage context without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple rename operation with 2 required parameters and no output schema, though lacks mention of return value or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Rename a task list.' clearly states the verb (rename) and resource (task list), and distinguishes from sibling tools like create_tasklist or delete_tasklist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as update_task which renames individual tasks, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv0.1.0
    • First observedcomplete_task
    • First observedcreate_task
    • First observedcreate_tasklist
    • First observeddelete_task
    • First observeddelete_tasklist
    • First observeddiff_tasks
    • First observedget_task
    • First observedget_tasklist
    • First observedlist_tasklists
    • First observedlist_tasks
    • First observedmove_task
    • First observedupdate_task
    • First observedupdate_tasklist

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource and action. Even complete_task is clearly described as a shorthand for update_task, so no ambiguity. All tools have clear boundaries.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., list_tasklists, create_task, delete_task). No mixing of conventions or inconsistent verb styles.

Tool Count5/5

13 tools is well-scoped for a task management domain, covering CRUD for tasklists and tasks, plus specialized actions like complete, move, and diff. Each tool earns its place.

Completeness5/5

The tool set provides complete lifecycle coverage: CRUD for tasklists and tasks, marking complete, reordering, subtask creation, and a sync mechanism via diff_tasks. No obvious gaps for the domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/justerlex/google-tasks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server