Skip to main content

Google Tasks

Proxy for the Google Tasks API v1 through the managed gateway. Task lists and tasks are fundamentally user-scoped — every list belongs to a single Google account — so this connector only supports idp_passthrough. There is no personal-access-token model for Google APIs, so user_secret (a static pasted credential) doesn't fit: a raw OAuth access token expires in about an hour with no way to refresh it once it's just a copied string. idp_passthrough avoids that entirely — the AS resolves and refreshes the user's own Google token on every call.

Setup​

  • base_url — defaults to https://tasks.googleapis.com; no reason to change it.
  • upstream_auth.type — fixed to idp_passthrough, the only option this connector declares.

Registering the Google IdP​

If a google IdentityProvider is already registered on this instance (true wherever identos.google-gmail, -chat or -directory is in use, or -drive, -calendar, -docs, -sheets or -slides is installed with idp_passthrough rather than google_sa), nothing else is needed — installing this connector just adds https://www.googleapis.com/auth/tasks to the scopes users are asked to grant, via the normal step-up consent flow if they've already connected Google for another connector.

Otherwise, register one once: Google Cloud Console → create an OAuth 2.0 Client ID (Web application), add the AS's /oauth2/callback URL as an Authorized redirect URI, then POST /admin/api/identity-providers with idpId: "google", issuer: "https://accounts.google.com" and that client ID and secret. The google.json preset matches on that idpId, and the server fills in the endpoints from Google's OIDC discovery document.

Scope model​

ScopeUsed for
PBAC scopes (internal)tasks:lists:read, tasks:lists:write, tasks:tasks:read, tasks:tasks:writeRoute authorization
Upstream OAuth scopehttps://www.googleapis.com/auth/tasksFull read/write access to the user's task lists and tasks — Google Tasks has no finer-grained scope split between lists and tasks, so both PBAC scope pairs map to the same upstream grant. A tasks.readonly variant exists upstream but isn't offered here since list_task_lists/get_task alone wouldn't cover most agent use cases without also being able to check items off.

Routes​

list_task_lists, create_task_list, list_tasks, get_task, create_task (supports parent/previous for subtasks and ordering), update_task (status transitions between needsAction/completed), delete_task, clear_completed_tasks.

Manifest reference​

  • ID: identos.google-tasks
  • Version: 1.0.0
  • Resource type: urn:connector:identos:google-tasks

Supported auth modes​

TypeDetails
idp_passthroughrequires IdP google

Setup fields​

IDLabelDefaultSecret?Notes
base_urlAPI base URLhttps://tasks.googleapis.comno—

Scopes​

Scope
tasks:lists:read
tasks:lists:write
tasks:tasks:read
tasks:tasks:write

Routes​

MethodPatternScopeResource template
GET/tasks/v1/users/@me/liststasks:lists:read—
POST/tasks/v1/users/@me/liststasks:lists:write—
GET/tasks/v1/lists/{tasklist}/taskstasks:tasks:readgoogle-tasks://list/{{tasklist}}
GET/tasks/v1/lists/{tasklist}/tasks/{task}tasks:tasks:readgoogle-tasks://list/{{tasklist}}/task/{{task}}
POST/tasks/v1/lists/{tasklist}/taskstasks:tasks:writegoogle-tasks://list/{{tasklist}}
PATCH/tasks/v1/lists/{tasklist}/tasks/{task}tasks:tasks:writegoogle-tasks://list/{{tasklist}}/task/{{task}}
DELETE/tasks/v1/lists/{tasklist}/tasks/{task}tasks:tasks:writegoogle-tasks://list/{{tasklist}}/task/{{task}}
POST/tasks/v1/lists/{tasklist}/cleartasks:tasks:writegoogle-tasks://list/{{tasklist}}

MCP tools​

NameScopeDescription
list_task_liststasks:lists:readList the authenticated user's task lists.
create_task_listtasks:lists:writeCreate a new task list for the authenticated user.
list_taskstasks:tasks:readList the tasks in a given task list.
get_tasktasks:tasks:readGet a single task by ID.
create_tasktasks:tasks:writeCreate a new task in the given task list. Pass parent to create it as a subtask, or previous to place it after a specific sibling.
update_tasktasks:tasks:writeUpdate fields on an existing task — mark complete/incomplete, change title/notes/due date.
delete_tasktasks:tasks:writePermanently delete a task. Irreversible.
clear_completed_taskstasks:tasks:writeClear all completed tasks from a task list. They're hidden from the default list view; irreversible via this API.