Files
2nd/10_Wiki/Topics/2026-04-25-Datacollector_NotebookLM_Automatic_Auth_Recovery.md
T

3.3 KiB

Datacollector NotebookLM Automatic Auth Recovery

Date: 2026-04-25 20:47:05 KST Project: Datacollector Repository: /Volumes/Data/project/Antigravity/Datacollector

Summary

컴퓨터 포맷 이후 NotebookLM MCP 인증이 자주 실패하고, 20-30분마다 auth_mac.command를 수동 실행해야 하는 문제가 있었다.
이번 작업에서는 인증 만료 시 브리지 서버가 자동으로 복구를 시도하도록 개선했다.

Root Cause Hypothesis

기존 구조는 MCP 서버의 refresh_auth 도구 호출에만 의존했다.
하지만 포맷 이후 로컬 토큰 저장 위치나 Chrome 세션 상태가 달라지면서 refresh_auth만으로 복구되지 않는 상황이 발생할 수 있다.

사용자가 직접 실행하던 파일은 다음 명령의 래퍼였다.

/Users/g1nation_mac/.local/bin/notebooklm-mcp-auth

따라서 자동 복구 흐름에도 이 CLI 인증 명령을 포함시키는 것이 가장 직접적인 개선 방향이다.

Changes Made

수정 파일:

  • /Volumes/Data/project/Antigravity/Datacollector/[[Scripts|Scripts]]/mcp_bridge.mjs
  • /Volumes/Data/project/Antigravity/Datacollector/src/components/AgentDashboard.tsx
  • /Volumes/Data/project/Antigravity/Datacollector/.env.example

핵심 변경:

  • 브리지 서버가 .env를 읽도록 dotenv/config를 추가했다.
  • AUTH_PATH, AUTH_ARGS, AUTH_TIMEOUT_MS, AUTH_REFRESH_INTERVAL_MS 설정을 추가했다.
  • MCP 인증 에러 발생 시 refresh_auth를 먼저 시도한다.
  • refresh_auth 실패 시 MCP 프로세스를 재시작하고 다시 갱신을 시도한다.
  • 그래도 실패하면 notebooklm-mcp-auth CLI를 브리지 서버가 직접 실행한다.
  • CLI 인증 후 MCP 프로세스를 재시작해 새 토큰을 읽게 만든다.
  • 장시간 실행 중에는 15분 간격으로 요청이 없는 시점에 인증 상태를 사전 갱신한다.
  • UI 안내 문구를 수동 재인증 중심에서 자동 복구 중심으로 수정했다.

Runtime Behavior

새 인증 복구 순서:

  1. NotebookLM MCP 요청 실패
  2. 에러 메시지가 인증 관련인지 판단
  3. refresh_auth 호출
  4. MCP 프로세스 재시작 후 refresh_auth 재시도
  5. notebooklm-mcp-auth CLI 자동 실행
  6. MCP 프로세스 재시작
  7. 원래 실패했던 NotebookLM 요청 재시도

주기적 갱신:

  • 기본 간격: 15분
  • 설정값: AUTH_REFRESH_INTERVAL_MS=900000
  • 진행 중인 MCP 요청이 있을 때는 건드리지 않고 건너뛴다.

Verification

실행한 검증:

node --check scripts/mcp_bridge.mjs
npm run lint
npm run bridge
curl -s http://127.0.0.1:3002/api/health

검증 결과:

  • node --check 통과
  • TypeScript 타입체크 통과
  • 브리지 서버 시작 성공
  • MCP 서버 초기화 성공
  • /api/health에서 connected: true, version: 3.3.0, authPath 확인

Notes

완전히 백그라운드 인증이 가능한지는 Google/Chrome 세션 상태에 의존한다.
브라우저 로그인이 만료되어 실제 사용자 로그인이 필요한 상태라면 자동 CLI 실행도 브라우저 로그인을 요구할 수 있다.
다만 기존처럼 매번 사용자가 batch 파일을 직접 실행하는 흐름보다, 일반적인 토큰 만료와 MCP refresh 실패 상황은 브리지 서버가 먼저 복구하도록 개선되었다.