| name | literature-review |
| description | This skill should be used when the user asks to "do a literature review", "survey papers on a topic", "search and summarize research on X", "find papers about attention mechanisms", "systematic review of the literature", "what papers exist on Y", or wants a multi-step workflow to search, filter by relevance, score quality, and summarize academic papers using PaperBot MCP tools. |
| tools | ["paper_search","relevance_assess","paper_judge","paper_summarize","export_to_obsidian","save_to_memory"] |
Literature Review Workflow
Conduct a systematic literature review: search, filter by relevance, judge quality,
summarize top papers, and save findings to memory.
Workflow
Step 1: Search for papers
Call paper_search with the research question or topic.
- Parameters:
query (required), max_results (default 10; use 20–50 for broad surveys),
sources (optional; omit for all sources, or specify ["arxiv", "semantic_scholar"])
- Returns: list of paper dicts with
title, abstract, authors, year, venue,
arxiv_id, doi
Step 2: Filter by relevance
For each paper, call relevance_assess with title, abstract, and the same query.
- Parameters:
title, abstract, query, keywords (optional comma-separated terms)
- Returns: dict with
score (0–100) and reason
- Suggested threshold: discard papers with
score below 40
- If
degraded=True, token-overlap scoring is used (less accurate but functional)
Step 3: Judge quality of relevant papers
For papers above the relevance threshold, call paper_judge.
- Parameters:
title, abstract, full_text (optional), rubric (default "default";
pass the research question for context-aware judging)
- Returns: dimension scores (1–5),
overall_score, recommendation
(must_read / worth_reading / skim / skip)
- Prioritize papers with
must_read and worth_reading recommendations
Step 4: Summarize top papers
Call paper_summarize for papers recommended as must_read or worth_reading.
- Parameters:
title, abstract
- Returns: dict with
summary key (concise string)
- If
degraded=True, generate a manual summary from the abstract text
Step 5: Export to Obsidian (optional)
Call export_to_obsidian for papers to save as permanent Obsidian notes.
- Parameters:
title, abstract, authors (list), year, venue, arxiv_id, doi
(provide whichever identifiers are available)
- Returns: dict with
markdown key — YAML-frontmattered note ready to write to vault
Step 6: Save synthesis to memory
Call save_to_memory with a synthesis of findings across all reviewed papers.
- Parameters:
content (synthesis text), kind ("note" for general observations,
"hypothesis" for research directions), user_id (default "default"),
scope_type ("global" unless scoping to a specific research track),
scope_id (required if scope_type="track"), confidence (0.0–1.0)
- Returns: dict with
created or skipped status
Degraded Mode
paper_judge, paper_summarize, and relevance_assess require a configured LLM API key.
paper_search works without LLM and returns raw search results in all cases.
When any LLM-backed tool returns degraded=True:
- The response also contains an
error key describing the issue
- Set
OPENAI_API_KEY or ANTHROPIC_API_KEY and restart the MCP server
- In degraded mode, proceed with
paper_search results only; skip Steps 2–4
Notes
- For broad surveys (>30 papers), consider running
relevance_assess in bulk before
paper_judge to reduce LLM calls
- Use
rubric="reproducibility" in paper_judge if the review goal is identifying
reproducible papers for implementation
- The
export_to_obsidian step is optional — skip it if the user has not set up an
Obsidian vault or does not need persistent notes