Skip to main content
Glama
README.md
# Google Tasks MCP Server

A Model Context Protocol (MCP) server that provides access to your Google Tasks. This server enables LLMs (like Claude) to list, create, update, complete, and delete your Google Tasks.

## Features

- **List Task Lists**: View all your task lists.
- **Manage Tasks**: Create, update, delete, and complete tasks.
- **Task Details**: Set due dates, notes, and move tasks (subtasks).
- **FastMCP**: Built using the `fastmcp` library for easy integration.

## Setup

### Prerequisites

- Python 3.10 or higher
- A Google Cloud Platform (GCP) Project
- `uv` (recommended) or `pip`

### Installation

1.  Clone this repository:
    ```bash
    git clone https://github.com/yourusername/gtasks-mcp.git
    cd gtasks-mcp
    ```

2.  Create a virtual environment and install dependencies:
    ```bash
    # Using uv (faster)
    uv venv
    source .venv/bin/activate
    uv pip install -r requirements.txt

    # OR using pip
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    ```

### Google Cloud Setup

To use this server, you need to set up a Google Cloud project and enable the Tasks API.

1.  **Create a Project**: Go to the [Google Cloud Console](https://console.cloud.google.com/) and create a new project.
2.  **Enable API**:
    *   Go to **APIs & Services** > **Library**.
    *   Search for "Google Tasks API" and click **Enable**.
3.  **Configure Consent Screen**:
    *   Go to **APIs & Services** > **OAuth consent screen**.
    *   Select **External** (unless you are a Google Workspace user and want Internal).
    *   Fill in the required App Information (App name: "GTasks MCP", User support email, Developer contact email).
    *   Click **Save and Continue**.
    *   **Scopes**: Click **Add or Remove Scopes**. Filter for `tasks`. Select `https://www.googleapis.com/auth/tasks` (Access to your tasks).
    *   Click **Update** and then **Save and Continue**.
    *   **Test Users**: Add your own email address as a test user. This is critical while the app is in "Testing" mode.
4.  **Create Credentials**:
    *   Go to **APIs & Services** > **Credentials**.
    *   Click **Create Credentials** > **OAuth client ID**.
    *   Application type: **Desktop app**.
    *   Name: "GTasks MCP User".
    *   Click **Create**.
5.  **Download Client Secret**:
    *   Download the JSON file for your new OAuth client.
    *   **Rename** the file to `client_secret.json`.
    *   **Move** it to the root directory of this project.

### Usage with Claude for Desktop

Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "google-tasks": {
      "command": "/absolute/path/to/your/venv/bin/python",
      "args": [
        "/absolute/path/to/gtasks-mcp/server.py"
      ]
    }
  }
}
```

*Note: Replace `/absolute/path/to/` with the actual full paths on your machine.*

## Authentication

When you first run the server (or when Claude tries to use it), it will open a browser window asking you to log in with your Google account.
1.  Select the account you added as a Test User.
2.  You will likely see a "Google hasn't verified this app" warning. This is expected for personal testing apps.
3.  Click **Advanced** > **Go to GTasks MCP (unsafe)**.
4.  Click **Continue** to grant access.
5.  The browser will show "The authentication flow has completed". You can close it.

A `token.json` file will be created to store your credentials for future use.

## License

MIT