[OpenClaw] mcporter에 Google Calendar MCP 등록하기

반응형

1. 들어가며

OpenClaw 에이전트가 Google Calendar를 조회·관리하려면 MCP(Model Context Protocol) 서버를 연동해야 한다. OpenClaw는 MCP를 직접 지원하지 않으며, mcporter CLI를 통해 MCP 도구를 호출한다. 이 글은 mcporter에 Google Calendar MCP 서버(@cocal/google-calendar-mcp)를 등록하는 방법과, 설정 시 자주 놓치기 쉬운 토큰 파일 경로를 정리한 것이다.


2. 사전 요구사항

항목 설명
OpenClaw 설치 및 기본 설정 완료
mcporter npm install -g mcporter 또는 openclaw skills install @clawdbot/mcporter
GCP OAuth Google Cloud Console에서 Desktop app 유형 OAuth 2.0 자격증명 생성
OAuth 토큰 브라우저가 있는 환경에서 1회 인증 후 발급 (헤드리스 서버는 PC에서 인증 후 복사)

 

미리 Google Cloud에서 Oauth2.0용 키를 발급해야한다.

 


3. mcporter에 Google Calendar MCP 등록

3.1 파일 경로 정리

등록 전에 다음 두 파일의 위치를 확정한다.

파일 용도 권장 경로
gcp-oauth.keys.json GCP OAuth 자격증명 (client_id, client_secret) ~/.openclaw/credentials/gcp-oauth.keys.json
tokens.json OAuth 인증 후 발급된 access/refresh 토큰 아래 3.2 참고

3.2 토큰 파일 경로 — 반드시 확인할 부분

GOOGLE_CALENDAR_MCP_TOKEN_PATH 환경변수는 반드시 실제 토큰 파일이 있는 경로를 가리켜야 한다.

  • @cocal/google-calendar-mcp의 기본 토큰 저장 위치:
    • Linux/macOS: ~/.config/google-calendar-mcp/tokens.json
    • Windows: %APPDATA%\google-calendar-mcp\tokens.json
  • mcporter 설정 시 GOOGLE_CALENDAR_MCP_TOKEN_PATH를 지정하면 이 경로가 사용된다.
  • 실제 tokens.json이 있는 위치와 설정값이 일치하지 않으면 "Authentication tokens are no longer valid" 오류가 발생한다.

정리:

  • 토큰을 기본 경로에 둔 경우: GOOGLE_CALENDAR_MCP_TOKEN_PATH를 지정하지 않거나, ~/.config/google-calendar-mcp/tokens.json로 설정.
  • 토큰을 다른 경로에 둔 경우 (예: ~/.openclaw/credentials/): 복사한 tokens.json의 실제 경로를 GOOGLE_CALENDAR_MCP_TOKEN_PATH에 정확히 지정.

 

 

3.3 등록 방법

방법 A: 수동 등록 (토큰을 기본 경로에 둔 경우)

mcporter config add google-calendar \
  --command "npx" \
  --arg "-y" \
  --arg "@cocal/google-calendar-mcp" \
  --env "GOOGLE_OAUTH_CREDENTIALS=$HOME/.openclaw/credentials/gcp-oauth.keys.json" \
  --scope home

 

GOOGLE_CALENDAR_MCP_TOKEN_PATH를 생략하면 ~/.config/google-calendar-mcp/tokens.json이 사용된다.

제대로 등록했다면, 명령 프롬프트에서 npx 명령 실행 시 Oauth 인증 수행 및 토큰이 정상 발급된다.

필자의 경우, Openclaw가 GUI가 없는 환경에서 구동중이기 때문에 Oauth 토큰을 바로 받아올 수 없었다. 설정하기 위해서 Windows 환경에서 npx만 따로 설치하여 Oauth 인증을 브라우저로 수행하고, 생성된 토큰 파일(tokens.json)을 서버로 복사해 주었다.

 

 

방법 B: 수동 등록 (토큰을 커스텀 경로에 둔 경우)

mcporter config add google-calendar \
  --command "npx" \
  --arg "-y" \
  --arg "@cocal/google-calendar-mcp" \
  --env "GOOGLE_OAUTH_CREDENTIALS=$HOME/.openclaw/credentials/gcp-oauth.keys.json" \
  --env "GOOGLE_CALENDAR_MCP_TOKEN_PATH=$HOME/.openclaw/credentials/google-calendar-tokens.json" \
  --scope home

이 경우 ~/.openclaw/credentials/google-calendar-tokens.json에 tokens.json을 복사해 두어야 한다.

 

 

방법 C: 스크립트 사용

./scripts/setup-mcp-google-calendar.sh
# credentials 없을 때: ./scripts/setup-mcp-google-calendar.sh --force

 

스크립트는 GOOGLE_CALENDAR_MCP_TOKEN_PATH를 ~/.openclaw/credentials/google-calendar-tokens.json으로 고정한다. 이 경로에 토큰 파일이 있어야 한다.

 


 

4. 트러블슈팅

4.1 "Authentication tokens are no longer valid"

원인: GOOGLE_CALENDAR_MCP_TOKEN_PATH가 가리키는 경로에 토큰 파일이 없거나, 잘못된 파일을 가리킨다.

조치:

  1. ~/.mcporter/mcporter.json에서 google-calendar 서버의 env.GOOGLE_CALENDAR_MCP_TOKEN_PATH 값을 확인한다.
  2. 해당 경로에 tokens.json이 실제로 있는지 확인한다.
  3. 없거나 다르다면:
    • 옵션 1: 토큰 파일을 해당 경로로 복사
    • 옵션 2: mcporter config remove google-calendar 후, 실제 토큰 경로에 맞게 다시 등록

4.2 토큰 파일 위치 확인

# mcporter 설정 확인
cat ~/.mcporter/mcporter.json | grep -A5 google-calendar

# 토큰 파일 존재 여부
ls -la ~/.openclaw/credentials/google-calendar-tokens.json   # 커스텀 경로
ls -la ~/.config/google-calendar-mcp/tokens.json             # 기본 경로

5. 동작 확인

mcporter config list
mcporter list google-calendar --schema
mcporter call google-calendar.list-calendars

등록 후에는 OpenClaw에서도 연동이 된 것을 확인할 수 있다.

 


6. 헤드리스 환경 요약

브라우저가 없는 서버에서는:

  1. 브라우저 있는 PC에서 npx @cocal/google-calendar-mcp auth 실행
  2. PC의 ~/.config/google-calendar-mcp/tokens.json을 서버로 복사
  3. mcporter에 등록할 때 GOOGLE_CALENDAR_MCP_TOKEN_PATH복사한 파일의 실제 경로로 설정

7. 마치며

mcporter에 Google Calendar MCP를 등록할 때는 GOOGLE_OAUTH_CREDENTIALSGOOGLE_CALENDAR_MCP_TOKEN_PATH실제 파일 위치와 일치하는지 반드시 확인해야 한다. GOOGLE_CALENDAR_MCP_TOKEN_PATH를 존재하지 않는 파일로 지정하면 토큰을 읽지 못해 인증 오류가 발생한다.

'Side Project > AI Powered' 카테고리의 다른 글

[OpenClaw] 운영에서의 보안상 유의사항  (0) 2026.02.01
OpenClaw 설치 및 리뷰  (0) 2026.01.31