google-task-mcp
This server lets MCP clients (like Codex or ChatGPT desktop) manage Google Tasks locally over STDIO, with OAuth stored on your machine.
Connect a Google account via local OAuth (get authorization URL, then complete authorization)
List Google Task lists
List tasks in a list, with optional filtering for completed/hidden tasks and a max result limit
Create tasks (including subtasks via parent) with title, notes, and RFC 3339 due dates
Update a task's title, notes, or due date
Mark tasks complete or reopen them
Delete tasks, but only after explicit user confirmation (
confirm: true)
Provides tools for listing, creating, updating, completing, uncompleting, and deleting tasks in Google Tasks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-task-mcpshow my task lists"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TaskBridge
TaskBridge lets you use Google Tasks from Codex or any MCP client that can run a local STDIO server. It can list task lists and tasks, create or edit tasks, mark tasks complete, and delete tasks after explicit confirmation.
Everything runs locally. The server talks directly to the Google Tasks API and stores the OAuth token on your computer.
What you need
Node.js 20 or newer
A Google account with Google Tasks enabled
A Google Cloud project
Codex, the ChatGPT desktop app, or another MCP client with local STDIO support
Related MCP server: Google Tasks MCP Server
Set up the project
1. Download and install
git clone https://github.com/zakikero/google-task-mcp.git
cd google-task-mcp
npm installRun the checks to confirm that your local copy is ready:
npm run verify2. Create Google OAuth credentials
Open the Google Cloud Console and create or select a project.
Enable the Google Tasks API.
Open Google Auth platform → Branding and configure the consent screen.
Under Audience, use Internal for a Google Workspace organization or External for a personal Google account. If the app is in testing, add the Google account you will use as a test user.
Open Google Auth platform → Clients, select Create client, and choose Desktop app.
Copy the generated client ID and client secret.
Google supports loopback addresses for desktop OAuth clients, so the included local callback URL works without hosting a web server. See Google's Tasks API Node.js quickstart and desktop OAuth guidance for more detail.
3. Add your credentials
Create a local .env file from the example:
Copy-Item .env.example .envOn macOS or Linux, use cp .env.example .env instead. Then replace the placeholder values:
GOOGLE_TASKS_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_TASKS_CLIENT_SECRET=your-client-secret
GOOGLE_TASKS_REDIRECT_URI=http://127.0.0.1:53682/oauth2callbackThe server loads this .env file from the repository directory even when it is launched from somewhere else. .env is ignored by Git.
4. Connect Codex
The simplest development setup is to add this repository as a local MCP server. Replace the example path with the absolute path to your clone:
codex mcp add google-task-mcp -- node C:\path\to\google-task-mcp\server\index.jsYou can also add it in the ChatGPT desktop app under Settings → MCP servers → Add server:
Name:
google-task-mcpType:
STDIOCommand:
nodeArguments: the absolute path to
server/index.js
Save the server and restart the app. Codex's MCP configuration is shared with the desktop app and IDE extension; the current options are documented in the official MCP setup guide.
This repository also contains .codex-plugin/plugin.json and .mcp.json for packaging it as a Codex plugin.
The plugin configuration pre-approves only google_tasks_list_tasklists and
google_tasks_list_tasks. This lets unattended scheduled tasks read Google Tasks while create,
update, completion, authorization, and deletion operations continue to require approval.
5. Authorize Google Tasks
Start a new chat and ask:
Connect my Google Tasks account.
The client should call google_tasks_get_authorization_url. Open the returned URL, approve access, return to the chat, and ask it to finish authorization. The authorization attempt expires after 10 minutes.
Try one of these prompts afterward:
“Show my open Google Tasks.”
“Create a task called Pay electricity bill due tomorrow.”
“Mark my grocery task complete.”
Available tools
Tool | Purpose |
| Start local Google OAuth authorization |
| Finish authorization after browser consent |
| List task lists |
| List tasks, optionally including completed or hidden tasks |
| Create a task or subtask |
| Change a task's title, notes, or due date |
| Complete or reopen a task |
| Permanently delete a task after explicit confirmation |
Task list IDs default to @default. Due dates use RFC 3339 timestamps, such as 2026-08-18T17:00:00Z; Google Tasks stores the date and may discard the time portion.
Local data and safety
The OAuth token is stored at
%APPDATA%\google-task-mcp\token.jsonon Windows or~/.config/google-task-mcp/token.jsonon macOS and Linux.Set
GOOGLE_TASKS_TOKEN_PATHin.envto use a different location.Delete the token file to disconnect the Google account. You can also revoke access from your Google Account settings.
The server requests only
https://www.googleapis.com/auth/tasks.Task deletion requires
confirm: true; clients should show the exact task and ask before calling it..env, token directories, logs, and dependencies are excluded from Git. Never commit credentials or tokens.
Troubleshooting
The MCP server exits immediately
Check that .env exists beside package.json and contains both GOOGLE_TASKS_CLIENT_ID and GOOGLE_TASKS_CLIENT_SECRET.
Google reports redirect_uri_mismatch
Confirm that you created a Desktop app OAuth client and kept GOOGLE_TASKS_REDIRECT_URI set to the included loopback URL.
The authorization URL expires
Run google_tasks_get_authorization_url again. Only one authorization attempt can be active at a time.
Port 53682 is already in use
Choose an unused local port in .env, restart the MCP server, and begin authorization again.
A scheduled task says connector approval is unavailable
Install the repository as the Codex plugin rather than registering only the MCP server. The
included .mcp.json safely pre-approves the two read-only tools needed by scheduled tasks. Restart
Codex after installing an updated plugin, then test the scheduled prompt once in a regular chat.
Do not pre-approve the whole server because it also contains tools that modify and delete tasks.
Development
The server is split by responsibility:
server/
config.js Environment and path configuration
google-auth.js OAuth callback and Google API client
index.js Server startup
mcp-result.js MCP text response formatting
tools.js Tool schemas and handlers
test/ Node.js unit testsUseful commands:
npm run check # Syntax-check server files
npm test # Run unit tests
npm run verify # Run both checks
npm start # Start the STDIO server manuallyOAuth and live Google API calls require real credentials and interactive browser consent. Unit tests do not contact Google.
License
Released under the MIT License.
Available Tools
8 toolsgoogle_tasks_complete_authorizationA
Confirm the browser OAuth callback has completed and save the local token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the tool confirms the callback and saves a token, which are key behavioral traits. However, it omits details like whether the token is persisted, if repeated calls are safe, or any side effects. The description is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence (17 words) with no fluff. Every word contributes to understanding the tool's purpose and action. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description captures the core action. However, it lacks details about prerequisites (e.g., must have called get_authorization_url first), error conditions, or what 'local token' means. It is adequate for a straightforward OAuth completion step but could provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100% (empty object). The description does not need to add parameter meanings. Baseline for zero-parameter tools is 4, and the description meets that without adding unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to confirm the browser OAuth callback has completed and save the local token. It uses a specific verb ('confirm') and resource ('OAuth callback', 'local token'), and it distinguishes from sibling tools like google_tasks_get_authorization_url, which initiates the flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the context suggests it should be used after obtaining the authorization URL, no direct guidance is given on prerequisites, ordering, 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.
google_tasks_create_taskC
Create a Google Task. Due dates are RFC 3339 timestamps, for example 2026-08-18T17:00:00Z.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ||
| notes | No | ||
| title | Yes | ||
| parent | No | ||
| previous | No | ||
| tasklistId | No | @default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only discloses the RFC 3339 timestamp format for due dates. It does not mention authentication, default tasklist behavior, side effects, or return values, leaving the agent under-informed for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with 'Create a Google Task', and the due date example is a useful addition. However, it is under-specified rather than genuinely concise; it omits critical parameter explanations that would fit naturally in a few more sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, this description is incomplete. It does not clarify what the tool returns, how tasklistId defaults to '@default', or the semantics of parent/previous relationships, making it difficult for an agent to invoke it correctly without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a schema description coverage of 0%, the description must compensate for all six parameters. It only adds format details for 'due', leaving title, notes, parent, previous, and tasklistId unexplained beyond their raw schema types. This is insufficient for a tool with this many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a Google Task', using a specific verb and resource. This clearly distinguishes it from sibling tools like update, delete, and list, which involve different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool vs alternatives, nor any mention of prerequisites or exclusions. The verb 'Create' implies usage, but no explicit context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_delete_taskA
Permanently delete one task. First show the exact task to the user; this tool refuses to run without confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| confirm | Yes | Must be true after the user explicitly confirms deletion. | |
| tasklistId | No | @default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It correctly flags the operation as permanent and irreversible, but it does not mention permission requirements, rate limits, or what happens if the task is already deleted. However, the description adds value beyond the schema by clarifying the confirmation workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences covering purpose, usage guidance, and behavioral constraint. Every sentence is necessary and informative with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature of the tool (no output schema, 3 parameters with low description coverage), the description should ideally mention return values (or lack thereof) and how the tool signals success or failure. The confirmation behavior is well-handled, but the gap on tasklistId and response format limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (the confirm parameter has a description, but taskId and tasklistId do not). The description compensates by explaining that confirm must be true and that taskId corresponds to the task shown to the user. However, it does not explain the tasklistId parameter or its default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Permanently delete one task') and specifies the resource ('task'), distinguishing it from siblings like google_tasks_update_task or google_tasks_set_task_completion. The verb 'delete' is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to 'first show the exact task to the user' and mandates a confirmation step ('this tool refuses to run without confirm: true'). This provides clear when-to-use guidance and prevents accidental deletion, which is crucial for a destructive operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_get_authorization_urlA
Start local OAuth 2.0 authorization and return the URL the user must open in a browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses that the tool starts authorization locally and produces a URL for browser opening. It doesn't clarify whether the server listens for a callback, but for a zero-parameter tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, precise sentence that fully explains the tool's purpose and behavior without unnecessary words. It earns its place by being maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple OAuth initiation tool, the description is sufficient. It doesn't have an output schema but the return URL is implied. Some agents might benefit from knowing about timeout or error states, but the description is complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%. The description doesn't need to explain parameters, but it doesn't add any value beyond the schema. Baseline 3 is not justified because there are no parameters to enrich, and the description is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (start OAuth authorization) and the expected outcome (return a URL for the user to open). It distinguishes itself from sibling tools like google_tasks_complete_authorization, which handles the next step, though it doesn't explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the first step in the OAuth flow, and the sibling google_tasks_complete_authorization logically follows. However, it doesn't explicitly state when not to use it or mention prerequisites like needing app credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_list_tasklistsB
List the user's Google Tasks lists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 does not state that this is a read-only operation, whether authorization is required, or any side effects. The minimal sentence adds no transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the tool's purpose. Every word is functional, and there is no unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description lacks completeness. It does not mention the return format (e.g., list of task list objects with IDs) or that authorization is required. For a simple list tool, more context would help an agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is trivially 100%. The description adds no parameter information, but none is needed. Baseline for 0 parameters is 4, and the description does not contradict the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('the user's Google Tasks lists'), clearly distinguishing this tool from siblings like 'google_tasks_list_tasks' (which lists tasks within a list) and 'google_tasks_create_task' (which creates a task).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or when to avoid it. There is no mention of prerequisites (e.g., authorization) or that it should be called before listing tasks to obtain list IDs. The description simply states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_list_tasksC
List tasks in a Google Task list.
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | ||
| showHidden | No | ||
| tasklistId | No | @default | |
| showCompleted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only states 'List tasks' without any detail about read-only nature, pagination via maxResults, default behavior, or what the response contains. This is insufficient for an agent to understand the tool's effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but too terse for a tool with 4 parameters and no output schema. It states the purpose but omits critical information. It is not verbose, but it is under-specified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (none described), no annotations, and no output schema, the description is extremely incomplete. It fails to explain how to use the tool, what parameters do, or what the return value looks like, leaving the agent with insufficient context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters with 0% description coverage, meaning no parameter descriptions exist. The tool description does not mention any parameter or provide any additional meaning, failing to compensate for the schema gap. The agent receives no context for maxResults, showHidden, tasklistId, or showCompleted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List tasks in a Google Task list' uses a specific verb ('list') and clearly identifies the resource ('tasks in a Google Task list'). It effectively distinguishes this tool from siblings like 'google_tasks_create_task' or 'google_tasks_list_tasklists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites (e.g., needing a tasklist ID from list_tasklists), nor does it explain when to use parameters like showHidden or showCompleted to filter results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_set_task_completionC
Complete or uncomplete a task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| completed | Yes | ||
| tasklistId | No | @default |
TDQS
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 minimally states the effect (completion status change) but omits side effects, permissions, error handling, idempotency, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise but lacking structure. It could be improved to front-load key details about parameters and behavior without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is incomplete. It does not explain that the 'completed' parameter determines the state, that tasklistId defaults to '@default', or any return value. No output schema exists to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning to any of the three parameters (taskId, completed, tasklistId). The agent must rely solely on the schema, which lacks descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action of completing or uncompleting a task using the verb-resource pair 'Complete or uncomplete a task'. It is specific but fails to differentiate from sibling tools like google_tasks_update_task, which could also modify task status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as google_tasks_update_task or when to list tasks first. The description solely states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_update_taskB
Update a task's title, notes, or due date. At least one editable field is required.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ||
| notes | No | ||
| title | No | ||
| taskId | Yes | ||
| tasklistId | No | @default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only notes that at least one editable field is required, but omits critical behaviors such as whether the task must exist, what happens if the task is not found, any authentication requirements, or the nature of the response (mutation implied but no output schema). This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. It is front-loaded with the core action and immediately states the essential constraint. Every word earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is too sparse. It does not explain the return value, error states, or the role of tasklistId. The agent lacks sufficient context to use the tool confidently, especially compared to sibling tools with richer descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names three editable parameters (title, notes, due), adding meaning beyond the raw schema. However, it does not explain the format of 'due' (date-time), the max lengths, or the purpose of 'taskId' and 'tasklistId' (especially the default @default). The compensation is partial, warranting a middle score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update a task') and identifies the specific editable fields ('title, notes, or due date'), which distinguishes it from sibling tools like create, delete, or set completion. The requirement 'At least one editable field is required' further clarifies the tool's purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when modifying an existing task's title, notes, or due date, but it does not explicitly guide when not to use this tool (e.g., for updating completion status, use set_task_completion instead). No alternatives or exclusions are mentioned, leaving the agent to infer context from sibling names.
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.
8 tool updates
v0.1.0- First observed
google_tasks_complete_authorization - First observed
google_tasks_create_task - First observed
google_tasks_delete_task - First observed
google_tasks_get_authorization_url - First observed
google_tasks_list_tasklists - First observed
google_tasks_list_tasks - First observed
google_tasks_set_task_completion - First observed
google_tasks_update_task
TDQS
Each tool addresses a distinct operation: authorization, listing, creation, update, completion, and deletion. There is no overlap or ambiguity between the tools.
All tools follow a consistent `google_tasks_<verb>_<noun>` pattern, with clear, predictable verbs like `list`, `create`, `update`, and `delete`.
With 8 tools, the set covers the core lifecycle of managing Google Tasks (auth, lists, tasks) without being excessive or sparse. Each tool has a clear purpose.
The tool set provides full CRUD for tasks (create, read, update, delete) plus completion toggling and authorization. It lacks a `get_task` detail endpoint, but the list tool likely returns sufficient information for most workflows.
Maintenance
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
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Read teams, spaces, lists and tasks; create, update and comment on tasks and track time.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceIntegrates with Google Tasks to allow listing, reading, searching, creating, updating, and deleting tasks.159MIT
- FlicenseNot gradedqualityDmaintenanceEnables integration with Google Tasks API to create and manage tasks through OAuth 2.0 authentication. Supports listing task lists and creating new tasks with automatic token refresh.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to manage Google Tasks through natural language interactions. Supports creating, updating, deleting, searching, and listing tasks with secure OAuth2 authentication.12610MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Tasks, including listing, creating, updating, deleting, and completing tasks via the Google Tasks API.82MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/zakikero/google-task-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server