google-tasks-mcp-server
Google Tasks を操作する MCP サーバーで、タスクリストとタスクの CRUD・並べ替え・完了管理などができる。
タスクリスト: 一覧・取得・作成・名前変更・削除
タスク: 一覧(期限・完了・更新日時・非表示・削除済みなどのフィルタ付き)・取得・作成(parent でサブタスク化)
タスク更新: 部分更新(タイトル・メモ・期限・ステータス)
完了管理: complete-task で完了/未完了をトグル、clear-completed-tasks で完了タスクを一括非表示
移動/並べ替え: move-task で previous/parent/destinationTasklist を指定して順序変更・サブタスク化・別リスト移動
既定のタスクリストは @default を使用可能
Provides tools for managing Google Tasks, including creating, listing, updating, deleting, and completing tasks, as well as managing task lists, moving tasks, and hiding completed tasks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-tasks-mcp-server What tasks are due today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
google-tasks-mcp-server
An MCP server (stdio) for operating Google Tasks. It provides CRUD for task lists and tasks, completion toggling, reordering/moving, and batch-hiding of completed tasks.
Google's official Workspace MCP servers (Gmail / Calendar / Drive, etc.) do not include Tasks, so I built this to fill that gap.
Design principles
Credentials are passed via a file. You specify the path to the
client_secret_*.jsondownloaded from GCP in an environment variable, so you do not have to write the client secret in plain text in the MCPconfiguration file.First-time authentication is done in a separate CLI. Because the MCP server occupies stdout with JSON-RPC, mixing in browser launches or logs would break the protocol. Pulling authentication into
npm run authavoids that conflict and makes failures easier to isolate.Tasks-Only scope. It only requests
https://www.googleapis.com/auth/tasks.Updates use
patch.updatewould erase unspecified fields, so partial updates always usepatch.
Related MCP server: Mini Task MCP Server
Setup
1. Prepare GCP
Enable Google Tasks API in APIs & Services → Library
Create an OAuth 2.0 Clientes ID in Credentials, and use Desktop app as the application type.
Because a Desktop app can use any loopback port as its configured redirect target, you do not need to register a redirect URI.
Downloade the JSON (
client_secreat_xxx.json).If the OAuth consent screen is in “Testing” status, add your own Google account as a test user.
2. Build
npm install
npm run build3. First-time authentication
Authenticate by specifying the path to the client_secret_*.json. A browser will open, so approve it.
GOOGLE_TASKS_CLIENT_SECRET_PATH=~/path/to/client_secret_xxx.json npm run authThe token are saved to ~/.config/google-tasks-mcp-server/token.json with permissions 0600. From then on, the refresh token refreshes it automatically, so this step is required only the first time.
4. Register with the MCP client
For Claude Code:
claude mcp add google-tasks \
-e GOOGLE_TASKS_CLIENT_SECRET_PATH=$HOME/path/to/client_secret_xxx.json \
-- node /absolute/path/to/google-tasks-mcp-server/dist/index.jsIf you write it directly in .mcp.json:
{
"mcpServers": {
"google-tasks": {
"command": "node",
"args": ["/absolute/path/to/google-tasks-mcp-server/dist/index.js"],
"env": {
"GOOGLE_TASKS_CLIENT_SECRET_PATH": "/absolute/path/to/client_secret_xxx.json"
}
}
}
}Environment variables
Variable | Required | Default | Description |
| Yes | — | Path to the |
|
| Location where auth token is saved |
Tools
When omitted, the tasklist defaults to @not (the default task list).
Tasks lists
Tool | Description |
| Lists task lists. Get the IDs to pass to other tools from here. |
| Gets a single task list. |
| Creates a task list. |
| Renames a task list. |
| Deletes a task list (and its tasks). |
Tasks
Tool | Description |
| Lists tasks. Supports by due date and update timestamp. |
| Gets a single task. |
| Creates a task. When |
| Partially updates a task (only the specified items are changed). |
| Tooggle between complete/incomplete. |
| Reorders, turns into a subtask, or moves to another list. |
| Deletes a task. |
| Batch-hides completed tasks. |
Notes on usage
No time is stored in the due value.
dueis passed as RFC 3339, but Google Tasks retains only the date portion.Retrieving completed tasks requires
showHidden.showCompleted: truealone does not return tasks completed by other clients, so this server automatically addsshowHiddenwhenshowCompleted: trueis used.clear-completed-tasksis not a deletion. It only hides them, and they can be retrieved withshowHidden: true.Due-date filters are corrected to be inclusive of the specified date. Google Tasks API’s
dueMaxis exclusive on date basis; even if you pass the day at 23:59:59, zero tasks due that day are returned (you need to pass the next day at 0:00). Because that is counterintuitive, this server normalizesdueMinanddueMaxto date boundaries so both filters include the specified date.
Development
npm run typecheck # 型チェックのみ
npm run build # dist/ に出力
npm run auth # 初回認証License
MIT
Setup script
After completing the GCP console steps (enabling Google Tasks API, creating an OAuth 2.0 desktop app client, and downloadeing the JSON), you can run everything else at once.
./scripts/setup.shIt automatically searches ~/Downloads for client_secret*.json , verifies its type, places it in ~/.config/google-tasks-mcp-server/ with permission 600, then runs to build, authenticates the first time, and registers the MCP server. If the file is elsewhere, pass its path.
./scripts/setup.sh /path/to/client_secret.jsonAvailable Tools
13 toolsclear-completed-tasks完了タスクの一括非表示ADestructive
タスクリスト内の完了済みタスクをまとめて非表示にする。一覧には出なくなるが、showHidden: true を指定すれば取得できる。
Inputs: tasklist.
complete-taskタスクを完了にするC
タスクを完了にする。completed を false にすると未完了に戻す。
Inputs: task (required), tasklist, completed.
create-taskタスク作成A
タスクを作成する。parent を指定するとサブタスクになる。
Inputs: title (required), due, notes, parent, +2 more.
create-tasklistタスクリスト作成B
新しいタスクリストを作成する。
Inputs: title (required).
delete-taskタスク削除BDestructive
タスクを削除する。取り消せない。
Inputs: task (required), tasklist.
delete-tasklistタスクリスト削除ADestructive
タスクリストを削除する。中のタスクもすべて消える。取り消せない。
Inputs: tasklist (required).
get-taskタスク取得BRead-only
タスク 1 件の詳細を取得する。
Inputs: task (required), tasklist.
get-tasklistタスクリスト取得BRead-only
指定したタスクリストの情報を取得する。
Inputs: tasklist.
list-tasklistsタスクリスト一覧ARead-only
認証中のアカウントが持つタスクリストを一覧する。他ツールに渡す tasklist ID はここで得る。
Inputs: pageToken, maxResults.
list-tasksタスク一覧ARead-only
タスクリスト内のタスクを一覧する。期限や更新日時での絞り込みができる。API 経由で完了にしたタスクは既定でも一覧に含まれる(clear-completed-tasks で非表示にできる)。
Inputs: dueMax, dueMin, tasklist, pageToken, +7 more.
move-taskタスクの移動・並べ替えA
タスクの位置を変える。parent でサブタスク化、previous で並び順、destinationTasklist で別のタスクリストへ移動できる。
Inputs: task (required), parent, previous, tasklist, +1 more.
update-taskタスク更新A
タスクの内容を部分更新する。指定した項目だけが変わり、他は保持される。完了にするだけなら complete-task を使う。
Inputs: task (required), due, notes, title, +2 more.
update-tasklistタスクリスト名の変更B
タスクリストの名前を変更する。
Inputs: title (required), tasklist.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Every tool has a clearly distinct purpose: tasklist CRUD, task CRUD, and specific actions (complete, move, clear). No two tools overlap in functionality, and the descriptions reinforce their boundaries.
All tool names follow a consistent verb_noun pattern in lowercase with hyphens (e.g., list-tasklists, get-task, delete-task). The naming is uniform and predictable across both tasklists and tasks.
With 13 tools, the set is well-scoped for a Google Tasks server. It covers both tasklists and tasks with CRUD operations plus useful extras (complete, move, clear-completed) without unnecessary bloat.
The tool surface is complete for the domain: full CRUD for tasklists and tasks, plus lifecycle operations like completion and moving. There are no missing essential operations or dead ends.
Maintenance
Related MCP Connectors
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Create, list, and complete todo items through MCP.
Official Todoist MCP server. Manage tasks and projects. Hosted, no API key needed.
Simple, fast todo app: manage tasks, projects and tags from Claude and other MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceIntegrates with Google Tasks to enable searching, listing, creating, updating, and deleting tasks through MCP tools. It provides a comprehensive interface for managing task lists and individual task details via the Google Tasks API.MIT
- AlicenseBqualityDmaintenanceEnables task management via MCP tools for creating, listing, updating, completing, and deleting tasks with JSON file storage.6ISC
- AlicenseNot gradedqualityDmaintenanceProvides an MCP interface to Google Tasks, enabling reading, creating, updating, and completing tasks and task lists, with support for date filtering to generate weekly reports.71 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to manage Google Tasks, including creating, updating, deleting, and listing tasks and task lists, with optional due dates and subtasks.71 npmMIT