zcaceres/gtasks-mcp

Communication

This MCP server integrates with Google Tasks to allow listing, reading, searching, creating, updating, and deleting tasks.

TypeScript codebaseCloud Service

Installation

Claude Desktop

Installation Command

npx -y @smithery/cli install @zcaceres/gtasks --client claude

Configuration

{
  "mcpServers": {
    "gtasks": {
      "command": "/opt/homebrew/bin/node",
      "args": [\
        "{ABSOLUTE PATH TO FILE HERE}/dist/index.js"\
      ]
    }
  }
}

README

Google Tasks MCP Server

gtasks mcp logosmithery badge

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"\
      ]
    }
  }
}