Google Tasks MCP Server
About
Integrates with Google Tasks to allow listing, reading, searching, creating, updating, and deleting tasks.
Details
- Author
- zcaceres
- Repository
- zcaceres/gtasks-mcp
- GitHub stars
- 70
- Downloads
- 12
- License
- MIT License
- Categories
- Productivity, Project Management, Other
- Tags
Jump to
- Search tasks by query string
- List all tasks with optional cursor pagination
- Create tasks with title, notes, and due date
- Update task title, notes, status, and due date
- Delete tasks by task list ID and task ID
- Clear completed tasks from a task list
Setting up with Highlight
Follow these steps to add this server as a custom Highlight plugin:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Google Tasks MCP ServerCommand (node, npx, python, etc.)/opt/homebrew/bin/nodeArguments-
Argument 1
{ABSOLUTE PATH TO FILE HERE}/dist/index.js
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Create a new Google Cloud project
2. Enable the Google Tasks API
3. Configure an OAuth consent screen ("internal" is fine for testing)
4. Add scopes https://www.googleapis.com/auth/tasks
5. Create an OAuth Client ID for application type "Desktop App"
6. Download the JSON file of your client's OAuth keys
7. Rename the key file to gcp-oauth.keys.json and 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.
To install Google Tasks Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @zcaceres/gtasks --client claude
To authenticate and save credentials:
1. Run the server with the auth argument: npm run start auth
2. This will open an authentication flow in your system browser
3. Complete the authentication process
4. Credentials will be saved in the root of this repo (i.e. .gdrive-server-credentials.json)
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"
]
}
}
}
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 ID, title (string, required): Task title, notes (string, optional): Task notes, due (string, optional): Due date. Returns confirmation of task creation.
update
Update an existing task in Google Tasks. Input: taskListId (string, optional): Task list ID, id (string, required): Task ID, uri (string, required): Task URI, title (string, optional): New task title, notes (string, optional): New task notes, status (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 ID, id (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.
- 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 ID
- title (string, required): Task title
- notes (string, optional): Task notes
- due (string, optional): Due date
- Returns confirmation of task creation
- update
- Update an existing task in Google Tasks
- Input:
- taskListId (string, optional): Task list ID
- id (string, required): Task ID
- uri (string, required): Task URI
- title (string, optional): New task title
- notes (string, optional): New task notes
- status (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 ID
- id (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
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"google tasks mcp server": {
"env": {},
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
],
"shell": false,
"command": "/opt/homebrew/bin/node"
}
}
}
Linux
{
"env": [],
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
],
"shell": false,
"command": "/opt/homebrew/bin/node"
}
Macos
{
"env": [],
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
],
"shell": false,
"command": "/opt/homebrew/bin/node"
}
Windows
{
"env": [],
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
],
"shell": false,
"command": "/opt/homebrew/bin/node"
}
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 ID
- title (string, required): Task title
- notes (string, optional): Task notes
- due (string, optional): Due date
- Returns confirmation of task creation
- update
- Update an existing task in Google Tasks
- Input:
- taskListId (string, optional): Task list ID
- id (string, required): Task ID
- uri (string, required): Task URI
- title (string, optional): New task title
- notes (string, optional): New task notes
- status (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 ID
- id (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
1. Create a new Google Cloud project
2. Enable the Google Tasks API
3. Configure an OAuth consent screen ("internal" is fine for testing)
4. Add scopes https://www.googleapis.com/auth/tasks
5. Create an OAuth Client ID for application type "Desktop App"
6. Download the JSON file of your client's OAuth keys
7. Rename the key file to gcp-oauth.keys.json and 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:
1. Run the server with the auth argument: npm run start auth
2. This will open an authentication flow in your system browser
3. Complete the authentication process
4. 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"
]
}
}
}
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.






