Paper Pilot
Paper Pilot
El copiloto de investigación de tu IA.
Tu IA busca en Google cuando dices "investiga". Paper Pilot busca realmente en bases de datos académicas reales, descarga los PDFs, los lee de principio a fin y te proporciona evidencia con citas.

Inicio rápido
uvx paper-pilotEso es todo. O instálalo:
pip install paper-pilotRelated MCP server: Research MCP
Cómo funciona
graph LR
A[Prompt] --> B[Search 6 databases]
B --> C[Resolve OA PDFs]
C --> D[Download & read]
D --> E[Extract evidence]
E --> F[Render figures]
F --> G[Markdown report]
G --> H[Zotero sync]Un prompt. Seis bases de datos académicas. PDFs reales. Citas reales.
Research retrieval-augmented generation, deep-read the top papers, and compare the methods.Tu IA hará lo siguiente:
Buscará en Semantic Scholar, OpenAlex, arXiv, Crossref y Europe PMC
Encontrará los PDFs de acceso abierto, no solo los resúmenes
Los descargará y leerá de principio a fin
Extraerá fragmentos de evidencia con atribución de fuente
Renderizará páginas específicas para que pueda ver las figuras y tablas
Escribirá un informe estructurado en Markdown
Guardará todo en tu biblioteca de Zotero
vs. alternativas
ChatGPT Deep Research | Gemini Deep Research | Perplexity Pro | Paper Pilot | |
Lee PDFs reales | Resúmenes web | Resúmenes web | Resúmenes web | Extracción de texto completo |
Figuras y tablas | Solo texto | Solo texto | Solo texto | Renderizado de página a PNG |
Tu biblioteca | Bloqueada en su UI | Bloqueada en Google | Bloqueada en Perplexity | Sincroniza con Zotero |
Fuentes | Búsqueda web genérica | Búsqueda web genérica | Búsqueda web | 6 bases de datos académicas |
Coste | $200/mes | $20/mes | $20/mes | Gratis, licencia MIT |
Tus datos | Su nube | Su nube | Su nube | Tu máquina |
Código abierto | No | No | No | Sí |
Configuración del cliente MCP
Claude Desktop
Añade a tu claude_desktop_config.json:
{
"mcpServers": {
"paper-pilot": {
"command": "uv",
"args": ["--directory", "/path/to/paper-pilot", "run", "paper-pilot"],
"env": {
"OPENALEX_EMAIL": "you@example.com",
"UNPAYWALL_EMAIL": "you@example.com",
"ZOTERO_LOCAL": "true",
"SCIHUB_ENABLED": "false"
}
}
}
}Claude Code
claude mcp add --scope user paper-pilot -- uv --directory /path/to/paper-pilot run paper-pilotCodex
Añade a ~/.codex/config.toml:
[mcp_servers.paper_pilot]
command = "uv"
args = ["--directory", "/path/to/paper-pilot", "run", "paper-pilot"]
[mcp_servers.paper_pilot.env]
OPENALEX_EMAIL = "you@example.com"
ZOTERO_LOCAL = "true"Modo HTTP transmitible
paper-pilot --transport streamable-http --host 127.0.0.1 --port 8000Herramientas
Herramienta | Qué hace |
| Pipeline completo: búsqueda, descarga, informe, sincronización con Zotero |
| Todo lo anterior + extracción de texto completo con fragmentos de evidencia |
| Páginas de PDF a PNG para inspección de figuras y tablas |
| Búsqueda académica multifuente de grano fino |
| Expansión de trabajos relacionados a partir de un paper semilla |
| Verificación de disponibilidad OA y vista previa de PDF |
| Extracción de texto de cualquier PDF local |
| Búsqueda en Sci-Hub por DOI, título o palabra clave (opcional) |
| Descarga un paper vía Sci-Hub por DOI (opcional) |
| Búsqueda suplementaria en biblioteca sombra |
| Verifica que todas las conexiones estén activas |
Integración con Sci-Hub (opcional)
El acceso a Sci-Hub está desactivado por defecto. Para activarlo:
SCIHUB_ENABLED=trueUna vez activado, usa search_scihub y download_scihub_paper directamente, o pasa include_scihub=True a research_topic / deep_read_topic para una alternativa automática.
Aviso legal: La integración con Sci-Hub se proporciona estrictamente para fines educativos y de investigación. Los usuarios son los únicos responsables del cumplimiento de las leyes aplicables y las políticas institucionales.
Quién lo utiliza
Estudiantes de doctorado que no quieren pasar una semana en una revisión bibliográfica. Apúntalo a tu tema de tesis y obtén una comparación estructurada con citas reales y los PDFs ya en Zotero.
Laboratorios de investigación que quieren escanear preprints semanalmente y archivarlos automáticamente. Ejecuta research_topic de forma programada y mantén tu biblioteca de grupo actualizada.
Desarrolladores de IA que necesitan que sus agentes trabajen con papers académicos reales en lugar de fragmentos de web scraping.
Configuración
OPENALEX_EMAIL=you@example.com # Required for polite API access
UNPAYWALL_EMAIL=you@example.com # Required for OA resolution
SEMANTIC_SCHOLAR_API_KEY= # Optional, higher rate limits
# Local Zotero
ZOTERO_LOCAL=true
ZOTERO_LIBRARY_TYPE=user
# Web Zotero API (alternative)
ZOTERO_LIBRARY_ID=
ZOTERO_API_KEY=
# Sci-Hub (disabled by default)
SCIHUB_ENABLED=false
# Storage
PAPER_PILOT_DATA_DIR=./data
# Institutional networks
HTTP_PROXY=
HTTPS_PROXY=
SSL_CERT_FILE=Estructura del proyecto
src/paper_pilot/
server.py MCP tools and pipeline orchestration
config.py Environment and settings
services/
academic.py Multi-source scholarly search
open_access.py OA resolution and PDF downloads
scihub.py Sci-Hub paper resolution (opt-in)
deep_read.py Full-text extraction and page rendering
zotero.py Local and web Zotero integration
reporting.py Markdown report generation
libgen.py Supplementary LibGen supportDetalles de la arquitectura: docs/ARCHITECTURE.md
Para agentes de IA
AGENTS.md -- guía operativa compartida
CLAUDE.md -- configuración de Claude Desktop y Claude Code
CODEX.md -- configuración de Codex
docs/CLIENTS.md -- comparación de clientes lado a lado
Contribuciones
PRs bienvenidas. Las áreas de mayor impacto:
Nuevos adaptadores de fuentes académicas
Mejor lógica de resolución de OA
Mejoras en el análisis de PDF
Más configuraciones de clientes MCP
Consulta CONTRIBUTING.md.
Aviso legal
Esta herramienta está diseñada solo para fines de investigación académica y educativos. Las funciones de acceso abierto utilizan solo fuentes legales y disponibles públicamente. Las integraciones con Sci-Hub y LibGen están desactivadas por defecto y se proporcionan como funciones opcionales.
Licencia
MIT. Haz lo que quieras con ella.
Si esto ayuda a tu investigación, dale una estrella al repositorio y cuéntaselo a un colega.
Available Tools
16 toolsdeep_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
pdf_paths (and in deep_reads[].pdf_path / downloads[].pdf_path), so a client can open the
files when needed without any base64 in the payload. Opt in to inline content when your client
benefits: render_top_pages=True appends the top paper's relevant pages as images (vision models);
attach_top_pdf=True embeds its PDF as an application/pdf resource (Claude API style). include_scihub=True
adds a Sci-Hub fallback; write_graph=True also renders a citation graph (path in graph_path).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| research_question | No | ||
| limit_per_source | No | ||
| related_limit | No | ||
| download_top_n | No | ||
| top_chunks_per_paper | No | ||
| chunk_size_chars | No | ||
| chunk_overlap_chars | No | ||
| include_scihub | No | ||
| scihub_fallback_limit | No | ||
| from_year | No | ||
| to_year | No | ||
| open_access_only | No | ||
| write_to_zotero | No | ||
| existing_collection_key | No | ||
| existing_collection_name | No | ||
| create_collection_name | No | ||
| attach_pdfs | No | ||
| write_graph | No | ||
| render_top_pages | No | ||
| max_render_pages | No | ||
| render_scale | No | ||
| attach_top_pdf | No | ||
| attach_pdf_max_mb | No | ||
| attach_pdf_max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It explains default behavior (result dict with pdf_paths), side effects (write_graph, write_to_zotero), fallback (include_scihub), and output format details (local paths, no base64). This provides substantial transparency, though it could mention rate limits or authentication requirements if applicable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is divided into two focused paragraphs: the first states the high-level purpose, and the second details optional behaviors. Every sentence provides useful information, though it could be slightly shortened without losing key details. The structure supports quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (25 parameters, no output schema, no annotations), the description covers the main output structure and key options but omits explanations for many parameters. It provides enough context for basic usage but may leave agents uncertain about lower-level settings. Return values beyond paths are not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains several key parameters (render_top_pages, attach_top_pdf, include_scihub, write_graph, etc.) and their effects. However, many parameters (e.g., limit_per_source, related_limit, download_top_n, chunk settings) are not described, leaving gaps. The description adds value but incompletely compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb and resource: 'Search, download, extract full text, and return evidence chunks plus local PDF paths for direct inspection.' It distinguishes itself from sibling tools like research_topic or search_literature by emphasizing local file paths and optional inline content, making its unique value proposition evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to opt into inline content (e.g., 'when your client benefits: render_top_pages=True appends top paper's relevant pages as images...'), but it does not explicitly state when to prefer this tool over its siblings (e.g., research_topic, search_literature) or when to avoid it. The usage context is partially clear but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_scihub_paperA
Download a paper PDF via Sci-Hub using its DOI. Returns local path and text preview. Requires SCIHUB_ENABLED=true.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | ||
| topic_hint | No | scihub |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the download action and output format, but does not mention potential failures, network dependencies, or the scope of the text preview. The information is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. It is concise and front-loaded, effectively communicating the essential purpose and prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return type (local path and text preview) adequately. However, it lacks details on error handling, file naming, or the length of the preview, leaving some gaps for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'doi' parameter by stating 'using its DOI', which provides context. However, the 'topic_hint' parameter is not explained at all, leaving its purpose unclear. With 0% schema description coverage, the description should compensate more fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), the resource (paper PDF), the method (via Sci-Hub using DOI), and the output (local path and text preview). It effectively distinguishes from siblings like search_scihub and read_pdf_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite (SCIHUB_ENABLED=true) and implies the use case (having a DOI for a paper). It does not explicitly state when not to use or name alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_local_pdf_textC
Extract full text from a local PDF, save a text sidecar, and return top matching chunks.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_path | Yes | ||
| title_hint | No | ||
| research_question | No | ||
| chunk_size_chars | No | ||
| chunk_overlap_chars | No | ||
| top_chunks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It mentions saving a sidecar file (a side effect) and returning chunks, but does not disclose overwrite behavior, permissions needed, or the underlying matching mechanism. Basic transparency is present but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action. It could be more structured (e.g., listing outputs), but it wastes no words and is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters and no output schema, yet the description omits critical details: the meaning of 'top matching chunks', how the sidecar is saved, and what the tool returns. It is insufficient for an agent to confidently invoke the tool without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should clarify parameters. It hints that 'research_question' and 'title_hint' drive matching, but does not explain 'chunk_size_chars', 'chunk_overlap_chars', or 'top_chunks'. The added semantic value is minimal beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's actions: extracting full text from a local PDF, saving a sidecar text file, and returning top matching chunks. It distinguishes itself from siblings like 'get_pdf_page_text' by implying chunked-based retrieval, but does not explicitly differentiate from 'read_pdf_document' or 'inspect_open_access_pdf'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., file accessibility), or when not to use it. The agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_papersC
Find similar papers starting from a seed paper title or DOI.
| Name | Required | Description | Default |
|---|---|---|---|
| seed_title | Yes | ||
| seed_doi | No | ||
| limit | No | ||
| open_access_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not disclose error handling (e.g., if both seed_title and seed_doi are provided), rate limits, or what the output contains. The description is too brief to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the core purpose. However, it could include a brief note on the optional parameters without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain how the seed parameters interact, the meaning of 'limit' and 'open_access_only', or the expected output format. This leaves the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It only hints at using a seed title or DOI but does not explain 'limit' or 'open_access_only'. This adds minimal value beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: finding similar papers using a seed title or DOI. It uses a specific verb ('find') and resource ('similar papers'), and distinguishes from siblings like 'search_literature' which perform broader searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'search_literature', 'research_topic'). There is no mention of prerequisites, typical use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_path | Yes | ||
| page_numbers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses that the operation is read-only (getting text) and works over the network without base64/filesystem. However, it does not explicitly state that it has no side effects or any error behavior. Given the simplicity, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The first sentence states purpose and output; the second gives usage context and prerequisites. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description mentions the output is 'plain JSON' but does not detail its structure. However, for a simple text extraction tool with two parameters, the description covers the essential workflow and constraints. Minor improvement would be to specify the JSON format (e.g., mapping page numbers to text), but it's still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that 'pdf_path' comes from deep_read_topic and that 'page_numbers' are 1-based and 'exact pages'. This adds meaningful context beyond the schema's bare type declarations, helping the agent understand parameter origins and behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return the exact extracted text of specific PDF pages'), the resource ('PDF pages'), and the output format ('as plain JSON'). It distinguishes itself from siblings like read_pdf_document and extract_local_pdf_text by specifying 'over the wire' and avoiding base64/filesystem access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('for fine-grained lookups over the wire') and what prerequisite step is required ('Use deep_read_topic first to get the pdf_path and the page mapping'). It also contrasts with alternatives by noting it avoids base64 and shell access, making its use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| limit_per_source | No | ||
| related_limit | No | ||
| from_year | No | ||
| to_year | No | ||
| open_access_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear full behavioral burden. It describes node encoding (size, color) and edge logic, but omits details about failure modes (e.g., empty results), authentication, or rate limits. The behavior is mostly transparent but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, and every sentence provides unique information. No redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a graph-generation tool and lack of output schema, the description explains the return value (HTML path) and visual encoding. However, it misses parameter explanations and does not set expectations about performance or source dependencies, leaving gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 6 parameters, the description must compensate but does not. Only 'topic' is implied. No explanation is given for limit_per_source, related_limit, from_year, to_year, or open_access_only, leaving the agent without necessary guidance for parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching a topic and rendering an interactive citation/relatedness graph as an HTML file. The verb 'search' and 'render' are specific, and the resource (citation graph) is distinct from siblings like search_literature or deep_read_topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for visual exploration of citation relationships but does not explicitly state when to use this tool over alternatives or provide usage exclusions. No mention of when-not to use or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthcheckA
Return current configuration summary and enabled integrations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the output but does not disclose behavioral traits like read-only nature, speed, or authentication needs. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with eight words, no fluff, and no repetition. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is nearly complete. It specifies the return content. Missing a note on performance or prerequisites, but these are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and the schema coverage is 100% trivially. Per guidelines, 0 parameters baseline is 4. The description adds no parameter info because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Return') and resource ('configuration summary and enabled integrations'), which is specific and distinguishable from sibling tools that perform research or document operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool or when not to. While the purpose is clear, there is no mention of context or alternatives, though no sibling tool serves the same purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_libgen_itemC
Resolve LibGen mirror links, download a PDF when possible, and return a preview.
| Name | Required | Description | Default |
|---|---|---|---|
| mirror_1 | Yes | ||
| title | Yes | ||
| author | No | ||
| year | No | ||
| extension | No | ||
| publisher | No | ||
| size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must fully disclose behavior. It mentions downloading and previewing but omits important details like rate limits, network dependency, failure modes for broken links, or handling of non-PDF extensions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks structure; parameter information is absent and necessary details are omitted. Not all sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description is severely incomplete. It fails to explain input semantics, return value format, or error handling, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds no parameter meaning. It does not explain what 'mirror_1', 'title', or optional fields (author, year, etc.) represent or how they affect the operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves mirror links, downloads a PDF, and returns a preview, which is specific and distinguishes it from sibling tools like 'search_libgen' or 'download_scihub_paper'. However, the verb 'inspect' is vague without the description's context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., after searching LibGen). Lacks explicit context, exclusions, or mention of prerequisites like prior search results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_open_access_pdfC
Download an open-access PDF and return a local preview.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_url | Yes | ||
| filename_hint | No | paper |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states download and preview, omitting side effects, prerequisites, or limitations (e.g., download location, preview persistence).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, very concise. Could be structured better but gets the core point across without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity, the description lacks detail on expected input format, output behavior, and error handling. Very incomplete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description adds no explanation for pdf_url or filename_hint beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (download) and resource (open-access PDF) and result (local preview). Distinguishes from siblings like download_scihub_paper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives, such as Sci-Hub downloaders. Implied by 'open-access' but no when-not-to-use or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_zotero_collectionsC
List Zotero collections visible to the configured web or local Zotero integration.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, rate limits, authentication needs, or side effects. It merely states the function without further context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the core action. However, it may be too brief, lacking necessary details. It is not verbose, but earns high marks for clarity without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional parameter, no output schema, no annotations), the description provides a minimal viable understanding. However, it omits details like output format, pagination, or how the query works, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'query' has no description in the schema (0% coverage) and the tool description provides no explanation of its purpose, format, or effect. The agent receives no insight beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Zotero collections, specifying the scope as 'visible to the configured web or local Zotero integration.' This is a specific verb+resource combination that distinguishes it from sibling tools, which focus on papers and literature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or how it relates to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_path | Yes | ||
| embed_base64 | No | ||
| max_pages | No | ||
| max_mb | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the transparency burden. It discloses default behavior (disk-only), optional inline embedding, bounds (max_mb, max_pages), and return format. It does not mention read-only safety but implies it via 'download' and 'read' context. No destructive actions are described, which is appropriate for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact paragraphs with no redundant sentences. The first sentence encapsulates the core purpose, and the second provides necessary detail on optional behavior. Every sentence adds value, and the structure is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently explains the return format ([metadata, resource_link] with fields). It covers default and embed modes, size limits, and client usage examples. No critical gaps are apparent for a file-access tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must explain all parameters. It does so effectively: pdf_path is implied, embed_base64 is explained with client context, and max_mb/max_pages are described as bounding constraints. Every parameter receives semantic context beyond type/default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns a PDF's local path or inlined content, with clear distinction between default and embed modes. It uses specific verbs ('Return', 'download') and resources ('PDF', 'local path'), and implicitly distinguishes from siblings focused on text extraction (e.g., extract_local_pdf_text) by focusing on file access rather than content parsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the default vs. embed mode, including client compatibility (local readers vs. Claude API integrations) and size constraints. However, it does not explicitly compare with sibling tools or state when not to use this tool (e.g., when text extraction is needed instead of whole file access).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 pdf_path and
images (local PNG paths) for path-based clients, and the trailing image blocks
let a vision-capable model inspect figures, tables, and layout directly. Set
include_images=False to return only the paths.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_path | Yes | ||
| page_numbers | Yes | ||
| scale | No | ||
| include_images | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes output format as [metadata_dict, image, ...] and notes the include_images option. With no annotations, description adds useful behavioral context beyond schema, though could expand on scale effect or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with action, no fluff. Could be slightly tighter, but effectively communicates key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains purpose, output format, and the include_images option. Missing details on scale, performance, or error cases, but sufficient for an AI agent to use the tool effectively given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds meaning only for include_images. pdf_path and page_numbers are clear from names, but scale is completely unexplained. Does not compensate adequately for missing parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Render selected PDF pages to PNG' – specific verb and resource. Distinguishes from siblings (e.g., extract_local_pdf_text, get_pdf_page_text) which focus on text extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for visual inspection of PDF content, but no explicit guidance on when to use versus alternatives or when not to use. Missing exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| limit_per_source | No | ||
| related_limit | No | ||
| download_top_n | No | ||
| include_libgen | No | ||
| libgen_limit | No | ||
| libgen_download_top_n | No | ||
| include_scihub | No | ||
| scihub_fallback_limit | No | ||
| from_year | No | ||
| to_year | No | ||
| open_access_only | No | ||
| write_to_zotero | No | ||
| existing_collection_key | No | ||
| existing_collection_name | No | ||
| create_collection_name | No | ||
| attach_pdfs | No | ||
| write_graph | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only mentions two optional behaviors (Sci-Hub fallback, graph rendering) but fails to describe the core workflow steps, sources searched, or output format, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, concise and front-loaded with the main purpose. No wasted words, though a bit more structure (e.g., listing key features) would improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (18 parameters, no output schema, no annotations), the description is incomplete. It omits details on the overall workflow, expected outputs, and default behavior, leaving the agent with many unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only explains two parameters (include_scihub, write_graph) out of 18, leaving most parameters like topic, limits, and year ranges undocumented. Parameter names are somewhat self-explanatory but insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs an end-to-end research workflow with optional Zotero sync, which is a specific verb and resource. However, it does not differentiate from sibling tools like deep_read_topic or graph_topic, so it misses explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context by mentioning optional flags (include_scihub, write_graph) but gives no explicit guidance on when to use this tool versus alternatives. It lacks when-not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_libgenC
Search LibGen mirrors for supplemental research material.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| search_type | No | title | |
| limit | No | ||
| allowed_extensions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Search LibGen mirrors', implying possible mirror failover or aggregation, but offers no details on error handling, result format, rate limits, or authentication needs. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence), but conciseness is not achieved at the cost of informativeness. Key details about parameters, behavior, and context are missing, making it under-specified rather than efficiently compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with 0% schema coverage, no output schema, and no annotations, the description is severely incomplete. It does not mention return values, pagination, error handling, or typical usage patterns, leaving a high burden on the agent to infer correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (no titles or descriptions beyond bare names), and the tool description does not explain any of the four parameters (query, search_type, limit, allowed_extensions). The agent gets no semantic guidance beyond schema structure, which is inadequate for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and the resource ('LibGen mirrors'), and specifies the content type as 'supplemental research material'. This differentiates it from siblings like search_scihub (which targets Sci-Hub) and search_literature (which might be broader). However, it could be more precise about what kind of material (e.g., books, papers, etc.) is found.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as search_literature or inspect_libgen_item. The description does not specify use cases, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_literatureC
Search Semantic Scholar, OpenAlex, Europe PMC, arXiv, Crossref, and DOAJ for a topic.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| limit_per_source | No | ||
| from_year | No | ||
| to_year | No | ||
| open_access_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the basic action, omitting details like multi-source aggregation, rate limits, pagination, or whether searches are by title/abstract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise but too brief. It front-loads the core action but omits necessary details, balancing conciseness against completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, no output schema, and many sibling tools, the description is insufficient. It fails to explain output structure, parameter effects, or selection criteria, leaving agents underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain parameters. It only mentions 'topic', ignoring limit_per_source, year filters, and open_access_only. No compensation for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for a topic across six named academic databases, distinguishing it from siblings like research_topic or find_similar_papers. The verb 'search' and resource 'literature from specific sources' are specific, though it lacks details on what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., research_topic, find_similar_papers). No context on prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_scihubB
Search Sci-Hub for papers by DOI, title, or keyword. Use search_type='doi', 'title', or 'keyword'. Requires SCIHUB_ENABLED=true.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| search_type | No | doi | |
| limit | No | ||
| check_availability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It mentions searching and an environment flag, but doesn't clarify behavior if SCIHUB_ENABLED is false, error handling, or whether it's read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, just two sentences with no redundant information. It front-loads the action and required conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema or annotations, the description is too brief. It lacks explanation of return values, error conditions, and the check_availability parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. The description explains search_type values but not query, limit, or check_availability. This is insufficient for a tool with 4 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Sci-Hub for papers by DOI, title, or keyword, and names the search_type options. However, it doesn't differentiate from sibling tools like search_libgen or search_literature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the allowed search_type values and the prerequisite SCIHUB_ENABLED=true, but doesn't provide guidance on when to use this tool versus siblings like search_libgen or search_literature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.7.0- Changed
deep_read_topic7 fields changed- added
Input schema / properties / attach_pdf_max_mbAdded value: +{ + "default": 5, + "title": "Attach Pdf Max Mb", + "type": "number" +} - added
Input schema / properties / attach_pdf_max_pagesAdded value: +{ + "default": 60, + "title": "Attach Pdf Max Pages", + "type": "integer" +} - added
Input schema / properties / attach_top_pdfAdded value: +{ + "default": false, + "title": "Attach Top Pdf", + "type": "boolean" +} - added
Input schema / properties / max_render_pagesAdded value: +{ + "default": 6, + "title": "Max Render Pages", + "type": "integer" +} - added
Input schema / properties / render_scaleAdded value: +{ + "default": 2, + "title": "Render Scale", + "type": "number" +} - added
Input schema / properties / render_top_pagesAdded value: +{ + "default": false, + "title": "Render Top Pages", + "type": "boolean" +} - added
Input schema / properties / write_graphAdded value: +{ + "default": false, + "title": "Write Graph", + "type": "boolean" +}
- Added
get_pdf_page_text - Added
graph_topic - Added
read_pdf_document - Changed
render_pdf_pages1 field changed- added
Input schema / properties / include_imagesAdded value: +{ + "default": true, + "title": "Include Images", + "type": "boolean" +}
- Changed
research_topic1 field changed- added
Input schema / properties / write_graphAdded value: +{ + "default": false, + "title": "Write Graph", + "type": "boolean" +}
13 tool updates
v0.4.0- First observed
deep_read_topic - First observed
download_scihub_paper - First observed
extract_local_pdf_text - First observed
find_similar_papers - First observed
healthcheck - First observed
inspect_libgen_item - First observed
inspect_open_access_pdf - First observed
list_zotero_collections - First observed
render_pdf_pages - First observed
research_topic - First observed
search_libgen - First observed
search_literature - First observed
search_scihub
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.
Maintenance
Related MCP Connectors
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
AI research grounded in 300M scientific works — every citation a verifiable DOI.
Find academic papers across major sources like arXiv, PubMed, bioRxiv, and more. Download PDFs whe…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search across multiple academic databases (PubMed, arXiv, bioRxiv, medRxiv, Semantic Scholar) through a unified interface. Supports advanced filtering, metadata retrieval, PDF downloads, and comprehensive research workflows with citation analysis.5-
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to search, analyze, and summarize academic research papers in real-time from arXiv, Semantic Scholar, and PubMed. Provides automatic deduplication, citation analysis, and BibTeX generation across multiple research databases.59 npmMIT
- AlicenseNot gradedqualityFmaintenanceTurn any AI agent into an academic researcher that can search, read, cite, and write full literature reviews autonomously.14MIT
- AlicenseAqualityCmaintenanceAn AI-powered research assistant that integrates with Zotero to read academic papers, create intelligent annotations, and generate structured notes. It enables users to highlight findings, explain formulas, and write comprehensive summaries directly within their Zotero library through natural language commands.919MIT