# Datacollector NotebookLM Automatic Auth Recovery Date: 2026-04-25 20:47:05 KST Project: Datacollector [[Repository|Repository]]: `/Volumes/Data/project/Antigravity/Datacollector` ## Summary 컴퓨터 포맷 이후 NotebookLM MCP 인증이 자주 실패하고, 20-30분마다 `auth_mac.command`를 수동 실행해야 하는 문제가 있었다. 이번 작업에서는 인증 만료 시 브리지 서버가 자동으로 복구를 시도하도록 개선했다. ## Root Cause Hypothesis 기존 구조는 MCP 서버의 `refresh_auth` 도구 호출에만 의존했다. 하지만 포맷 이후 로컬 토큰 저장 위치나 [[Chrome|Chrome]] 세션 상태가 달라지면서 `refresh_auth`만으로 복구되지 않는 상황이 발생할 수 있다. 사용자가 직접 실행하던 파일은 다음 명령의 래퍼였다. ```bash /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|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 실행한 검증: ```bash 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 실패 상황은 브리지 서버가 먼저 복구하도록 개선되었다.