Systematic Literature Review
Applicable: New research project | Pre-Introduction investigation | Systematic review | PICO clinical question
Not applicable: Quick lookup of one paper → directly search_literature | Only need organization → format_references
Tool Quick Reference
pubmed-search MCP
| Category |
Tool |
Description |
| Search |
search_literature |
Basic PubMed search |
|
generate_search_queries |
MeSH + synonym materials |
|
parse_pico |
Parse PICO clinical question |
|
merge_search_results |
Merge and deduplicate |
| Explore |
find_related_articles / find_citing_articles / get_article_references |
Citation network |
|
get_citation_metrics |
iCite RCR ranking |
| Full text |
get_fulltext(pmcid) |
Obtain OA full text |
|
analyze_fulltext_access(pmids) |
Confirm OA status |
| Session |
get_session_pmids / get_session_summary |
Retrieve search results |
| Export |
prepare_export |
RIS/BibTeX |
asset-aware-mcp (full-text parsing)
| Category |
Tool |
Description |
| Parse |
ingest_documents(file_paths) |
Structured PDF parsing (dual engine) |
|
parse_pdf_structure(file_path) |
Marker high-precision parsing |
| Status |
get_job_status(job_id) |
Track asynchronous processing progress |
| Browse |
inspect_document_manifest(doc_id) |
Get complete asset list |
|
list_section_tree(doc_id) |
Document section structure |
| Extract |
get_section_content(doc_id, section_path) |
Get specific section content |
|
fetch_document_asset(doc_id, asset_type, asset_id) |
Get assets such as figures and tables |
| Knowledge graph |
consult_knowledge_graph(query) |
Cross-document RAG query |
mdpaper save literature
| Method |
Description |
save_reference_mcp(pmid) ✅ |
Always preferred MCP-to-MCP validation |
save_reference(article) ⚠️ |
FALLBACK only when API unavailable |
Workflow
- Environment preparation —
project_action(action="current") + read .memory/activeContext.md
- Search strategy — General topic:
generate_search_queries(topic) → PICO question:parse_pico() → parallel generate_search_queries() each element
- Parallel search — multiple sets of
search_literature() called simultaneously → merge_search_results()
- Evaluate and expand — <20 papers
expand_search_queries() | Citation network find_citing/related/references | get_citation_metrics(sort_by="relative_citation_ratio")
- Screen and save — Present list (title/year/journal/RCR) →
save_reference_mcp(pmid)
- Full-text reading ⭐ — For each saved paper:
a.
analyze_fulltext_access(pmids) → Confirm which have full text available
b. Those with full text:get_fulltext(pmcid) or download PDF → asset-aware ingest_documents(file_paths) → get_job_status() → inspect_document_manifest() → get_section_content(doc_id, "Methods") / get_section_content(doc_id, "Results")
c. Those without full text: record in metadata.json fulltext_ingested: false + reason
d. Produce references/fulltext-ingestion-status.md summary table
e. Principle: For papers whose full text has not been read, subsequent writing may only cite the abstract's conclusions, and must not cite specific methods or data
- Subagent analysis ⭐⭐ — Each paper undergoes structured analysis by an independent subagent (to prevent context contamination):
a.
get_reference_for_analysis(pmid) → Obtain the paper's structured full-text package (abstract + fulltext, ≤30K char)
b. runSubagent Launch an independent subagent; the prompt must include:
- The complete full-text content from step a
- Analysis task: write a structured summary, assess methodological quality, list key findings and limitations, and determine which sections of the article's Introduction/Methods/Results/Discussion they can be used in.
- Instruct the subagent to finally call
save_reference_analysis(pmid, summary, methodology, key_findings, limitations, usage_sections, relevance_score)
c. After the Subagent completes:analysis.json has been written to the reference directory, with metadata marked analysis_completed: true
d. Principle: The main Agent's subsequent writing only uses analysis_summary, and no longer re-reads the full text
e. Gate: All cited references must pass analysis (Pipeline Gate Phase 2.1 + Hook C10 mandatory check)
- Export —
format_references() + prepare_export(format="ris")
- Update memory — write
.memory/activeContext.md(progress + key references + full-text reading status + analysis status + observation notes)
Decision point
| Timing |
Choice |
| Create a project or explore? |
Explore and get familiar with the literature first |
| Keywords or PICO? |
Use PICO for comparative questions |
| Number of results |
50-300 continue, <20 expand, >500 narrow |
| Screening method |
<30 one by one, >30 use RCR ranking |