3.3 KiB
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-authCLI를 브리지 서버가 직접 실행한다. - CLI 인증 후 MCP 프로세스를 재시작해 새 토큰을 읽게 만든다.
- 장시간 실행 중에는 15분 간격으로 요청이 없는 시점에 인증 상태를 사전 갱신한다.
- UI 안내 문구를 수동 재인증 중심에서 자동 복구 중심으로 수정했다.
Runtime Behavior
새 인증 복구 순서:
- NotebookLM MCP 요청 실패
- 에러 메시지가 인증 관련인지 판단
refresh_auth호출- MCP 프로세스 재시작 후
refresh_auth재시도 notebooklm-mcp-authCLI 자동 실행- MCP 프로세스 재시작
- 원래 실패했던 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 실패 상황은 브리지 서버가 먼저 복구하도록 개선되었다.