ScholarFetch
Multi-engine scholarly research server for search, traversal, full text, and reading lists.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"scholarfetch": {
"url": "https://laibniz-scholarfetch-web.hf.space/mcp/"
}
}
}Puntos de conexión remotos
https://laibniz-scholarfetch-web.hf.space/mcp/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (12)
🟢scholarfetch_search(query, limit, engines)
Start a research traversal from keywords, a DOI, or a person name. Returns deduplicated paper records that you can inspect, save, expand through references, or use as seeds for author exploration. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"required": [
"query"
],
"title": "scholarfetch_searchArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_searchOutput"
}⚪scholarfetch_doi_lookup(doi, engines)
Enrich one known DOI with metadata, reading links, and full-text availability signals. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
Esquema de entrada
{
"type": "object",
"properties": {
"doi": {
"title": "Doi",
"type": "string"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"required": [
"doi"
],
"title": "scholarfetch_doi_lookupArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_doi_lookupOutput"
}⚪scholarfetch_author_candidates(name, limit, engines)
Disambiguate a human author name into ranked identity candidates. Use this before `scholarfetch_author_papers` when the name is ambiguous and you need a stable `candidate_index`. If you pass `engines`, it must include `openalex`.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"required": [
"name"
],
"title": "scholarfetch_author_candidatesArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_author_candidatesOutput"
}⚪scholarfetch_author_papers(author_id, author_name, candidate_index, limit, filters, ...)
Expand one author into a deduplicated paper list. This is the main author->paper traversal tool and supports research filters. Use `author_id` when you already know the exact author, or `author_name` plus `candidate_index` after `scholarfetch_author_candidates`. Supported comma-separated `filters`: year>=YYYY, year<=YYYY, year=YYYY, has:abstract, has:doi, has:pdf, venue:<text>, title:<text>, doi:<text>. If you pass `engines`, it must include `openalex`.
Esquema de entrada
{
"type": "object",
"properties": {
"author_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Id"
},
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"filters": {
"default": "",
"title": "Filters",
"type": "string"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_author_papersArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_author_papersOutput"
}🟢scholarfetch_abstract(doi, author_name, candidate_index, paper_index, engines)
Read the best abstract available for a paper. Use with a DOI or with author_name + candidate_index + paper_index after author_papers. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
Esquema de entrada
{
"type": "object",
"properties": {
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_abstractArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_abstractOutput"
}🟢scholarfetch_article_text(doi, author_name, candidate_index, paper_index, engines)
Read full paper text when machine-readable content is recoverable. Use with a DOI or with author_name + candidate_index + paper_index. Uses Elsevier first, then open-access fallbacks such as Springer OA, Europe PMC, arXiv PDF, and generic PDF URLs when text is recoverable. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
Esquema de entrada
{
"type": "object",
"properties": {
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_article_textArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_article_textOutput"
}⚪scholarfetch_references(doi, author_name, candidate_index, paper_index, engines)
Expand a paper into its references. Use with a DOI or with author_name + candidate_index + paper_index. This is the main edge-expansion tool for traversing the literature graph. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
Esquema de entrada
{
"type": "object",
"properties": {
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_referencesArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_referencesOutput"
}🟡scholarfetch_saved_add(collection, paper_json, doi, query, result_index, ...)
Add one paper to a named in-memory reading list on the MCP server. Best input is paper_json copied from another ScholarFetch tool result, but DOI, query+result_index, or author_name+candidate_index+paper_index also work. Reuse the same collection name across calls to keep one research session together.
Esquema de entrada
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
},
"paper_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Paper Json"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"result_index": {
"default": 1,
"title": "Result Index",
"type": "integer"
},
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_saved_addArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_addOutput"
}🟡scholarfetch_saved_list(collection)
List all papers currently saved in a named in-memory reading list. Use this to inspect the working set before exporting or removing items.
Esquema de entrada
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_listArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_listOutput"
}🔴scholarfetch_saved_remove(collection, doi, title)
Remove one paper from a named in-memory reading list by DOI or exact title.
Esquema de entrada
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
}
},
"title": "scholarfetch_saved_removeArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_removeOutput"
}🔴scholarfetch_saved_clear(collection)
Clear all papers from a named in-memory reading list. Useful when restarting a research branch.
Esquema de entrada
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_clearArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_clearOutput"
}🟢scholarfetch_saved_export(collection, format, style, include_references, engines)
Export the current reading list as citations, abstracts, BibTeX, or an aggregated full-text corpus. Valid `format` values: citations, abstracts, bib, fulltext. Valid `style` values when `format=citations`: harvard, apa, ieee. Use `include_references=true` with `format=fulltext` when you want a richer downstream synthesis corpus.
Esquema de entrada
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
},
"format": {
"default": "citations",
"title": "Format",
"type": "string"
},
"style": {
"default": "harvard",
"title": "Style",
"type": "string"
},
"include_references": {
"default": false,
"title": "Include References",
"type": "boolean"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"title": "scholarfetch_saved_exportArguments"
}Esquema de salida
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_exportOutput"
}Comunidad
Evidencia