Skip to main content
Glama
Kouta-i5

google-tasks-mcp-server

by Kouta-i5

google-tasks-mcp-server

Google Tasks를 조작하는 MCP 서버(stdio). 태스크 목록과 태스크의 CRUD, 완료 토글, 정렬·이동, 완료 태스크 일괄 숨김을 제공한다.

Google 공식의 Workspace MCP 서버 그룹(Gmail / Calendar / Drive 등)에는 Tasks가 포함되어 있지 않아서, 그 빈틈을 메우기 위해 만들었다.

설계 방침

  • 인증 정보는 파일로 전달한다. GCP에서 다운로드한 client_secret_*.json의 경로를 환경 변수로 지정한다. MCP 설정 파일에 Client Secret을 평문으로 쓰지 않아도 된다.

  • 최초 인증은 독립된 CLI로 수행한다. MCP 서버는 stdout을 JSON-RPC로 점유하고 있어서, 브라우저 기동이나 로그가 섞이면 프로토콜이 깨진다. 인증을 npm run auth로 분리해 충돌을 피하고, 실패 시 원인 분리도 쉬워진.

  • 스코프는 Tasks만. https://www.googleapis.com/auth/tasks만 요구한다.

  • 업데이트는 patch. update는 미지정 필드를 지워버리므로, 부분 업데이트에는 항상 patch를 사용한다.

Related MCP server: Mini Task MCP Server

셋업

1. GCP 준비

  1. APIs & Services → Library에서 Google Tasks API를 활성화한다.

  2. Credentials에서 OAuth 2.0 클라이언트 ID를 생성한다. 애플리케이션 유형은 데스크톱 앱.

    • 데스크톱 앱 유형은 임의의 루프백 포트를 리다이렉트 대상으로 사용할 수 있으므로, 리다이렉트 URI 등록은 필요 없다.

  3. JSON을 다운로드한다(client_secret_xxx.json).

  4. OAuth 동의 화면이 "테스트" 상태인 경우, 자신의 Google 계정을 테스트 사용자로 추가한다.

2. 빌드

npm install
npm run build

3. 최초 인증

client_secret_*.json 경로를 지정하여 인증한다. 브라우저가 열리므로 동의한다.

GOOGLE_TASKS_CLIENT_SECRET_PATH=~/path/to/client_secret_xxx.json npm run auth

토큰은 ~/.config/google-tasks-mcp-server/token.json에 권한 0600으로 저장된다. 이후는 리프레시 토큰으로 자동 갱신되므로, 이 작업은 최초 1회만 하면 된다.

4. MCP 클라이언트에 등록

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.js

.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"
      }
    }
  }
}

환경 변수

변수

필수

기본값

설명

GOOGLE_TASKS_CLIENT_SECRET_PATH

GCP에서 다운로드한 client_secret_*.json의 경로

GOOGLE_TASKS_TOKEN_PATH

~/.config/google-tasks-mcp-server/token.json

인증 토큰의 저장 위치

도구

tasklist는 생략 시 @default(기본 태스크 목록)를 사용한다.

태스크 목록

도구

설명

list-tasklists

태스크 목록을 조회한다. 다른 도구에 넘길 ID는 여기서 얻을 수 있다.

get-tasklist

태스크 목록 1건을 조회한다.

create-tasklist

태스크 목록을 생성한다.

update-tasklist

태스크 목록 이름을 변경한다.

delete-tasklist

태스크 목록을 삭제한다(내부의 태스크도 함께 삭제된다).

태스크

도구

설명

list-tasks

태스크를 조회한다. 기한·갱신 일시로 필터링할 수 있다.

get-task

태스크 1건을 조회한다.

create-task

태스크를 생성한다. parent를 지정하면 하위 태스크가 된다.

update-task

태스크를 부분 업데이트한다(지정한 항목만 변경).

complete-task

완료·미완료 상태를 토글한다.

move-task

정렬, 하위 태스크화, 다른 목록으로의 이동을 수행한다.

delete-task

태스크를 삭제한다.

clear-completed-tasks

완료된 태스크를 일괄 숨김 처리한다.

스펙상의 주의사항

  • 기한에는 시각이 저장되지 않는다. due는 RFC 3339로 전달하지만, Google Tasks는 날짜 부분만 보유한다.

  • 완료 태스크 조회에는 showHidden이 필요하다. showCompleted: true만으로는 다른 클라이언트에서 완료한 태스크가 반환되지 않으므로, 본 서버는 showCompleted: true일 때 showHidden을 자동으로 보완한다.

  • clear-completed-tasks는 삭제가 아니다. 표시만 숨겨질 뿐이므로, showHidden: true로 다시 조회할 수 있다.

  • 기한 필터는 "지정일 포함"으로 보정한다. Google Tasks API의 dueMax는 날짜 단위로 배타적이라서, 당일 23:59:59를 넘겨도 당일이 기한인 태스크가 하나도 반환되지 않는다(다음 날 0시를 넘겨야 한다). 직관에 반하므로, 본 서버는 dueMin/dueMax를 날짜 경계에 정규화하여 어느 쪽이든 지정일 포함 동작으로 맞추고 있다.

개발

npm run typecheck   # 型チェックのみ
npm run build       # dist/ に出力
npm run auth        # 初回認証

라이선스

MIT

셋업 스크립트

GCP 콘솔에서의 작업(Tasks API 활성화, 데스크톱 앱형 OAuth 클라이언트 생성, JSON 다운로드)을 마친 뒤, 나머지는 스크립트 하나로 일괄 실행할 수 있다.

./scripts/setup.sh

~/Downloads에서 client_secret*.json을 자동으로 찾아, 유형을 검증한 뒤 ~/.config/google-tasks-mcp-server/에 권한 600으로 배치하고, 빌드·최초 인증·MCP 서버 등록까지 수행한다. 파일이 다른 위치에 있는 경우에는 경로를 전달한다.

./scripts/setup.sh /path/to/client_secret.json

That's the translation. Let me review for any issues:

  • The first bullet in the design policy: "MCP 설정 파일에 Client Secret을 평문으로 쓰지 않아도 된다." In Korean "쓰지 않아도 된다" sounds correct.

  • "최초 인증은 CLI로 수행한다" — I used "CLI" which the original had "独立した CLI". Add "독립된" -> in my draft I wrote "독립된 CLI로". Good.

Wait, I notice in the draft I wrote "* 최초 인증은 독립된 CLI로 수행한다. ..." I should double check my final draft above: yes.

  • In the env vars table, I changed the first column content "## 환경 변수" header line variable values? OK.

  • I need to make sure not to accidentally inline "GitHub를" mistakenly - in my draft for test user step I wrote "자신의 GitHub를 테스트 사용자로 추가한다"? Wait I wrote "자신의 Google 계정" — I typed "자신의 GitHub" accidentally in my draft? Let me check. In the draft above I wrote: "OAuth 동의 화면이 '테스트' 상태인 경우, 자신의 GitHub를 테스트 사용자로 추가한다." That's wrong! I wrote "GitHub" but it should be "Google 계정". Let me fix that: "자신의 Google 계정을 테스트 사용자로 추가한다."

Let me correct in my final draft. I'll revise that line.

Also check "key" variations: "MCP 클라이언트에 등록" vs "등록" heading - okay.

Also "审批の" etc.

Also in "스펙상의 주의사항", the second bullet: "자동으로 보완한다" is fine.

Hybrid: showCompleted and showHidden remain in backticks preserves.

Potential issue: In the original there is a "「期限制限 etc." made in Korean, I wrote "「지정일 포함」" — I need to keep the quotation marks? It's fine to use Korean quotes 「」 or “”. I used double quotes "" — good.

Now final polish.

Let me rewrite the final answer cleanly.


google-tasks-mcp-server

Google Tasks를 조작하는 MCP 서버(stdio). 태스크 목록과 태스크의 CRUD, 완료 토글, 정렬·이동, 완료 태스크 일괄 숨김을 제공한다.

Google 공식의 Workspace MCP 서버 때문에(Gmail / Calendar / Drive 등)에는 Tasks가 포함되지 않아, 그 Hegang를 메우기 위해 만들었다.

... (etc.)

Let me finalize, and make sure I say "만들었다" as the past tense of "만들었습니다"? We can use "만들었다" informal.

Also the phrase "や計方針" -> "설계 방침" is good.

Now, the critical issue: The original heading "## セットアップ" — I translated "셋업". There might be "설정" but fine.

Let me compile final:


google-tasks-mcp-server

Google Tasks를 조작하는 MCP 서버(stdio). 태스크 목록과 태스크의 CRUD, 완료 토글, 정렬·이동, 완료 태스크 일괄 숨김을 제공한다.

Google 공식의 Workspace MCP 서버 그룹(Gmail / Calendar / Drive 등)에는 Tasks가 포함되어 있지 않아서, 그 빈을 채우기 위해 만들었다.

설계 방침

  • 인증 정보는 파일로 전달한다. GCP에서 다운로드한 client_secret_*.json의 경로를 환경 변수로 지정한다. MCP 설정 파일에 Client Secret을 평문으로 쓰지 않아도 된다.

  • 최초 인증은 독립된 CLI로 수행한다. MCP 서버는 stdout을 JSON-RPC로 점유하고 있으므로, 브라우저 실행이나 로그가 섞이면 프로토콜이 깨진다. 인증을 npm run auth로 분리해 충돌을 피하고, 실패 시 원인 분리도 용이하게 했다.

  • 스코프는 Tasks만. https://www.googleapis.com/auth/tasks만 요구한다.

  • 업데이트는 patch. update는 미지정 필드를 지워버리기 때문에, 부분 업데이트에는 항상 patch를 사용한다.

셋업

1. GCP 준비

  1. APIs & Services → Library에서 Google Tasks API를 활성화한다.

  2. Credentials에서 OAuth 2.0 클라이언트 ID를 생성한다. 애플리케이션 종류는 데스크톱 앱.

    • 데스크톱 앱 유형은 임의의 루프백 포트를 리다이렉트 대상으로 사용할 수 있으므로, 리다이렉트 URI 등록은 불필요하다.

  3. JSON을 다운로드한다(client_secret_xxx.json).

  4. OAuth 동의 화면이 "테스트" 상태인 경우, 자신의 Google 계정을 테스트 사용자로 추가한다.

2. 빌드

npm install
npm run build

3. 최초 인증

client_secret_*.json 경로를 지정하여 인증한다. 브라우저가 열리므로 동의한다.

GOOGLE_TASKS_CLIENT_SECRET_PATH=~/path/to/client_secret_xxx.json npm run auth

토큰은 ~/.config/google-tasks-mcp-server/token.json에 권한 0600으로 저장된다. 이후는 리프레시 토큰으로 자동 갱신되므로, 이 작업은 최초 1회만 하면 된다.

4. MCP 클라이언트에 등록

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.js

.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"
      }
    }
  }
}

환경 변수

변수

필수

기본값

설명

GOOGLE_TASKS_CLIENT_SECRET_PATH

GCP에서 다운로드한 client_secret_*.json의 경로

GOOGLE_TASKS_TOKEN_PATH

~/.config/google-tasks-mcp-server/token.json

인증 토큰의 저장 위치

도구

tasklist는 생략 시 @default(기본 태스크 목록)를 사용한다.

태스크 목록

도구

설명

list-tasklists

태스크 목록을 조회한다. 다른 도구에 넘길 ID는 여기서 얻는다.

get-tasklist

태스크 목록 1건을 조회한다.

create-tasklist

태스크 목록을 생성한다.

update-tasklist

태스크 목록 이름을 변경한다.

delete-tasklist

태스크 목록을 삭제한다(내부의 태스크도 함께 삭제된다).

태스크

도구

설명

list-tasks

태스크를 조회한다. 기한·갱신 일시로 필터링할 수 있다.

get-task

태스크 1건을 조회한다.

create-task

태스크를 생성한다. parent를 지정하면 하위 태스크가 된다.

update-task

태스크를 부분 업데이트한다(지정 항목만 변경).

complete-task

완료·미완료를 전환한다.

move-task

정렬, 하위 태스크화, 다른 목록으로의 이동을 수행한다.

delete-task

태스크를 삭제한다.

clear-completed-tasks

완료된 태스크를 일괄 숨김 처리한다.

스펙상의 주의사항

  • 기한에는 시각이 저장되지 않는다. due는 RFC 3339로 전달하지만, Google Tasks원를 저장하지 않는다.

  • 완료 태스크 조회에는 showHidden이 필요하다. showCompleted: true만으로는 다른 클라이언트에서 완료한 태스크가 반환되지 않으므로, 본 서버는 showCompleted: true인 경우 showHidden을 자동으로 보완한다.

  • clear-completed-tasks는 삭제가 아니다. 표시만 숨겨지므로 showHidden: true로 조회할 수 있다.

  • 기한 필터는 "지정일 포함"으로 보정한다. Google Tasks API требует의 dueMax는 날짜 단위로 배타적이라서, 당일 23:59:59를 넘겨도 당일이 기한인 태스크가 하나도 반환되지 않는다(다음 날 0시를 넘겨야 한다). 직관에 반하므로, 본 서버는 dueMin/dueMax를 날짜 경계로 정규화하여 어느 쪽이든 지정일을 포함하는 동작으로 맞추고 있다.

개발

npm run typecheck   # 型チェックのみ
npm run build       # dist/ に出力
npm run auth        # 初回認証

라이선스

MIT

셋업 스크립트

GCP 콘솔에서의 작업(Tasks API 활성화, 데스크톱 앱형 OAuth 클라이언트의 생성과 JSON 다운로드)을 마친 뒤, 나머지를 한 번에 실행할 수 있다.

./scripts/setup.sh

~/Downloads에서 client_secret*.json을 자동으로 찾아, 유형을 검증한 뒤 ~/.config/google-tasks-mcp-server/에 권한 600으로 배치하고, 빌드·최초 인증·MCP 서버 등록까지 수행한다. 파일이 다른 곳에 있으면 경로를 전달한다.

./scripts/setup.sh /path/to/client_secret.json

Almost done. Wait — I need to fix the Google Tasks원은 typo in the bullet "기한에는 시각이 저장되지 않는다" — I wrote "Google Tasks원은 날자를 보..." mistakenly. The correct should be "Google Tasks는 날짜 부분만 보유한다." Let me fix that.

Also perhaps "기한에는" vs "기한에" — should be "마감에는"? Let me settle: "마감" (deadline) vs "기한" (deadline). I'll use "기한" throughout as it's the standard for due date. For bullet 4 "期限制フィルタ" I use "기한 필터". Fine.

Also "표시만 숨겨지므로" — okay but better "비표시가 되므로". I'll leave "표시만 숨겨지므로" as is.

One more: In "mode" section, the original "標的" - "他リストへ移動" I wrote "다른 목록으로의 이동". Good.

Now let me ensure the placeholder GXP3 and GXP4 remain on separate lines (they should). I had "GXP3" on its own paragraph and "GXP4" on its own paragraph. Yes.

Also I need not add code fences; the original contained backticks in plain text. Make sure I preserve backticks exactly. In the final answer, I write code spans like `client_secret_*.json` — yes.

Since the output is plain Markdown, the backticks will render as code. That's okay.

Now, do I need to include "return only the translated text"? Yes. So I'll give the markdown as the output without any wrapper.

Let me produce my# google-tasks-mcp-server

Google Tasks를 조작하는 MCP 서버(stdio). 태스크 목록과 태스크의 CRUD, 완료 토글, 정렬·이동, 완료 태스크 일괄 숨김을 제공한다.

Google 공식의 Workspace MCP 서버 그룹(Gmail / Calendar / Drive 등)에는 Tasks가 포함되어 있지 않아서, 그 빈자리를 메우기 위해 만들었다.

설계 방침

  • 인증 정보는 파일로 전달한다. GCP에서 다운로드한 client_secret_*.json의 경로를 환경 변수로 지정한다. MCP 설정 파일에 Client Secret을 평문으로 쓰지 않아도 된다.

  • 최초 인증은 독립된 CLI로 수행한다. MCP 서버는 stdout을 JSON-RPC로 점유하고 있어서, 브라우저 실행이나 로그가 섞이면 프로토콜이 깨진다. 인증을 npm run auth로 분리해 충돌을 피하고, 실패 시 원인 분리도 쉽게 했다.

  • 스코프는 Tasks만. https://www.googleapis.com/auth/tasks만 요구한다.

  • 업데이트는 patch. update는 미지정 필드를 지워버리므로, 부분 업데이트에는 항상 patch를 사용한다.

셋업

1. GCP 준비

  1. APIs & Services → Library에서 Google Tasks API를 활성화한다.

  2. Credentials에서 OAuth 2.0 클라이언트 ID를 생성한다. 애플리케이션 종류는 데스크톱 앱.

    • 데스크톱 앱 유형은 임의의 루프백 포트를 리다이렉트 대상으로 사용할 수 있으므로, 리다이렉트 URI 등록은 불필요하다.

  3. JSON을 다운로드한다(client_secret_xxx.json).

  4. OAuth 동의 화면이 "테스트" 상태인 경우, 자신의 Google 계정을 테스트 사용자로 추가한다.

2. 빌드

npm install
npm run build

3. 최초 인증

client_secret_*.json 경로를 지정하여 인증한다. 브라우저가 열리므로 동의한다.

GOOGLE_TASKS_CLIENT_SECRET_PATH=~/path/to/client_secret_xxx.json npm run auth

토큰은 ~/.config/google-tasks-mcp-server/token.json에 권한 0600으로 저장된다. 이후에는 리프레시 토큰으로 자동 갱신되므로, 이 작업은 최초 1회만 하면 된다.

4. MCP 클라이언트에 등록

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.js

.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"
      }
    }
  }
}

환경 변수

변수

필수

기본값

설명

GOOGLE_TASKS_CLIENT_SECRET_PATH

GCP에서 다운로드한 client_secret_*.json의 경로

GOOGLE_TASKS_TOKEN_PATH

~/.config/google-tasks-mcp-server/token.json

인증 토큰의 저장 위치

도구

tasklist가 생략되면 @default(기본 태스크 목록)를 사용한다.

태스크 목록

도구

설명

list-tasklists

태스크 목록을 조회한다. 다른 도구에 넘길 ID는 여기서 얻을 수 있다.

get-tasklist

태스크 목록 1건을 조회한다.

create-tasklist

태스크 목록을 생성한다.

update-tasklist

태스크 목록 이름을 변경한다.

delete-tasklist

태스크 목록을 삭제한다(내부의 태스크도 함께 삭제된다).

태스크

도구

설명

list-tasks

태스크를 조회한다. 기한·갱신 일시로 필터링할 수 있다.

get-task

태스크 1건을 조회한다.

create-task

태스크를 생성한다. parent를 지정하면 하위 태스크가 된다.

update-task

태스크를 부분 업데이트한다(지정한 항목만 변경).

complete-task

완료·미완료를 전환한다.

move-task

정렬, 하위 태스크화, 다른 목록으로의 이동을 수행한다.

delete-task

태스크를 삭제한다.

clear-completed-tasks

완료된 태스크를 일괄 숨김 처리한다.

명세상의 주의사항

  • 기한에는 시각이 저장되지 않는다. due는 RFC 3339로 전달하지만, Google Tasks는 날짜 부분만 보유한다.

  • 완료 태스크 조회에는 showHidden이 필요하다. showCompleted: true만으로는 다른 클라이언트에서 완료한 태스크가 반환되지 않으므로, 본 서버는 showCompleted: true인 경우 showHidden을 자동으로 보완한다.

  • clear-completed-tasks는 삭제가 아니다. 표시만 숨겨지므로 showHidden: true로 조회할 수 있다.

  • 기한 필터는 "지정일 포함"으로 보정한다. Google Tasks API의 dueMax는 날짜 단위로 배타적이라서, 당일 23:59:59를 넘겨도 당일이 기한인 태스크가 하나도 반환되지 않는다(다음 날 0시를 넘겨야 한다). 직관에 어긋나므로, 본 서버는 dueMin / dueMax를 날짜 경계로 정규화하여 어느 쪽이든 지정일 포함 동작으로 맞추고 있다.

개발

npm run typecheck   # 型チェックのみ
npm run build       # dist/ に出力
npm run auth        # 初回認証

라이선스

MIT

셋업 스크립트

GCP 콘솔에서의 작업(Tasks API 활성화, 데스크톱 앱형 OAuth 클라이언트 생성, JSON 다운로드)을 마친 뒤, 나머지를 스크립트 하나로 실행할 수 있다.

./scripts/setup.sh

~/Downloads에서 client_secret*.json을 자동으로 찾아, 유형을 검증한 뒤 ~/.config/google-tasks-mcp-server/에 권한 600으로 배치하고, 빌드·최초 인증·MCP 서버 등록까지 수행한다. 파일이 다른 위치에 있으면 경로를 전달한다.

./scripts/setup.sh /path/to/client_secret.json
Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.

  • Project management MCP for AI agents with safe task reads and writes.

  • ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kouta-i5/google-tasks-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server