MCP HubMCP Hub
zcaceres

gtasks-mcp

by: zcaceres

A Google Tasks Model Context Protocol Server for Claude

33created 17/12/2024
Visit
Google
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

  1. Create a new Google Cloud project.
  2. Enable the Google Tasks API.
  3. Configure an OAuth consent screen (use "internal" for testing).
  4. Add scopes https://www.googleapis.com/auth/tasks.
  5. Create an OAuth Client ID for "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 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:

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