
Google Tasks MCP Server
Manage Google Tasks from your AI assistant — list, search, create, update, and delete tasks.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @smithery/cli install @zcaceres/gtasks --client claudePaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"google-tasks-mcp-server": {
"command": "/opt/homebrew/bin/node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
]
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Node.js
- A Google Cloud project with the Google Tasks API enabled
- An OAuth consent screen configured with the scope https://www.googleapis.com/auth/tasks
- An OAuth Client ID for application type "Desktop App", with the key file saved as gcp-oauth.keys.json in the repo root
- Build the server with `npm run build` (or `npm run watch`)
About Google Tasks MCP Server
Google Tasks MCP Server connects an MCP client to the Google Tasks API. It supports listing, reading, searching, creating, updating, deleting, and clearing tasks. Individual tasks are also exposed as MCP resources under gtasks:///<task_id> URIs, supporting reading of task details such as title, status, due date, and notes. The server runs over stdio and authenticates through Google OAuth.
Tools & capabilities (6)
searchSearch for tasks in Google Tasks. Input: query (string). Returns matching tasks with details.
listList all tasks in Google Tasks. Optional input: cursor (string) for pagination. Returns a list of all tasks.
createCreate a new task. Inputs: taskListId (string, optional), title (string, required), notes (string, optional), due (string, optional). Returns confirmation of task creation.
updateUpdate an existing task. Inputs: taskListId (string, optional), id (string, required), uri (string, required), title (string, optional), notes (string, optional), status (string, optional: "needsAction" or "completed"), due (string, optional). Returns confirmation of task update.
deleteDelete a task. Inputs: taskListId (string, required), id (string, required). Returns confirmation of task deletion.
clearClear completed tasks from a Google Tasks task list. Input: taskListId (string, required). Returns confirmation of cleared tasks.
When to use it
- Let an AI assistant add tasks to your Google Tasks while you work
- Search and list your existing Google Tasks by natural-language query
- Update task titles, notes, due dates, or completion status conversationally
- Clean up a task list by clearing completed tasks
Security notes
Requires Google OAuth credentials with the `https://www.googleapis.com/auth/tasks` scope. You must create your own Google Cloud project and OAuth Client ID (Desktop App). The OAuth key file (`gcp-oauth.keys.json`) and saved credentials (`.gdrive-server-credentials.json`) are stored in the repo root — keep them out of version control. The server has full read/write/delete access to your Google Tasks.
Google Tasks MCP Server FAQ
How do I authenticate?
Run the server with the `auth` argument (`npm run start auth`). This opens an authentication flow in your system browser; after completing it, credentials are saved in the repo root as `.gdrive-server-credentials.json`.
Can I install it automatically?
Yes. For Claude Desktop you can install it via Smithery with `npx -y @smithery/cli install @zcaceres/gtasks --client claude`.
What OAuth scope does it need?
It requires the `https://www.googleapis.com/auth/tasks` scope, which grants full read/write access to your Google Tasks.
Alternatives to Google Tasks MCP Server
Compare all alternatives →Self-hosted MCP server for Jira and Confluence Cloud and Server/Data Center.
Create, read, and modify Excel workbooks with your AI agent — no Microsoft Excel required.
Official Notion server to read, search, create, and update pages and databases in your workspace.
Compare Google Tasks MCP Server with: