google-tasks-mcp
MCP server for Google Tasks that enables reading, creating, editing, completing, reordering, and deleting tasks via the Google Tasks API.
README
google-tasks-mcp
An MCP server for Google Tasks. It uses the official Google Tasks API to read, create, edit, complete, reorder and delete your tasks.
The tool surface mirrors what a person can do in the Google Tasks app, which keeps it plain and adaptable to however you use Tasks. It works with any MCP client, including Claude Code and Claude Desktop, and anything else that speaks MCP over stdio.
Status: read and write tools are implemented and in daily use.
Setup
1. Google Cloud (one time, about 15 minutes)
You bring your own OAuth client. Your tasks and tokens never leave your machine.
-
Create a project at console.cloud.google.com.
-
Enable the Google Tasks API (APIs & Services, then Library, then "Google Tasks API", then Enable).
-
Configure the OAuth consent screen: user type External, add the scope
https://www.googleapis.com/auth/tasks, and add yourself as a test user. -
Set the publishing status to "In production." You will see an "unverified app" warning once when you authorize, which you can click through. If you leave the status at Testing, Google revokes your refresh token every 7 days and the server will appear to break for no reason.
-
Credentials, then Create credentials, then OAuth client ID, with application type Desktop app.
-
Download the JSON and save it as:
- Windows:
%APPDATA%\google-tasks-mcp\gcp-oauth.keys.json - macOS/Linux:
~/.config/google-tasks-mcp/gcp-oauth.keys.json
Or put it anywhere and set
GTASKS_CREDENTIALS_PATH. - Windows:
2. Install and authorize
npm install
npm run auth
That opens your browser once, completes a loopback and PKCE flow, and writes a refresh token to
%APPDATA%\google-tasks-mcp\tokens.json (or ~/.config/google-tasks-mcp/tokens.json). The token
is never stored in this repo and never logged.
3. Verify
npm run smoke
Builds the server, launches it over stdio as a real MCP client would, and calls every read tool against your account. It never writes.
4. Connect a client
For Claude Code:
claude mcp add google-tasks -- node /absolute/path/to/google-tasks-mcp/dist/index.js serve
For Claude Desktop, add this to claude_desktop_config.json:
{
"mcpServers": {
"google-tasks": {
"command": "node",
"args": ["/absolute/path/to/google-tasks-mcp/dist/index.js", "serve"]
}
}
}
Use an absolute path to node if a bare node is not on your client's PATH.
Tools
Reading
| Tool | Purpose |
|---|---|
list_task_lists |
Every list, with a short alias and the real id |
list_tasks |
Tasks by list and/or due-date range; include selects open/completed/all |
search_tasks |
Substring match over titles and notes |
get_task |
Full detail for one task, including notes and links |
Writing
| Tool | Purpose |
|---|---|
create_task / create_tasks |
Add one task or several; supports notes, due date, subtasks |
update_task |
Change title, notes or due date. Patch-only, so untouched fields survive |
complete_tasks / uncomplete_tasks |
Tick off or reopen |
move_task |
Reorder, reparent, or move to another list |
delete_task |
Permanent. Guards against repeating-task series |
clear_completed |
Hide completed tasks in a list |
create_task_list / delete_task_list |
Manage lists; deletion requires confirm |
Set GTASKS_READONLY=1 to run with the read-only Google scope. The write tools are then not
registered at all.
list_id accepts a real id, the list title, or the alias shown by list_task_lists, so a handle
copied from earlier output resolves without another lookup.
Environment variables
| Variable | Purpose |
|---|---|
GTASKS_CREDENTIALS_PATH |
Path to the Desktop-app OAuth client JSON |
GTASKS_TOKEN_PATH |
Path to the stored token file |
GTASKS_READONLY=1 |
Request tasks.readonly instead of read/write |
GTASKS_TIMEZONE |
Timezone used to decide what "today" means. Defaults to the host's |
The two path overrides let one install serve multiple Google accounts.
What the API allows
These are properties of the Google Tasks API itself, and they shape how the server behaves.
Repeating tasks are not available. The API has no recurrence field. Repeating tasks created in the Google Tasks app work normally and roll forward on Google's side, but through the API they appear as ordinary one-off tasks, and a repeat cannot be set. This affects every third-party Google Tasks integration equally.
Because repeats are invisible, deleting one instance through the API
can delete the entire series. delete_task
guards against this by refusing when another task in the same list has the exact same title, which
is the only available hint. Pass force: true to override.
Due dates are calendar dates. The API discards the time portion, so a due time can be neither set nor read.
Other constraints handled internally: results are paginated (maxResults defaults to 20 and
caps at 100), updates use patch rather than update so untouched fields survive, and completed
tasks become hidden, so reading them needs include set to completed or all. There is no
search endpoint, so search_tasks filters client-side.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。