mcp-google-tasks

MCP.Pizza Chef: mstfe

The mcp-google-tasks server is a TypeScript-based Model Context Protocol (MCP) server that integrates with the Google Tasks API to provide structured, real-time access and management of Google Tasks. It exposes the default Google Tasks list and task details in a machine-readable JSON format, allowing LLMs and AI agents to create, list, update, and delete tasks efficiently. Key features include task metadata access, task creation with customizable parameters, and task status management. This server exemplifies core MCP principles by enabling secure, scoped, and observable interactions with Google Tasks, making it ideal for developers building AI-enhanced productivity tools and workflows.

Use This MCP server To

Create new tasks in Google Tasks programmatically List tasks from the default Google Tasks list Update task details such as title, notes, and status Delete tasks from Google Tasks via MCP Integrate Google Tasks management into AI workflows Enable LLMs to interact with Google Tasks data Automate task tracking and completion updates

README

Google Tasks MCP Server

A Model Context Protocol (MCP) server for managing Google Tasks.

This TypeScript-based MCP server demonstrates core MCP concepts by integrating with the Google Tasks API. It allows managing tasks in a structured and efficient way.


Features

Resources

  • Default Task List: Access tasks in the default Google Tasks list via the URI tasks://default.
  • Task Details: Provides metadata about tasks such as title, notes, and completion status.
  • JSON Mime Type: Tasks are represented in a machine-readable JSON format.

Tools

  • create_task: Create a new task in the default task list.
    • Parameters:
      • title (string, optional): Title of the task.
      • notes (string, optional): Additional notes for the task.
      • taskId (string, optional): Unique ID for the task.
      • status (string, optional): Status of the task (e.g., "needsAction" or "completed").
    • Response: Returns the details of the created task.
  • list_tasks: List all tasks in the default task list.
    • Parameters: None.
    • Response: Returns a JSON array of all tasks in the default task list.
  • delete_task: Delete a task from the default task list.
    • Parameters:
      • taskId (string, required): ID of the task to delete.
    • Response: Confirms successful deletion of the task.
  • update_task: Update an existing task in the default task list.
    • Parameters:
      • taskId (string, required): ID of the task to update.
      • title (string, optional): New title for the task.
      • notes (string, optional): New notes for the task.
    • Response: Returns the updated details of the task.
  • complete_task: Toggle the completion status of a task.
    • Parameters:
      • taskId (string, required): ID of the task to toggle completion status.
    • Response: Returns the updated task details, including the new status.

Functionality

  • Provides easy integration with Large Language Models (LLMs) or other applications via MCP.
  • Structured tool definitions make task management intuitive and accessible.
  • Full support for creating, listing, deleting, updating, and toggling the completion status of tasks.

Usage

Running the Server

To start the server:

node build/index.js

Available Commands

  • create_task: Create a new task with optional parameters.
    {
      "title": "Complete project",
      "notes": "Finalize module 3",
      "status": "needsAction"
    }
  • list_tasks: Retrieve all tasks in the default task list.
    • No parameters required.
    • Returns an array of tasks.
  • delete_task: Delete a task by its ID.
    {
      "taskId": "unique-task-id"
    }
  • update_task: Update a task's title, notes, or other details by its ID.
    {
      "taskId": "unique-task-id",
      "title": "Updated task title",
      "notes": "Updated task notes"
    }
  • complete_task: Toggle the completion status of a task.
    {
      "taskId": "unique-task-id"
    }

Example Response for complete_task

Before Completion

{
  "taskId": "unique-task-id",
  "title": "Finish the report",
  "status": "needsAction"
}

After Completion

{
  "taskId": "unique-task-id",
  "title": "Finish the report",
  "status": "completed"
}

Debugging

Since MCP servers communicate over stdio, debugging requires additional tools. We recommend using the MCP Inspector.

To start the inspector:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser, making it easier to test and debug the server.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License.

mcp-google-tasks FAQ

How do I authenticate the mcp-google-tasks server with Google Tasks?
The server uses OAuth 2.0 to authenticate with Google Tasks API, requiring you to provide valid credentials and tokens during setup.
Can I manage multiple task lists with this server?
Currently, the server supports only the default Google Tasks list accessible via the URI tasks://default.
What data format does the server use to represent tasks?
Tasks are represented in a machine-readable JSON format, including metadata like title, notes, and completion status.
How do I create a new task using the mcp-google-tasks server?
Use the create_task tool with optional parameters such as title, notes, taskId, and status to add a new task to the default list.
Is it possible to update the status of a task?
Yes, the server supports updating task status, including marking tasks as 'needsAction' or 'completed'.
Does the server support real-time task updates?
While the server provides current task data on request, real-time push updates depend on client implementation and Google API capabilities.
What programming language is the mcp-google-tasks server built with?
It is built using TypeScript and Node.js, ensuring strong typing and modern JavaScript features.
Can this MCP server be used with different LLM providers?
Yes, it is provider-agnostic and can be integrated with models like OpenAI's GPT-4, Anthropic's Claude, and Google's Gemini.