Google Tasks MCP Server

MCP server for Google Tasks integration. Allows managing tasks and task lists.

Status

  • Location: /home/ubuntu/claude-workspace/mcp-servers/tasks-mcp/
  • Binary: tasks-mcp
  • Auth: OAuth2 (requires one-time browser authorization)
  • Status: ✅ Working (2026-02-17)

Tools

list_task_lists

Get all task lists.

Parameters: none

list_tasks

Get tasks from a list.

Parameters:

  • tasklist_id (string, optional): Task list ID. Default: @default
  • show_completed (boolean, optional): Show completed tasks. Default: false

create_task

Create a new task.

Parameters:

  • title (string, required): Task title
  • tasklist_id (string, optional): Task list ID. Default: @default
  • notes (string, optional): Description/notes
  • due (string, optional): Due date, format YYYY-MM-DD

update_task

Update an existing task.

Parameters:

  • task_id (string, required): Task ID
  • tasklist_id (string, optional): Task list ID. Default: @default
  • title (string, optional): New title
  • notes (string, optional): New description
  • due (string, optional): New due date, format YYYY-MM-DD

complete_task

Mark a task as completed.

Parameters:

  • task_id (string, required): Task ID
  • tasklist_id (string, optional): Task list ID. Default: @default

delete_task

Delete a task.

Parameters:

  • task_id (string, required): Task ID
  • tasklist_id (string, optional): Task list ID. Default: @default

Setup

Step 1: Create OAuth2 Credentials

  1. Open Google Cloud Console
  2. Select project (or create new)
  3. APIs & ServicesLibrary → find Tasks APIEnable
  4. APIs & ServicesCredentialsCreate CredentialsOAuth client ID
  5. If needed, configure OAuth consent screen:
    • User Type: External
    • App name: any (e.g., Tasks MCP)
    • Scopes step — can skip
    • Test users: add your email (required!)
  6. Application type: Desktop app
  7. CreateDownload JSON
  8. Save file: ~/.takopi/credentials/tasks-oauth.json

Step 2: Authorize (on headless server)

Step 1 — get authorization URL:

GOOGLE_OAUTH_CREDENTIALS=~/.takopi/credentials/tasks-oauth.json \
  /home/ubuntu/claude-workspace/mcp-servers/tasks-mcp/tasks-mcp --auth

Outputs URL like AUTH_URL:https://accounts.google.com/o/oauth2/auth?...

Step 2 — open URL in browser, authorize, copy the code

Step 3 — exchange code for token:

GOOGLE_OAUTH_CREDENTIALS=~/.takopi/credentials/tasks-oauth.json \
  /home/ubuntu/claude-workspace/mcp-servers/tasks-mcp/tasks-mcp --token "CODE_HERE"

Token will be saved to ~/.takopi/credentials/tasks-token.json

Step 3: Configure Claude Code

In ~/.claude.json under mcpServers:

"google-tasks": {
  "type": "stdio",
  "command": "/home/ubuntu/claude-workspace/mcp-servers/tasks-mcp/tasks-mcp",
  "env": {
    "GOOGLE_OAUTH_CREDENTIALS": "/home/ubuntu/.takopi/credentials/tasks-oauth.json"
  }
}

Current Setup (Ilya)

ParameterValue
OAuth Credentials~/.takopi/credentials/tasks-oauth.json
Token File~/.takopi/credentials/tasks-token.json
Google Accountccherya@gmail.com
Status✅ Authorized (2026-02-17)

Environment Variables

  • GOOGLE_OAUTH_CREDENTIALS (required): Path to OAuth2 credentials JSON
  • GOOGLE_TOKEN_FILE (optional): Path to token file. Default: tasks-token.json next to credentials

Building

cd /home/ubuntu/claude-workspace/mcp-servers/tasks-mcp
go build -o tasks-mcp .

Troubleshooting

”Access blocked: … has not completed the Google verification process”

Add your email to Test users in OAuth consent screen:

  1. Google Cloud Console → APIs & ServicesOAuth consent screen
  2. Under Test usersAdd users
  3. Add email and save

Token expired

Token auto-refreshes. If not working — repeat authorization (Step 2).

Notes

  • @default — ID of the default task list (My Tasks)
  • Google Tasks API does not support service account for regular Gmail — OAuth2 only
  • Token automatically refreshes on expiration