Server definition
- Hash
- sha256:2c6d553f494a0344e7f6850c54773bf128cd0e392d4cf7da6ab8a8f9bee489b2
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "Multi-engine scholarly research server. Use it to traverse from keyword -> paper -> author -> paper -> references, save interesting papers into an in-memory reading list, and export citations/abstracts/full-text corpora for downstream synthesis.",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
}
},
"title": "scholarfetch_abstractArguments",
"type": "object"
},
"name": "scholarfetch_abstract",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_abstractOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
}
},
"title": "scholarfetch_article_textArguments",
"type": "object"
},
"name": "scholarfetch_article_text",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_article_textOutput",
"type": "object"
}
},
{
"description": "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`.",
"inputSchema": {
"properties": {
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "scholarfetch_author_candidatesArguments",
"type": "object"
},
"name": "scholarfetch_author_candidates",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_author_candidatesOutput",
"type": "object"
}
},
{
"description": "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`.",
"inputSchema": {
"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"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"filters": {
"default": "",
"title": "Filters",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "scholarfetch_author_papersArguments",
"type": "object"
},
"name": "scholarfetch_author_papers",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_author_papersOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"doi": {
"title": "Doi",
"type": "string"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
}
},
"required": [
"doi"
],
"title": "scholarfetch_doi_lookupArguments",
"type": "object"
},
"name": "scholarfetch_doi_lookup",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_doi_lookupOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
}
},
"title": "scholarfetch_referencesArguments",
"type": "object"
},
"name": "scholarfetch_references",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_referencesOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"author_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Author Name"
},
"candidate_index": {
"default": 1,
"title": "Candidate Index",
"type": "integer"
},
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Doi"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"paper_index": {
"default": 1,
"title": "Paper Index",
"type": "integer"
},
"paper_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Paper Json"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"result_index": {
"default": 1,
"title": "Result Index",
"type": "integer"
}
},
"title": "scholarfetch_saved_addArguments",
"type": "object"
},
"name": "scholarfetch_saved_add",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_addOutput",
"type": "object"
}
},
{
"description": "Clear all papers from a named in-memory reading list. Useful when restarting a research branch.",
"inputSchema": {
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_clearArguments",
"type": "object"
},
"name": "scholarfetch_saved_clear",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_clearOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
},
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"format": {
"default": "citations",
"title": "Format",
"type": "string"
},
"include_references": {
"default": false,
"title": "Include References",
"type": "boolean"
},
"style": {
"default": "harvard",
"title": "Style",
"type": "string"
}
},
"title": "scholarfetch_saved_exportArguments",
"type": "object"
},
"name": "scholarfetch_saved_export",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_exportOutput",
"type": "object"
}
},
{
"description": "List all papers currently saved in a named in-memory reading list. Use this to inspect the working set before exporting or removing items.",
"inputSchema": {
"properties": {
"collection": {
"default": "default",
"title": "Collection",
"type": "string"
}
},
"title": "scholarfetch_saved_listArguments",
"type": "object"
},
"name": "scholarfetch_saved_list",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_listOutput",
"type": "object"
}
},
{
"description": "Remove one paper from a named in-memory reading list by DOI or exact title.",
"inputSchema": {
"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"
},
"name": "scholarfetch_saved_remove",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_saved_removeOutput",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"engines": {
"default": "",
"title": "Engines",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "scholarfetch_searchArguments",
"type": "object"
},
"name": "scholarfetch_search",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "scholarfetch_searchOutput",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:2c6d553f494a0344e7f6850c54773bf128cd0e392d4cf7da6ab8a8f9bee489b2 | sha256sum