ScholarFetch
Multi-engine scholarly research server for search, traversal, full text, and reading lists.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"scholarfetch": {
"url": "https://laibniz-scholarfetch-web.hf.space/mcp/"
}
}
}遠端端點
https://laibniz-scholarfetch-web.hf.space/mcp/streamable-http它能做什麼
工具清單
工具(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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"doi": {
"title": "Doi",
"type": "string"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"required": [
"doi"
],
"title": "scholarfetch_doi_lookupArguments"
}輸出結構描述
{
"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`.
輸入結構描述
{
"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"
}輸出結構描述
{
"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`.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_listArguments"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_clearArguments"
}輸出結構描述
{
"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.
輸入結構描述
{
"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"
}輸出結構描述
{
"type": "object",
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_exportOutput"
}社群
證據