Skip to main content
Glama
arpitbatra123

Google Tasks MCP Server

Google Tasks MCP 服务器

此模型上下文协议 (MCP) 服务器在 MCP 客户端与 Google Tasks 之间提供桥梁,允许您直接从 Claude Desktop、Cursor 和 Codex 等客户端管理您的任务列表和任务。

[!NOTE] 本项目中的所有代码(除部分编辑外)均为 “vibe coded” —— 即在我的指令下由 Claude/Copilot 生成。

功能

此 MCP 服务器提供以下功能:

任务列表管理

  • list-tasklists - 列出您所有的任务列表

  • get-tasklist - 获取特定任务列表的详细信息

  • create-tasklist - 创建新的任务列表

  • update-tasklist - 更新现有的任务列表

  • delete-tasklist - 删除任务列表

任务管理

  • list-tasks - 列出任务列表中的所有任务,包括分页结果

  • get-task - 获取特定任务的详细信息

  • create-task - 创建新任务

  • update-task - 更新现有任务

  • delete-task - 删除任务

  • complete-task - 将任务标记为已完成

  • move-task - 移动任务(重新排序、更改父级或跨任务列表移动)

  • clear-completed-tasks - 清除列表中的所有已完成任务

Related MCP server: Google Tasks MCP Server

设置说明

1. 创建 Google Cloud 项目并启用 API

  1. 前往 Google Cloud Console

  2. 创建一个新项目

  3. 导航至“API 和服务” > “库”

  4. 搜索“Google Tasks API”并启用它

  5. 前往“API 和服务” > “凭据”

  6. 点击“创建凭据” > “OAuth 客户端 ID”

  7. 配置 OAuth 同意屏幕(个人使用选择“外部”即可)

  8. 在应用程序类型中,选择“Web 应用程序”

  9. 添加 http://localhost:3000/oauth2callback 作为授权重定向 URI

  10. 创建客户端 ID 和密钥

2. 配置环境变量

在此项目目录中创建一个 .env 文件:

GOOGLE_CLIENT_ID=your_client_id_here
GOOGLE_CLIENT_SECRET=your_client_secret_here
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback

环境变量:

  • GOOGLE_CLIENT_ID(必需)- 您的 Google OAuth 客户端 ID

  • GOOGLE_CLIENT_SECRET(必需)- 您的 Google OAuth 客户端密钥

  • GOOGLE_REDIRECT_URI(可选)- OAuth 重定向 URI(默认为 http://localhost:3000/oauth2callback)

注意: 服务器会在启动时验证是否设置了 GOOGLE_CLIENT_ID 和 GOOGLE_CLIENT_SECRET,如果缺失或无效,将显示清晰的错误消息并停止运行。

3. 构建服务器

  1. 安装依赖项:

npm install
  1. 构建服务器:

npm run build

4. 配置 MCP 客户端

Codex

将服务器添加到 ~/.codex/config.toml:

[mcp_servers.google-tasks]
command = "zsh"
args = ["-lc", "cd /path/to/google-tasks-mcp && exec node build/index.js"]

将 /path/to/google-tasks-mcp 替换为此项目的路径,然后重启 Codex。

验证服务器是否已注册:

codex mcp list
codex mcp get google-tasks

Claude for Desktop

  1. 安装 Claude for Desktop

  2. 打开 Claude 配置文件:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  3. 添加 Google Tasks MCP 服务器配置:

{
  "mcpServers": {
    "google-tasks": {
      "command": "node",
      "args": ["/path/to/google-tasks-mcp/build/index.js"]
    }
  }
}

将路径替换为您自己的值,然后重启 Claude for Desktop。

身份验证流程

首次使用 Google Tasks MCP 服务器时:

  1. 使用 authenticate 工具获取授权 URL

  2. 在浏览器中访问该 URL 并登录您的 Google 账号

  3. 授权后,您将在浏览器页面上收到一个代码

  4. 使用 set-auth-code 工具输入此代码以完成身份验证

  5. 现在您可以使用所有其他工具与 Google Tasks 进行交互

注意: 您的身份验证令牌(包括刷新令牌)会自动保存到磁盘 ~/.config/google-tasks-mcp/credentials.json 中,并具有受限权限 (600)。这意味着:

  • 您只需验证一次 - 凭据在服务器重启后依然有效

  • 自动令牌刷新 - 访问令牌会在过期时(通常为 1 小时后)使用保存的刷新令牌自动刷新

  • 无需重新验证 - 初始设置后,除非您撤销访问权限或删除凭据文件,否则无需再次验证

要求

  • Node.js 20+(请参阅 package.json 中的 engines)

  • 支持 MCP 的客户端

  • 已启用 Tasks API 的 Google Cloud 项目

实现特性

此 MCP 服务器包含以下改进:

  • 持久化令牌存储 - 身份验证凭据以受限权限保存到磁盘 (~/.config/google-tasks-mcp/credentials.json),因此您只需验证一次

  • 环境变量验证 - 启动时验证确保已配置必需的凭据,并提供清晰的错误消息

  • 自动令牌刷新 - OAuth 令牌在过期时自动刷新,无需在会话期间或重启后重新验证

  • 增强的输入验证 - 对所有输入进行全面验证,包括 ID 格式、字符串长度和 RFC 3339 日期格式

  • HTML 清理 - 对 OAuth 回调响应进行清理,以防止 XSS 漏洞

  • 优雅关闭 - 在收到 SIGINT/SIGTERM 信号时正确清理资源

  • 类型安全 - 整个代码库具有完整的 TypeScript 类型安全,并带有适当的接口

  • 可配置的重定向 URI - 可通过 GOOGLE_REDIRECT_URI 环境变量自定义 OAuth 重定向 URI

截图

Claude Desktop

Claude Desktop 截图

Cursor

Cursor 截图

许可证

本项目仅供演示使用。使用风险自负。

Available Tools

15 tools
authenticateB

Get URL to authenticate with Google Tasks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions getting a URL but doesn't explain what happens next (e.g., whether this initiates OAuth flow, if user interaction is required, what the URL is used for, or any rate limits). This leaves significant gaps in understanding the tool's behavior.

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 gets straight to the point with no wasted words. It's appropriately sized for a simple tool and front-loads the essential information efficiently.

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?

For an authentication tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the returned URL is for, how it should be used, what authentication flow it enables, or what happens after authentication. This leaves critical gaps in understanding the tool's role in the broader authentication process.

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 tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters. This meets the baseline expectation for a zero-parameter tool.

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 URL') and target resource ('authenticate with Google Tasks'), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'set-auth-code' which also relates to authentication, leaving some ambiguity about when to use each.

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 guidance on when to use this tool versus alternatives like 'set-auth-code', nor does it mention prerequisites or context for authentication. It simply states what the tool does without indicating when it should be invoked.

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

clear-completed-tasksC

Clear all completed tasks from a task list

ParametersJSON Schema
NameRequiredDescriptionDefault
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 provided, the description carries the full burden of behavioral disclosure. It states the action ('Clear') which implies a destructive mutation, but lacks details on permissions required, whether the operation is reversible, rate limits, or what the response looks like (e.g., success confirmation or error handling). This is a significant gap 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?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.

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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral aspects like safety, permissions, or response format, which are critical for an agent to use it correctly. The high schema coverage helps with parameters, but overall context is lacking.

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?

The input schema has 100% description coverage, with the single parameter 'tasklist' documented as 'Task list ID'. The description doesn't add any parameter-specific details beyond this, such as format examples or constraints. Baseline 3 is appropriate since the schema does the heavy lifting.

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 ('Clear') and resource ('completed tasks from a task list'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'delete-task' or 'delete-tasklist' which might handle different deletion scenarios, so it doesn't reach the highest score.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a task list ID), exclusions (e.g., what happens to incomplete tasks), or comparisons to siblings like 'delete-task' for individual deletions, leaving usage ambiguous.

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

complete-taskC

Mark a task as completed

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
taskYesTask ID to mark as completed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether completion is reversible, if it triggers notifications, what permissions are needed, or what happens to subtasks. For a mutation tool with zero annotation coverage, this is insufficient.

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, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loads the core action without unnecessary elaboration.

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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'completed' means in this system, whether there are side effects, or what the response looks like. For a tool that changes state, more context is needed.

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 parameters are fully documented in the schema. The description adds no additional meaning about 'tasklist' or 'task' parameters beyond what the schema provides (e.g., no context on how to obtain IDs). Baseline 3 is appropriate when schema does the heavy lifting.

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 verb ('Mark') and resource ('a task') with the specific action 'as completed'. It distinguishes from siblings like 'delete-task' or 'update-task' by focusing on completion status, though it doesn't explicitly contrast with 'clear-completed-tasks' which handles multiple 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?

The description provides no guidance on when to use this tool versus alternatives like 'update-task' (which might also mark completion) or 'clear-completed-tasks'. There's no mention of prerequisites (e.g., task must exist) or context for choosing this specific completion method.

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

create-taskC

Create a new task in a task list

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
titleYesTitle of the task
notesNoNotes for the task
dueNoDue date in RFC 3339 format (e.g., 2025-03-19T12:00:00Z)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it creates a task but doesn't disclose behavioral traits like required permissions, whether it's idempotent, error handling, or what happens on success (e.g., returns a task ID). This leaves significant gaps 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?

The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.

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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, side effects, or return values, which are crucial for safe and effective use in a task management context.

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 the schema fully documents all 4 parameters. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or constraints, but the baseline is 3 since the schema does the heavy lifting.

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 ('Create') and resource ('new task in a task list'), which is specific and unambiguous. However, it doesn't differentiate from siblings like 'update-task' or 'complete-task' in terms of when to choose creation over modification, keeping it from a perfect score.

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 guidance on when to use this tool versus alternatives like 'update-task' or 'complete-task', nor does it mention prerequisites such as authentication or task list existence. It lacks any context for selection among sibling tools.

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

create-tasklistC

Create a new task list

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new task list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether creation requires specific permissions, if it's idempotent, what the response looks like, or any side effects. For a mutation tool with zero annotation coverage, this is insufficient.

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, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly without unnecessary elaboration.

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 tool's complexity (a mutation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral context, usage guidelines, and expected outcomes. While concise, it doesn't provide enough information for an agent to use the tool effectively beyond the basic action.

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?

The description adds no parameter information beyond what the schema provides. Since schema description coverage is 100% (the 'title' parameter is fully documented in the schema), the baseline score of 3 applies. The description doesn't compensate but also doesn't detract from the schema's clarity.

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 ('Create') and resource ('a new task list'), making the purpose immediately understandable. It doesn't differentiate from siblings like 'create-task' or 'update-tasklist', but it's specific enough to identify the core function.

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 guidance on when to use this tool versus alternatives like 'update-tasklist' or 'list-tasklists'. There's no mention of prerequisites (e.g., authentication), context for creation, or what happens if a task list with the same title exists.

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 task

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
taskYesTask ID to delete

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Delete a task' implies a destructive mutation, but it doesn't specify whether deletion is permanent or reversible, what permissions are required, whether there are confirmation prompts, or what happens to associated data. For a destructive operation with zero annotation coverage, this is inadequate behavioral 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 maximally concise with just three words that directly state the tool's function. There's no wasted language or unnecessary elaboration. While it's arguably too brief for a destructive operation, from a pure conciseness perspective, it's perfectly efficient.

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?

For a destructive mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address critical context like authentication requirements, error conditions, what constitutes successful deletion, or how this differs from related deletion operations. The agent would need to guess about many behavioral aspects when invoking this tool.

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%, with both parameters ('tasklist' and 'task') clearly documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose3/5

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

The description 'Delete a task' clearly states the action (delete) and resource (task), which is better than a tautology. However, it doesn't distinguish this tool from sibling tools like 'delete-tasklist' or 'clear-completed-tasks' that also perform deletion operations on related resources. The purpose is understandable but lacks specificity about what kind of task deletion this performs.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like authentication), when deletion is appropriate versus other operations like 'complete-task' or 'update-task', or what happens after deletion. With multiple sibling tools available, this lack of context leaves the agent guessing about appropriate usage scenarios.

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

delete-tasklistC

Delete a task list

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID to delete

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action ('Delete a task list'). It doesn't disclose critical behavioral traits: whether deletion is permanent or reversible, what permissions are required, if it cascades to delete associated tasks, error conditions, or response format. This is inadequate for a destructive operation with zero annotation coverage.

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, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loaded with the core action. No unnecessary words or structural issues are present.

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 this is a destructive operation with no annotations and no output schema, the description is incomplete. It doesn't address safety concerns, return values, error handling, or how it differs from sibling tools. For a delete operation in a task management context, more context is needed to ensure correct usage.

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%, with the single parameter 'tasklist' documented as 'Task list ID to delete'. The description adds no additional meaning beyond this, as it doesn't explain parameter format, sourcing, or constraints. Baseline 3 is appropriate since the schema fully describes the parameter.

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

Purpose3/5

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

The description 'Delete a task list' clearly states the action (delete) and resource (task list), but it's vague about scope and doesn't distinguish from sibling tools like 'delete-task' or 'clear-completed-tasks'. It provides basic purpose but lacks specificity about what constitutes a task list deletion versus other deletion 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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an existing task list ID), exclusions, or comparisons to siblings like 'delete-task' or 'clear-completed-tasks'. Users must infer usage from the name alone.

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 specific task by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
taskYesTask ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves a task but doesn't mention whether this is a read-only operation, what permissions are required, error handling, or response format. For a retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool, making it easy to parse quickly.

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 annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like safety, permissions, or return values, which are crucial for a tool that interacts with task data. The simplicity of the tool partially mitigates this, but more context is needed for reliable use.

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?

The description implies ID-based retrieval but doesn't add meaning beyond what the input schema provides. With 100% schema description coverage, the schema already documents both parameters ('tasklist' and 'task' IDs). The description doesn't explain their relationship or usage context, so it meets the baseline for high schema coverage.

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 ('a specific task by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get-tasklist' or 'list-tasks' beyond the ID specificity, which prevents a perfect score.

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 guidance on when to use this tool versus alternatives like 'list-tasks' or 'get-tasklist'. It lacks context about prerequisites (e.g., needing a tasklist ID) or exclusions, leaving the agent to infer usage from the name and parameters alone.

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

get-tasklistC

Get a task list by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Get a task list by ID', which implies a read-only operation, but doesn't clarify aspects like error handling (e.g., what happens if the ID is invalid), response format, or any rate limits. While it doesn't contradict annotations (there are none), it fails to provide meaningful behavioral context beyond the basic action.

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 extremely concise at just four words ('Get a task list by ID'), with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse quickly. This efficiency is appropriate for a simple retrieval tool, though it may sacrifice helpful details for brevity.

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 tool's simplicity (one parameter, no annotations, no output schema), the description is incomplete. It doesn't explain what 'getting' returns (e.g., task list details, tasks within it, or metadata), error conditions, or how it fits into the broader task management workflow. While minimalism can work for very basic tools, this leaves gaps that could hinder effective agent use.

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?

The input schema has 100% description coverage, with the single parameter 'tasklist' documented as 'Task list ID'. The description adds no additional semantic information beyond what the schema already provides (e.g., format examples, validation rules, or context about where to find IDs). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.

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

Purpose3/5

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

The description 'Get a task list by ID' clearly states the verb ('Get') and resource ('task list'), but it's quite basic and doesn't distinguish this tool from its sibling 'get-task' which follows a similar pattern. It specifies retrieval by ID, which provides some differentiation from list operations, but remains somewhat vague about what 'getting' entails beyond basic identification.

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 guidance on when to use this tool versus alternatives like 'list-tasklists' or 'get-task'. It doesn't mention prerequisites (e.g., needing authentication or a valid task list ID), nor does it explain use cases where retrieving a single task list by ID is preferable to listing all task lists. This leaves the agent without contextual decision-making help.

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

list-tasklistsB

List all task lists

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List all') but lacks details on permissions, rate limits, pagination, or response format. This is a significant gap for a tool that likely returns multiple items.

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, efficient sentence with zero waste. It is front-loaded and directly conveys the core functionality without redundancy or fluff, making it highly concise and well-structured.

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 annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like pagination, ordering, or error handling, which are crucial for a list operation. The minimal description fails to compensate for the missing structured data.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately omits parameter details, aligning with the schema. A baseline of 4 is applied as it doesn't add unnecessary information.

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 'List all task lists' clearly states the verb ('List') and resource ('task lists'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'get-tasklist' or 'list-tasks', but the resource specificity provides adequate clarity.

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 'get-tasklist' (for a specific task list) or 'list-tasks' (for tasks within a list). The description implies a broad retrieval but offers no context about prerequisites, filtering, or use cases.

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

list-tasksC

List all tasks in a task list

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
showCompletedNoWhether to include completed tasks
showHiddenNoWhether to include hidden tasks
showDeletedNoWhether to include deleted tasks

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'List all tasks' implies a read-only operation, it doesn't address important behavioral aspects like pagination, rate limits, authentication requirements, or what 'all' means in practice (e.g., maximum results). The description is minimal and lacks operational context.

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 extremely concise at just 6 words, front-loading the core purpose without any wasted words. Every element ('List', 'all tasks', 'in a task list') contributes essential information in minimal space.

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?

For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'all tasks' means operationally, doesn't mention authentication requirements (relevant given 'authenticate' and 'set-auth-code' siblings), and provides no context about the return format or limitations. The minimal description leaves too many operational questions unanswered.

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 the schema already documents all 4 parameters thoroughly. The description adds no parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

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 verb ('List') and resource ('tasks in a task list'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'get-task' or 'list-tasklists', which would require more specificity about scope or filtering capabilities.

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 guidance on when to use this tool versus alternatives. With siblings like 'get-task' (for single tasks) and 'list-tasklists' (for listing task lists), there's no indication of when this bulk listing tool is preferred or what distinguishes it from other list/retrieval operations.

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

move-taskC

Move a task to another position

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
taskYesTask ID to move
parentNoOptional new parent task ID
previousNoOptional previous sibling task ID

TDQS

C2.9/5.0
Behavior2/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 of behavioral disclosure. It states the action ('move') but doesn't describe effects (e.g., whether it changes task order, updates timestamps, requires permissions), constraints (e.g., rate limits, validation rules), or response format. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence ('Move a task to another position') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured for its simplicity.

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 complexity of a mutation tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., what 'move' entails, error conditions), usage context, and return values. The schema covers parameters, but the description fails to compensate for missing annotations and output information.

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 the schema already documents all four parameters (tasklist, task, parent, previous) with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining how 'parent' and 'previous' interact for positioning. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('move') and resource ('task'), specifying the purpose as repositioning a task. It distinguishes from siblings like 'update-task' by focusing on positional changes rather than content updates. However, it doesn't explicitly differentiate from all siblings like 'complete-task' or 'delete-task' in terms of scope.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., task must exist), exclusions (e.g., cannot move to invalid positions), or comparisons with siblings like 'update-task' for reordering. Usage is implied only by the verb 'move', with no explicit context.

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

set-auth-codeC

Set the authentication code received from Google OAuth flow

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe authentication code received from Google

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does (sets an auth code) but doesn't describe the behavioral implications: whether this persists credentials, what authentication state results, whether it's idempotent, or what happens if called multiple times. For a security-sensitive authentication tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a single-parameter tool and front-loads the essential information. Every word earns its place, making this an excellent example of conciseness.

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?

For an authentication-related tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after setting the code, whether authentication is established, what errors might occur, or how this integrates with the broader OAuth flow. Given the security sensitivity and the lack of structured metadata, more contextual information would be valuable.

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%, with the single parameter 'code' well-described in the schema as 'The authentication code received from Google'. The description adds no additional parameter semantics beyond what's already in the schema. This meets the baseline of 3 when schema coverage is high, but doesn't provide extra value like format examples or validation details.

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 ('Set') and the resource ('authentication code received from Google OAuth flow'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'authenticate', but the specific focus on setting an OAuth code provides reasonable distinction. The description goes beyond a tautology by specifying the source (Google OAuth flow).

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 guidance on when to use this tool versus alternatives like 'authenticate', nor does it mention prerequisites or context for usage. While it implies this is part of an OAuth flow, it doesn't specify when in that flow this should be called or what happens before/after. There's no explicit when/when-not guidance or alternative tool references.

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

update-taskC

Update an existing task

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
taskYesTask ID
titleNoNew title for the task
notesNoNew notes for the task
statusNoStatus of the task
dueNoDue date in RFC 3339 format (e.g., 2025-03-19T12:00:00Z)

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing task' implies a mutation operation but doesn't specify permission requirements, whether updates are partial or complete, what happens to unspecified fields, or error conditions. It lacks critical behavioral context for a write 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?

The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and resource. While it could benefit from more detail, it earns full marks for conciseness as every word serves a 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?

For a mutation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, what happens on success/failure, or provide any context about the update operation's scope or limitations. The agent would need to guess about important behavioral aspects.

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 the schema fully documents all 6 parameters. The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in description.

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

Purpose3/5

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

The description 'Update an existing task' clearly states the verb (update) and resource (task), but it's vague about what aspects can be updated and doesn't distinguish this tool from similar siblings like 'complete-task' or 'move-task'. It provides basic purpose but lacks specificity.

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 guidance on when to use this tool versus alternatives like 'complete-task' (which might handle status changes) or 'move-task' (which might handle tasklist changes). There's no mention of prerequisites, constraints, or typical use cases beyond the basic action.

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

update-tasklistC

Update an existing task list

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID
titleYesNew title for the task list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, it doesn't specify permission requirements, whether the update is reversible, what happens to unchanged fields, or error conditions. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with zero wasted words. It's appropriately sized for a simple update operation and gets straight to the point without unnecessary elaboration.

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?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after the update, what fields can be modified, or provide any context about the update operation's behavior. The agent would need to guess about important aspects of tool usage.

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 both parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema (tasklist ID and new title). Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('Update') and resource ('an existing task list'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'update-task' or explain what aspects of a task list can be updated beyond what's implied by the parameters.

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 guidance on when to use this tool versus alternatives like 'create-tasklist' or 'delete-tasklist'. It doesn't mention prerequisites (e.g., needing an existing task list ID) or contextual constraints, leaving the agent to infer usage from the tool name alone.

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.

  1. 15 tool updates
    • First observedauthenticate
    • First observedclear-completed-tasks
    • First observedcomplete-task
    • First observedcreate-task
    • First observedcreate-tasklist
    • First observeddelete-task
    • First observeddelete-tasklist
    • First observedget-task
    • First observedget-tasklist
    • First observedlist-tasklists
    • First observedlist-tasks
    • First observedmove-task
    • First observedset-auth-code
    • First observedupdate-task
    • First observedupdate-tasklist

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets specific resources (tasks or tasklists) and actions (create, get, list, update, delete, complete, clear, move), making it easy for an agent to select the right tool. The separation between task operations and tasklist operations is particularly clear.

Naming Consistency5/5

The naming follows a perfectly consistent verb-noun pattern throughout all 15 tools. Every tool uses snake_case with clear action verbs (create, get, list, update, delete, etc.) followed by the resource name (task, tasklist), and multi-word resources use hyphens consistently (e.g., clear-completed-tasks).

Tool Count5/5

With 15 tools, this server is well-scoped for managing Google Tasks. Each tool earns its place by covering essential CRUD operations for both tasks and tasklists, plus additional workflow actions like moving tasks and clearing completed ones. The count is appropriate for the domain without being overwhelming.

Completeness5/5

The tool surface provides complete coverage for the Google Tasks domain. It includes full CRUD operations for both tasks and tasklists, plus lifecycle actions like completing tasks, moving tasks, and clearing completed tasks. Authentication tools are also included, ensuring no dead ends for agents.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

Appeared in Searches