task-synchronizer-gsuite-adapter
An intermediary service layer interfacing with Google Tasks, enabling comprehensive manipulation of task items: retrieval (listing, searching), detailed inspection, creation of new entries, modification of existing records, and complete removal.
Author

zcaceres
Quick Info
Actions
Tags
Google Tasks Integration Service via MCP
This service mechanism connects to the Google Tasks API, facilitating full lifecycle management for user tasks, including enumeration, retrieval, querying, provisioning, modification, and destruction.
Functionality Modules
Operations Catalog
- execute_search
- Performs a query against the collection of entries in Google Tasks.
- Input parameter:
query(string): The search predicate. -
Output: A collection of matching task records with associated metadata.
-
fetch_all
- Retrieves the entire roster of tasks resident within Google Tasks.
- Optional input:
cursor(string): Token required for segmented data retrieval (pagination). -
Output: An aggregated list representing all tasks.
-
provision
- Introduces a novel task item into the Google Tasks system.
- Input requirements:
taskListId(string, optional): Identifier for the target task list.title(string, mandatory): The primary designation for the task.notes(string, optional): Supplementary descriptive text.due(string, optional): The scheduled completion deadline.
-
Output: A confirmation signal upon successful item instantiation.
-
modify
- Applies changes to an already existing task entity.
- Input parameters:
taskListId(string, optional): The identifier of the containing task list.id(string, mandatory): Unique identifier of the task to alter.uri(string, mandatory): Canonical Uniform Resource Identifier for the task.title(string, optional): Revised title.notes(string, optional): Updated ancillary information.status(string, optional): State transition ("needsAction" or "completed").due(string, optional): Revised temporal limit.
-
Output: A confirmation message verifying the record alteration.
-
retire
- Permanently eradicates a specified task item.
- Input parameters:
taskListId(string, mandatory): Task list identifier.id(string, mandatory): Unique identifier of the target task.
-
Output: A notification confirming the item's removal.
-
purge_completed
- Empties all tasks marked as finished from a designated task list.
- Input:
taskListId(string, mandatory): The specific list to clean. - Output: Confirmation that completed items have been expunged.
Data Model References
The service exposes access points corresponding to Google Tasks structures:
- Task Entities (
gtasks:///<task_id>) - These represent discrete to-do items within the Google Tasks environment.
- They facilitate the viewing of detailed attributes like title, completion status, deadlines, notes, and ancillary metadata.
- Access is granted via the operational modules listed above for listing, direct viewing, creation, editing, and removal.
Initialization Sequence
- Establish a new Google Cloud Platform project
- Activate the Google Tasks API service
- Configure the OAuth authorization screen ("internal" designation is acceptable for preliminary verification)
- Specify authorization scopes:
https://www.googleapis.com/auth/tasks - Generate an OAuth Client Identifier for the "Desktop App" client type.
- Secure the resulting JSON file detailing the client's OAuth credentials.
- Rename the downloaded file to
gcp-oauth.keys.jsonand situate it in the root directory of this repository.
Ensure the service construct is compiled using either npm run build or maintained via npm run watch.
Deployment via Smithery
To incorporate the Google Tasks Service for use within Claude Desktop automatically through Smithery:
npx -y @smithery/cli install @zcaceres/gtasks --client claude
Credential Establishment
To initialize authentication and persist the resulting tokens:
- Initiate the service execution utilizing the
authparameter:npm run start auth - This action will trigger an authorization sequence within your default web browser.
- Successfully finalize the multi-step authorization procedure.
- The necessary credentials will be persisted within the repository root, typically as
.gdrive-server-credentials.json.
Integration with Local Application
To incorporate this service endpoint into your desktop client's configuration, amend your server settings manifest as follows:
{
"mcpServers": {
"gtasks": {
"command": "/opt/homebrew/bin/node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
]
}
}
}
