io.github.alvinjchoi/gtasks-mcp
io.github.alvinjchoi/gtasks-mcp · 10 stars · JavaScript · MIT
MCP server Manage Google Tasks via MCP: list, search, create, update, move, and clear tasks.
Install
The repo has no one-line install. Follow its README.
Published as
- npm
@alvincrave/gtasks-mcpstdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
GOOGLE_CLIENT_IDRequired | Env var | Google OAuth client ID |
GOOGLE_CLIENT_SECRETRequired · Secret | Env var | Google OAuth client secret |
GOOGLE_REFRESH_TOKENRequired · Secret | Env var | Google OAuth refresh token with Tasks scope |
Files
Google Tasks MCP Server
A Model Context Protocol (MCP) server for Google Tasks. Manage task lists and tasks through natural language in Claude Desktop and other MCP clients.
Forked from zcaceres/gtasks-mcp with stronger auth options, multi-list support, pagination, and hierarchy tools.
Registry name: io.github.alvinjchoi/gtasks-mcp
npm: @alvincrave/gtasks-mcp
Features
- List and search tasks (optionally scoped to one task list)
- Paginate through all tasks (no silent 100-task cap)
- Create, update, delete, and clear completed tasks
- Discover task lists (
list_task_lists) - View parent/child hierarchy (
list_with_tree) - Reorder, nest, or move tasks across lists (
move) - OAuth2 auth via env vars, credential files, or interactive
auth - Docker support
Installation
Recommended (Claude Desktop / any MCP client) — runs the latest published npm package:
npx -y @alvincrave/gtasks-mcp
Or install globally:
npm install -g @alvincrave/gtasks-mcp
From source
git clone https://github.com/alvinjchoi/gtasks-mcp.git cd gtasks-mcp npm install npm run build
Setup
Option A — Environment variables (Claude Desktop)
- Create a Google Cloud project and enable the Google Tasks API.
- Create OAuth 2.0 Desktop credentials and obtain a refresh token (OAuth Playground with scope
https://www.googleapis.com/auth/tasksworks). - Configure Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):
{
"mcpServers": {
"gtasks": {
"command": "npx",
"args": ["-y", "@alvincrave/gtasks-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id_here",
"GOOGLE_CLIENT_SECRET": "your_client_secret_here",
"GOOGLE_REFRESH_TOKEN": "your_refresh_token_here"
}
}
}
}
Option B — Credential files (local / shared with other Google MCP servers)
- Download your OAuth client JSON (
gcp-oauth.keys.json). - Authenticate once:
export GTASKS_CREDENTIALS_PATH=/path/to/gcp-oauth.keys.json export GTASKS_TOKEN_PATH=/path/to/.gtasks-server-credentials.json node dist/index.js auth
- Run the server with the same env vars set (or place
gcp-oauth.keys.jsonin the project root and use the defaults).
Aliases also accepted:
| Purpose | Preferred | Alias |
|---|---|---|
| OAuth client keys | GTASKS_CREDENTIALS_PATH |
GOOGLE_OAUTH_KEYS_PATH |
| Saved tokens | GTASKS_TOKEN_PATH |
GOOGLE_TASKS_CREDENTIALS_PATH |
Option C — Home config file
Create ~/.gtasks-credentials.json:
{
"clientId": "your_client_id",
"clientSecret": "your_client_secret",
"refreshToken": "your_refresh_token"
}
Tools
| Tool | Description |
|---|---|
search |
Search tasks by title/notes. Optional taskListId. |
list |
List tasks (all lists, or one via taskListId). Fully paginated. |
list_task_lists |
List task list names and IDs. |
list_with_tree |
Tree view for one list (parent/child, position order). |
move |
Reorder, nest/un-nest, or move across lists. |
create |
Create a task (title required; optional notes/due/taskListId). |
update |
Patch a task (only provided fields change). |
delete |
Delete a task. |
clear |
Clear completed tasks from a list. |
Usage examples
show my task lists
list tasks in list <id>
search for tasks containing "meeting"
create a task named "Prepare presentation" due 2026-07-20
show the task tree for list <id>
move task <id> under parent <parentId>
mark task <id> completed
Docker
docker build -t gtasks-mcp . docker run -i \ -e GOOGLE_CLIENT_ID=your_client_id \ -e GOOGLE_CLIENT_SECRET=your_client_secret \ -e GOOGLE_REFRESH_TOKEN=your_refresh_token \ gtasks-mcp
Development
npm install npm run build npm start
Auth check / interactive login:
npm run build node dist/index.js auth
Security Notes
- Treat refresh tokens like passwords
- Prefer env vars or ignored credential files — never commit them
- Rotate credentials if they leak
Contributors
- ArtyMcLabin — pagination,
taskListIdfiltering,list_task_lists,list_with_tree,move, and file-based auth (#1) - zcaceres — original Google Tasks MCP server
- alvinjchoi — fork maintenance, Smithery/npm packaging
See CONTRIBUTORS.md.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 10
- License
- MIT
- Language
- JavaScript
- Last push
- 2026-07-19
- Forks
- 4
- MCP Registry
- io.github.alvinjchoi/gtasks-mcp
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k