papersgpt-for-zotero
무엇인가
PapersGPT는 Zotero에 설치되는 확장(.xpi) 형태의 AI 연구 도구다. 논문 한 편을 열어 대화하는 수준을 넘어, 라이브러리 전체를 대상으로 질의하고, 여러 PDF를 동시에 비교하며, 컬렉션 단위로 논문을 일괄 처리한다. 분류상으로는 문헌 관리기 위에 얹히는 검색·요약 계층에 해당한다. 사용자가 던지는 것은 자연어 질문이고, 돌아오는 것은 선택한 LLM이 합성한 답변과 원문 위치로 이동하는 인용이다. 여기서 핵심은 대상 범위다. 열려 있는 문서 한 편이 아니라 Zotero가 관리하는 모든 PDF가 검색 대상이 된다. README는 이를 10,000편 이상 규모에서 동작한다고 명시한다. 즉 개인 문헌함을 하나의 질의 가능한 코퍼스로 바꾸는 것이 이 도구의 자리다. 여기에 Literature Radar가 신규 논문 추적을, AutoPilot이 컬렉션 일괄 읽기와 결과의 Zotero Notes 저장을 맡는다. 읽기 보조를 넘어 수집·탐색·정리까지 한 흐름에 묶는 구성이다.
어떻게 동작하나
문헌 관리 도구는 원래 서지 정보와 파일을 정리하는 데 집중한다. 검색은 제목·저자·태그 같은 메타데이터 수준에서 끝나고, PDF 내부의 주장·방법·수치까지 질의 대상이 되지 않는다. 반대로 범용 LLM 채팅은 파일 한 개를 첨부해 읽는 방식이라, 라이브러리 규모가 커질수록 사람이 어떤 논문을 넣을지 직접 골라야 한다. PapersGPT가 겨냥하는 지점이 이 틈이다. 논문 탐색, 읽기, 비교, 신규 연구 추적이 각각 다른 도구로 흩어져 있던 것을 Zotero 안으로 모은다. Literature Radar는 arXiv, PubMed, Semantic Scholar, Europe PMC, Crossref, bioRxiv, medRxiv를 구독 대상으로 삼아 신규 논문을 매일 다이제스트로 전달한다. AutoPilot은 연구 질문 하나를 받아 컬렉션 전체를 밤새 읽고 가설·방법·결과를 구조화된 Zotero Notes로 남긴다. 설계 동기 하나는 컨텍스트 선택을 사람이 하지 않게 만드는 것이다. 질문을 던지면 시스템이 라이브러리에서 근거를 찾아오므로, 어떤 논문을 넣을지 고르는 단계가 사라진다. 다른 축은 프라이버시 경계다. 파싱·색인·검색이 로컬에서 끝나므로 미출판 원고나 기관 규정이 걸린 자료도 같은 방식으로 다룰 수 있다.
무엇과 다른가
동작은 파싱, 색인, 검색, 합성의 네 단계로 나뉜다. 먼저 라이브러리의 모든 PDF를 로컬에서 파싱한다. 이때 구조를 인식하는 방식으로 처리해 제목, 섹션, 표가 의미 단위로 유지되도록 한다. 다음으로 파싱 결과를 색인한다. 질문이 들어오면 라이브러리 전체에서 관련 구절을 검색해 가져오고, 선택한 LLM이 그 구절들을 근거로 답변을 합성한다. 마지막으로 답변에 정확한 인용을 붙인다. 인용은 클릭하면 해당 논문의 원문 위치로 이동하는 형태다. README는 파싱·색인·검색이 모두 사용자 기기에서 수행되며 어떤 것도 업로드되지 않는다고 명시한다. 구조 인식 파싱은 표와 절 경계를 살려 검색 정확도에 직접 영향을 준다. 단순 텍스트 추출이 표의 행·열 관계를 잃는 것과 대비되는 지점이다. 검색 증강 구조를 택했기 때문에 모델 자체를 다시 학습시키지 않아도 라이브러리 내용이 답변에 반영된다. 로컬 처리는 비행기 모드에서도 질의가 성립하는 조건이 된다.
어떻게 쓰나
구성 요소는 크게 다섯 갈래다. 첫째, Zotero에 설치되는 플러그인 본체다. PDF 뷰어 상단 메뉴와 단축키(macOS Command + Enter, Windows Ctrl + Enter)로 호출된다. 둘째, PDF 파서와 로컬 색인 저장소다. 셋째, 모델 연결 계층이다. 30개 이상의 클라우드 LLM, Hugging Face에서 내려받는 내장 로컬 모델, 사용자 API 키, OpenAI 호환 엔드포인트, Ollama 인스턴스를 같은 인터페이스로 다룬다. 넷째, Literature Radar와 AutoPilot 같은 백그라운드 작업이다. AutoPilot의 산출물은 구조화된 Zotero Notes로 저장된다. 다섯째, MCP 서버다. Claude Desktop, Claude Code, Cursor, Windsurf, ChatGPT desktop 같은 MCP 클라이언트에 로컬 Zotero 지식베이스를 스킬로 노출한다. 설정 패널에서 몇 번의 클릭으로 연결하며, mcp-zotero를 쓰면 Zotero를 실행하지 않고도 라이브러리를 색인·검색할 수 있다.
전제와 한계
같은 문제를 푸는 다른 방식과 비교하면 차이가 구조에서 드러난다. 단일 PDF 채팅 도구는 컨텍스트 창에 파일 하나를 넣는 구조라, 비교 대상이 늘어나면 사용자가 직접 문서를 골라 넣어야 한다. PapersGPT는 라이브러리 전체를 색인해 두고 질의 시점에 관련 구절을 검색하는 검색 증강 구조를 택한다. 클라우드 문헌 검색 서비스는 질의가 외부 서버를 거치는 반면, 이 도구는 파싱·색인·검색을 로컬에서 수행하고 Literature Radar의 질의도 사용자 기기에서 소스 API로 직접 나간다. 중계 서버가 없다는 점이 구조적 차이다. 로컬 RAG 파이프라인을 직접 조립하는 방식과도 다르다. 파서, 임베딩, 벡터 저장소, 검색기, 프롬프트를 각각 고르는 대신 그 조합을 Zotero 플러그인 하나로 고정해 제공한다. 유연성은 줄고 설정 비용은 사라진다. 대가는 설치형 플러그인이라는 제약이다. Zotero 안에서 동작하므로 Zotero를 쓰지 않는 워크플로에는 맞지 않는다.
설치는 Zotero 확장 방식이다. README의 절차는 두 단계다. 먼저 "Download the latest PapersGPT (.xpi)."로 최신 .xpi 파일을 받는다. 다음으로 "Install it into Zotero. For more details, see the PapersGPT Quickstart guide."에 따라 Zotero에 설치한다. 별도의 패키지 관리자나 서버 프로세스를 띄우는 단계는 없다. 설치 후 호출 경로는 세 갈래다. PDF를 열고 뷰어 상단 메뉴를 클릭하거나 macOS에서 Command + Enter, Windows에서 Ctrl + Enter를 누르면 단일 PDF 대화가 열린다. 여러 편을 함께 다루려면 Zotero 메인 창에서 파일이나 컬렉션을 선택한다. Windows는 Ctrl+click, Mac은 Command+click으로 다중 선택한다. 라이브러리 전체를 대상으로 하려면 "Search entire library"를 체크한다. 모델은 30개 이상의 클라우드 LLM, API 키가 필요 없는 내장 트라이얼, 내장 로컬 모델 중에서 고른다. 로컬 모델은 Hugging Face에서 한 번 내려받아 실행한다. MCP 연동은 PapersGPT 설정 패널에서 몇 번의 클릭으로 끝난다.
README에는 플러그인 자체의 버전 체계나 마이그레이션 안내가 없다. 이 도구에서 버전 축에 해당하는 것은 연결하는 모델 목록이다. 클라우드 쪽은 GPT-6, Claude 5.5, Gemini 4, DeepSeek v4.1, Grok, GLM 5.3, Kimi k3 등을 이름으로 열거하며, 사용자가 임의로 전환하거나 자기 API 키, 또는 임의의 OpenAI 호환 엔드포인트를 붙일 수 있다. 로컬 쪽은 Gemma 4, Qwen 3.5, DeepSeek Distill, Mistral 7B, Llama 3.1을 내장 대상으로 둔다. 연결 방식은 세 갈래다. 첫째, "Local LLM" 옵션에서 모델을 고르면 Hugging Face에서 내려받아 자동으로 실행된다. 둘째, 사설로 배포한 OpenAI 호환 LLM API에 연결한다. 셋째, 로컬 Ollama 인스턴스에서 돌아가는 LLM을 쓴다. 모델이 고정된 하나가 아니라 교체 가능한 계층으로 놓인 구조다. 새 모델이 등장해도 플러그인 골격을 바꾸지 않고 목록만 갱신하면 된다. 대가는 모델별 성능 차이가 사용자 선택에 그대로 남는다는 점이다.
README가 제시하는 규모 수치는 10,000편 이상이다. 라이브러리 전체 색인이 그 규모에서 동작하며, 100편이든 10,000편 이상이든 질의가 빠르게 유지된다고 명시한다. 근거로 드는 것은 문서 구조를 직접 파싱하는 엔진이다. 파싱·색인·검색의 100%가 로컬에서 수행되고 비행기 모드에서도 동작한다. 지연 시간이나 처리량 같은 구체적 수치는 README에 없다. 비용 구조는 모델 선택에 따라 갈린다. 클라우드 LLM은 제공자 과금이 발생하지만 시작용 내장 트라이얼은 API 키 없이 쓸 수 있다. 내장 로컬 모델은 전부 오프라인으로 돌아 API 키가 필요 없다. Literature Radar의 질의는 사용자 기기에서 소스 API로 직접 나가고 중계 서버를 두지 않는다. 상시 비용은 모델 호출 쪽에 집중되고, 검색·색인 계층은 로컬 자원만 소비하는 셈이다.
전제는 Zotero다. 설치 형태가 .xpi 확장이므로 Zotero가 없는 워크플로에서는 동작하지 않는다. 클라우드 모델을 쓰려면 내장 트라이얼을 넘어설 때 API 키나 OpenAI 호환 엔드포인트가 필요하다. 로컬 모델은 Hugging Face에서 내려받아야 하고, 실행에는 해당 하드웨어 자원이 든다. MCP 서버는 Claude Desktop, Claude Code, Cursor, Windsurf, ChatGPT desktop 등 MCP 호환 클라이언트를 대상으로 하며, mcp-zotero를 쓰면 Zotero를 실행하지 않고도 라이브러리를 색인·검색할 수 있다. 판단 기준은 이렇게 갈린다. 문헌이 이미 Zotero에 있고 라이브러리 규모가 커서 어떤 논문을 컨텍스트에 넣을지 고르는 일이 병목이면 이 구조가 맞는다. 미출판 원고나 기관 규정 때문에 외부 업로드가 금지된 환경이면 로컬 모델 조합이 조건을 만족한다. 반대로 Zotero를 쓰지 않거나 파이프라인 구성 요소를 직접 교체하며 실험해야 하는 경우에는 자체 RAG 조립이 더 적합하다.