gtasks-mcp
by: zcaceres
A Google Tasks Model Context Protocol Server for Claude
📌Overview
Purpose: This MCP server integrates with Google Tasks to facilitate task management activities such as listing, searching, creating, updating, and deleting tasks.
Overview: The Google Tasks MCP Server provides a seamless interface for managing tasks directly from Google Tasks. It supports various operations that users need to effectively organize their tasks, enhancing productivity and task visibility.
Key Features:
-
Search: Allows users to search for tasks using a query string, returning a list of matching tasks along with their details to facilitate quick navigation and task management.
-
List: Provides a complete list of all tasks within Google Tasks, with optional pagination support through a cursor, enabling users to view all their tasks efficiently.
-
Create: Enables the creation of new tasks with customizable attributes, including title, notes, and due date, allowing users to easily add tasks to their lists.
-
Update: Facilitates the updating of existing tasks by allowing users to change various attributes such as title, notes, status, and due date, ensuring their task lists remain current.
-
Delete: Offers the ability to delete specific tasks from task lists, allowing users to manage their tasks by removing any that are no longer needed.
-
Clear: Provides a feature to clear completed tasks from a specific task list, helping users maintain an organized and clutter-free task environment.
Google Tasks MCP Server
This MCP server integrates with Google Tasks, allowing you to list, read, search, create, update, and delete 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.
- Input:
cursor
(string, optional): 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
- Tasks (
gtasks:///<task_id>
)- Represents individual tasks in Google Tasks.
- Supports reading task details including title, status, due date, notes, and other metadata.
Getting Started
- Create a new Google Cloud project.
- Enable the Google Tasks API.
- Configure an OAuth consent screen (use "internal" for testing).
- Add scopes
https://www.googleapis.com/auth/tasks
. - Create an OAuth Client ID for "Desktop App".
- Download the JSON file of your client's OAuth keys.
- Rename the key file to
gcp-oauth.keys.json
and place it in the root of this repo.
Make sure to build the server with either npm run build
or npm run watch
.
Installing via Smithery
To install Google Tasks Server automatically via Smithery:
npx -y @smithery/cli install @zcaceres/gtasks --client claude
Authentication
To authenticate and save credentials:
- Run the server with the
auth
argument: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 as
.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"
]
}
}
}