Labsco
MCP SERVER

Google Tasks

by arpitbatra123

Manage Google Tasks lists and tasks from Claude, Cursor or Codex — create, complete, move, and clear the done ones.

Project & Task Management
Summary
Authenticate once and stop thinking about it.

Tokens persist to disk with restricted permissions and refresh themselves when the access token expires, so you are not re-doing the browser dance every session — which is the difference between a task server you use and one you abandon. The tool set covers the awkward operations too: moving a task between lists and clearing completed items are the ones that are tedious in the Google Tasks UI.

What it is

A Node MCP server bridging an MCP client and Google Tasks. It runs the Google OAuth flow once, saves the tokens to disk with restricted permissions, and refreshes them automatically from then on.

What you get
  • Task lists: `list-tasklists`, `get-tasklist`, `create-tasklist`, `update-tasklist`, `delete-tasklist`
  • Tasks: `list-tasks` with pagination, `get-task`, `create-task`, `update-task`, `delete-task`
  • `complete-task` — mark one done without editing its other fields
  • `move-task` — reorder, change parent, or move a task to a different list
  • `clear-completed-tasks` — clear the finished items out of a list in one call
  • Input validation covering id formats, string lengths and RFC 3339 dates, so a malformed due date fails clearly
Requirements

Node.js 20+ and a Google Cloud project with the Google Tasks API enabled. Create an OAuth client and put `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` in a .env file; `GOOGLE_REDIRECT_URI` is optional and defaults to a localhost callback that must also be registered in Google Cloud. Build the server, then authenticate once from the client — the credentials are written under your config directory and reused after restarts.

Setup effort

One command plus a key — npx -y google-tasks-mcp, then supply credentials