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:@defaultshow_completed(boolean, optional): Show completed tasks. Default: false
create_task
Create a new task.
Parameters:
title(string, required): Task titletasklist_id(string, optional): Task list ID. Default:@defaultnotes(string, optional): Description/notesdue(string, optional): Due date, format YYYY-MM-DD
update_task
Update an existing task.
Parameters:
task_id(string, required): Task IDtasklist_id(string, optional): Task list ID. Default:@defaulttitle(string, optional): New titlenotes(string, optional): New descriptiondue(string, optional): New due date, format YYYY-MM-DD
complete_task
Mark a task as completed.
Parameters:
task_id(string, required): Task IDtasklist_id(string, optional): Task list ID. Default:@default
delete_task
Delete a task.
Parameters:
task_id(string, required): Task IDtasklist_id(string, optional): Task list ID. Default:@default
Setup
Step 1: Create OAuth2 Credentials
- Open Google Cloud Console
- Select project (or create new)
- APIs & Services → Library → find Tasks API → Enable
- APIs & Services → Credentials → Create Credentials → OAuth client ID
- 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!)
- Application type: Desktop app
- Create → Download JSON
- 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 --authOutputs 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)
| Parameter | Value |
|---|---|
| OAuth Credentials | ~/.takopi/credentials/tasks-oauth.json |
| Token File | ~/.takopi/credentials/tasks-token.json |
| Google Account | ccherya@gmail.com |
| Status | ✅ Authorized (2026-02-17) |
Environment Variables
GOOGLE_OAUTH_CREDENTIALS(required): Path to OAuth2 credentials JSONGOOGLE_TOKEN_FILE(optional): Path to token file. Default:tasks-token.jsonnext 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:
- Google Cloud Console → APIs & Services → OAuth consent screen
- Under Test users → Add users
- 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
Related
- Calendar MCP — uses service account
- How to Build an MCP Server
- Google Service Account Setup