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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aytzey/paper-pilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server