Manage Google Tasks with AI
Google Tasks MCP Server lets Claude list, search, create, update, delete, and clear Google Tasks via OAuth.
Why it matters
Integrate Google Tasks with your AI assistant to seamlessly manage your to-do list. View, create, update, and delete tasks using natural language commands.
Outcomes
What it gets done
Search for specific tasks within Google Tasks.
Create new tasks with details like title, notes, and due dates.
Update existing tasks, including changing their status.
Delete tasks or clear completed items from your lists.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-google-tasks | bash Capabilities
Tools your agent gets
Search for tasks in Google Tasks
View all tasks in Google Tasks with optional pagination
Create a new task in Google Tasks with title, notes, and due date
Update an existing task in Google Tasks, including title, notes, status, and due date
Delete a task in Google Tasks
Clear completed tasks from a Google Tasks task list
Overview
Google Tasks MCP Server
Google Tasks MCP Server gives an AI assistant OAuth-authenticated access to search, create, update, delete, and clear Google Tasks directly. Use it when you want Claude to manage your Google Tasks list conversationally instead of using the Tasks app directly.
What it does
Google Tasks MCP Server is an MCP server that integrates with Google Tasks, giving an AI assistant the ability to list, read, search, create, update, and delete tasks directly, instead of you managing them by hand in the Google Tasks app.
When to use - and when NOT to
Use it when you want Claude or another MCP client to manage your Google Tasks conversationally: finding a task, adding a new one with a due date, marking one complete, or clearing out completed tasks from a list. It requires a Google Cloud project with the Google Tasks API enabled and an OAuth Desktop App client with the tasks scope, with credentials saved locally after an interactive auth flow, so it is not something you can use without first completing that Google Cloud setup. It is scoped to Google Tasks specifically, not the broader Google Workspace suite.
Capabilities
- search(query): search for tasks in Google Tasks, returning matching tasks with details
- list(cursor): list all tasks, with optional pagination via a cursor
- create(taskListId, title, notes, due): create a new task, with title required and task list, notes, and due date optional
- update(taskListId, id, uri, title, notes, status, due): update an existing task's title, notes, status (needsAction or completed), or due date
- delete(taskListId, id): delete a task
- clear(taskListId): clear completed tasks from a task list
- Resource access to individual tasks at gtasks:///task_id, exposing title, status, due date, notes, and other metadata, readable alongside the tool-based operations
How to install
Via Smithery, for Claude Desktop:
npx -y @smithery/cli install @zcaceres/gtasks --client claude
To build and run it yourself: create a Google Cloud project, enable the Google Tasks API, configure an OAuth consent screen (internal is fine for testing), add the tasks scope, create an OAuth Client ID for a Desktop App, download its JSON keys, and save them as gcp-oauth.keys.json in the repo root. Build with npm run build, then authenticate with npm run start auth, which opens a browser flow and saves credentials locally. Register it in your desktop app's MCP configuration, pointing at the built dist/index.js:
{
"mcpServers": {
"gtasks": {
"command": "/opt/homebrew/bin/node",
"args": ["{ABSOLUTE PATH TO FILE HERE}/dist/index.js"]
}
}
}
Who it's for
Anyone who wants Claude or another MCP client to manage their Google Tasks list conversationally, searching, creating, updating, and clearing tasks without opening the Google Tasks app.
Source README
Google Tasks MCP Server
This MCP server integrates with Google Tasks to allow listing, reading, searching, creating, updating, and deleting tasks.
Components
Tools
search
- Search for tasks in Google Tasks
- Input:
query(string): Search query - Returns matching tasks with details
list
- List all tasks in Google Tasks
- Optional input:
cursor(string): Cursor for pagination - Returns a list of all tasks
create
- Create a new task in Google Tasks
- Input:
taskListId(string, optional): Task list IDtitle(string, required): Task titlenotes(string, optional): Task notesdue(string, optional): Due date
- Returns confirmation of task creation
update
- Update an existing task in Google Tasks
- Input:
taskListId(string, optional): Task list IDid(string, required): Task IDuri(string, required): Task URItitle(string, optional): New task titlenotes(string, optional): New task notesstatus(string, optional): New task status ("needsAction" or "completed")due(string, optional): New due date
- Returns confirmation of task update
delete
- Delete a task in Google Tasks
- Input:
taskListId(string, required): Task list IDid(string, required): Task ID
- Returns confirmation of task deletion
clear
- Clear completed tasks from a Google Tasks task list
- Input:
taskListId(string, required): Task list ID - Returns confirmation of cleared tasks
Resources
The server provides access to Google Tasks resources:
- Tasks (
gtasks:///<task_id>)- Represents individual tasks in Google Tasks
- Supports reading task details including title, status, due date, notes, and other metadata
- Can be listed, read, created, updated, and deleted using the provided tools
Getting started
- Create a new Google Cloud project
- Enable the Google Tasks API
- Configure an OAuth consent screen ("internal" is fine for testing)
- Add scopes
https://www.googleapis.com/auth/tasks - Create an OAuth Client ID for application type "Desktop App"
- Download the JSON file of your client's OAuth keys
- Rename the key file to
gcp-oauth.keys.jsonand place into the root of this repo (i.e.gcp-oauth.keys.json)
Make sure to build the server with either npm run build or npm run watch.
Installing via Smithery
To install Google Tasks Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @zcaceres/gtasks --client claude
Authentication
To authenticate and save credentials:
- Run the server with the
authargument:npm run start auth - This will open an authentication flow in your system browser
- Complete the authentication process
- Credentials will be saved in the root of this repo (i.e.
.gdrive-server-credentials.json)
Usage with Desktop App
To integrate this server with the desktop app, add the following to your app's server configuration:
{
"mcpServers": {
"gtasks": {
"command": "/opt/homebrew/bin/node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
]
}
}
}
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.