InsightsTrack + Pulse: I taught Claude Desktop to read my web analytics (via MCP)

개요

InsightsTrack은 자체 호스팅 가능한 개인정보 보호 중심의 웹 분석 플랫폼으로, 기본 제공되는 AI 분석가인 Pulse를 통해 웹 분석 데이터를 대화형으로 탐색하고, MCP(Model Context Protocol)를 통해 Claude Desktop과 같은 외부 AI 클라이언트에서도 분석 데이터를 직접 쿼리할 수 있도록 합니다.

주요 내용

* InsightsTrack 플랫폼: Google Analytics의 오픈소스 대안으로, 쿠키나 동의 배너 없이 자체 서버에서 실시간 방문자, 퍼널, 히트맵, Core Web Vitals 등 17개 이상의 분석 뷰를 제공합니다.
* Pulse AI 분석가: 대시보드 내에서 "지난주 최고 페이지는?", "트래픽 출처는?", "퍼널에서 사용자가 이탈하는 지점은?"과 같은 질문에 대해 자연어로 응답하며, 실제 차트, 표, CSV 내보내기 기능을 제공합니다. 모든 응답은 실제 툴 호출에 기반하며 환각(hallucination) 현상이 없습니다.
* MCP 통합: Pulse의 분석 툴이 MCP를 통해 외부에 공개되어, Claude Desktop, Cursor 등 MCP 클라이언트에서 InsightsTrack에 직접 쿼리할 수 있습니다. 이는 AI 도구 간 분석 데이터 접근성을 높이는 것을 목표로 합니다.
* 아키텍처 및 기술:
* 이중 데이터베이스: PostgreSQL에 추적 이벤트를 기록하고, DuckDB로 스트리밍하여 분석 쿼리를 빠르게 처리합니다.
* 단일 툴 레지스트리: 17개의 읽기 전용 툴(get\_kpi, get\_top\_pages 등) 레지스트리가 대시보드 내 Pulse와 외부 MCP 클라이언트 모두에서 사용되어 일관성을 유지하고 유지보수 부담을 줄입니다.
* MCP 프로토콜: JSON-RPC 2.0 기반으로, 원격(Streamable-HTTP) 및 로컬(stdio 브릿지) 두 가지 전송 방식을 지원합니다.
* BYO-Key: Anthropic, OpenAI, Gemini API 키를 사용하여 Pulse를 구동하며, 키는 자체 서버에서 AES-256-GCM으로 암호화되어 저장됩니다.
* 결과 카드: 각 툴의 응답은 summary, data, render, download, deepLink 형식의 구조화된 정보를 포함하며, 대시보드에서는 이를 기반으로 CSV 내보내기, 뷰 전환(표, 막대, 선, 도넛), 딥 링크 기능을 제공합니다. MCP 클라이언트도 동일한 구조화된 데이터를 받을 수 있습니다.
* Gemini 통합 시 어려움: Gemini에서 OpenAI와 다른 스트리밍 방식(JSON 파편 대신 완전한 객체를 델타로 전송)을 사용하여 발생한 스트리밍 버그를 수정했습니다.

시사점

InsightsTrack과 Pulse는 자체 호스팅 웹 분석의 개인정보 보호와 유연성을 AI 기반 대화형 인터페이스 및 외부 AI 도구와의 통합을 통해 강화하며, 사용자 데이터를 더욱 쉽게 접근하고 활용할 수 있는 가능성을 제시합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions