Paper Pilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTTP_PROXY | No | HTTP proxy for institutional networks. | |
| HTTPS_PROXY | No | HTTPS proxy for institutional networks. | |
| ZOTERO_LOCAL | No | Set to 'true' to use local Zotero integration. | true |
| SSL_CERT_FILE | No | SSL certificate file for institutional networks. | |
| OPENALEX_EMAIL | Yes | Your email address for polite API access to OpenAlex (required). | |
| SCIHUB_ENABLED | No | Set to 'true' to enable Sci-Hub integration (disabled by default). | false |
| ZOTERO_API_KEY | No | API key for web Zotero API (alternative to local). | |
| UNPAYWALL_EMAIL | Yes | Your email address for OA resolution via Unpaywall (required). | |
| ZOTERO_LIBRARY_ID | No | Library ID for web Zotero API (alternative to local). | |
| ZOTERO_LIBRARY_TYPE | No | Library type for Zotero (e.g., 'user'). | user |
| PAPER_PILOT_DATA_DIR | No | Directory for storage. | ./data |
| SEMANTIC_SCHOLAR_API_KEY | No | Optional API key for higher rate limits with Semantic Scholar. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| healthcheckA | Return current configuration summary and enabled integrations. |
| search_literatureC | Search Semantic Scholar, OpenAlex, Europe PMC, arXiv, Crossref, and DOAJ for a topic. |
| find_similar_papersC | Find similar papers starting from a seed paper title or DOI. |
| graph_topicB | Search a topic and render an interactive citation/relatedness graph as a self-contained HTML file. Nodes are papers (size scales with citation count, color by year); edges connect papers that share keywords or a venue, plus similarity links radiating from the top result. Returns the local HTML path. Open it in a browser to explore or screenshot the landscape. |
| inspect_open_access_pdfC | Download an open-access PDF and return a local preview. |
| extract_local_pdf_textC | Extract full text from a local PDF, save a text sidecar, and return top matching chunks. |
| render_pdf_pagesA | Render selected PDF pages to PNG and return them as images the model can see. The result is [metadata_dict, image, image, ...]: the dict keeps |
| read_pdf_documentA | Return a downloaded PDF's local path so a client can open the file when it needs it. By default nothing is base64-inlined: the result is [metadata, resource_link] where metadata carries pdf_path / doc_id / page_count / size_bytes. The PDF stays on disk; clients that read local files (e.g. Claude Code) or fetch the paperpilot://pdf/{doc_id} resource use it without payload bloat. Set embed_base64=True to inline the PDF as an application/pdf resource for clients that read PDFs that way (Claude API integrations), bounded by max_mb / max_pages. |
| get_pdf_page_textA | Return the exact extracted text of specific PDF pages (1-based) as plain JSON. For fine-grained lookups over the wire (a single reference entry, a table, a footnote) without base64 and without filesystem/shell access. Use deep_read_topic first to get the pdf_path and the page mapping (deep_reads[*].chunk_manifest_path), then fetch the exact pages you need here. |
| search_libgenC | Search LibGen mirrors for supplemental research material. |
| inspect_libgen_itemC | Resolve LibGen mirror links, download a PDF when possible, and return a preview. |
| search_scihubB | Search Sci-Hub for papers by DOI, title, or keyword. Use search_type='doi', 'title', or 'keyword'. Requires SCIHUB_ENABLED=true. |
| download_scihub_paperA | Download a paper PDF via Sci-Hub using its DOI. Returns local path and text preview. Requires SCIHUB_ENABLED=true. |
| list_zotero_collectionsC | List Zotero collections visible to the configured web or local Zotero integration. |
| research_topicC | Run the end-to-end research workflow and optionally sync the result into Zotero. Set include_scihub=True to use Sci-Hub as a fallback for papers without open-access PDFs. Set write_graph=True to also render an interactive citation graph HTML (path returned as graph_path). |
| deep_read_topicA | Search, download, extract full text, and return evidence chunks plus local PDF paths for direct inspection. By default the result is just [result_dict]: it carries every downloaded PDF's local path in
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools have distinct purposes, but there is some overlap between deep_read_topic and research_topic, and between various search/download tools. Descriptions help differentiate them.
All tool names follow a consistent verb_noun pattern in snake_case, except for 'healthcheck' which is a single word but still clear. Overall very consistent.
16 tools is well-scoped for a research assistant server covering search, download, extraction, visualization, and Zotero integration. No extraneous tools.
Covers major workflows (search, download, extraction, graphing, Zotero) but lacks tools for managing Zotero items beyond collections or batch operations. Minor gaps.