pubmed-search-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTTP_PROXY | No | Optional HTTP proxy for API requests. | |
| NCBI_EMAIL | Yes | Required by NCBI API policy. Your email address. | |
| S2_API_KEY | No | Optional API key for Semantic Scholar. Alias: SEMANTIC_SCHOLAR_API_KEY | |
| HTTPS_PROXY | No | Optional HTTPS proxy for API requests. | |
| CORE_API_KEY | No | Optional API key for CORE. Get from https://core.ac.uk/services/api | |
| EZPROXY_HOST | No | Optional EZproxy host, e.g., ezproxy.example.edu. | |
| NCBI_API_KEY | No | Optional API key for higher rate limits (10 req/s vs 3 req/s). Get from https://www.ncbi.nlm.nih.gov/account/settings/ | |
| CROSSREF_EMAIL | No | Optional email for CrossRef polite pool. | |
| EZPROXY_ENABLED | No | Optional: set to 'true' after configuring EZPROXY_HOST and EZPROXY_COOKIE_FILE. | |
| PUBMED_DATA_DIR | No | Optional data directory for notes. Default: ~/.pubmed-search-mcp | |
| UNPAYWALL_EMAIL | No | Optional email for Unpaywall OA resolver. | |
| OPENALEX_API_KEY | No | Optional API key for OpenAlex authenticated requests. | |
| PUBMED_NOTES_DIR | No | Optional target folder for save_literature_notes. | |
| EZPROXY_COOKIE_FILE | No | Optional path to EZproxy cookies JSON file. | |
| BROWSER_FETCH_CONFIG | No | Optional JSON string enabling browser-session PDF fallback. Example: '{"enabled":true,"auto_enabled":true,"broker_url":"http://127.0.0.1:8766/fetch","token":"local-dev-token","allowed_hosts":["jamanetwork.com","*.jamanetwork.com"]}' | |
| PUBMED_WORKSPACE_DIR | No | Optional fallback workspace directory for notes. | |
| SEMANTIC_SCHOLAR_API_KEY | No | Optional alias for S2_API_KEY. | |
| INSTITUTIONAL_DIRECT_FETCH | No | Optional: set to 'true' to try DOI publisher pages before CORE fallback. | |
| PUBMED_SEARCH_DISABLED_SOURCES | No | Optional comma-separated list of sources to disable, e.g., 'semantic_scholar'. | |
| PUBMED_ARTIFACT_INCLUDE_LOCAL_PATHS | No | Optional: set to 'true' to include local_path and manifest_path in artifact responses. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
}
}
} |
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| unified_searchA | š Unified Search - Single entry point for multi-source academic search. Automatically analyzes your query and searches the best sources. No need to choose between PubMed, OpenAlex, CrossRef, etc. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā WHAT IT DOES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā EXAMPLES (most calls only need 1-2 params): āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Simple (1 param): unified_search("remimazolam ICU sedation") With limit (2 params): unified_search("machine learning in anesthesia", limit=20) Specify sources: unified_search("CRISPR gene therapy", sources="pubmed,openalex") Auto minus one source: unified_search("sepsis biomarkers", sources="auto,-semantic_scholar") Search all enabled sources except enrichment-only CrossRef: unified_search("icu sedation", sources="all,-crossref") Clinical filters: unified_search("diabetes treatment", filters="year:2020-2025, age:aged, clinical:therapy") Include preprints + shallow search: unified_search("COVID-19 vaccine", options="preprints, shallow") Full control: unified_search("propofol vs remimazolam", sources="pubmed,semantic_scholar,europe_pmc", ranking="impact", filters="year:2020-, sex:female, species:humans", options="preprints, no_relax") ICD Code Auto-Detection: unified_search("E11 complications") ā Auto-expands E11 to "Diabetes Mellitus, Type 2"[MeSH] Args:
query: Your search query (natural language, ICD codes, or structured)
limit: Maximum results per source (default 10, max 100)
sources: Comma-separated list of sources to search.
Available: "pubmed", "openalex", "semantic_scholar",
"europe_pmc", "crossref", "core".
Commercial connectors may also appear when enabled via env,
e.g. "scopus" when Returns: Formatted search results with: - Query analysis (complexity, intent, PICO) - ICD code expansions (if detected) - Search statistics (sources, dedup count) - Ranked articles with metadata - Open access links where available - Preprints (if options includes "preprints") - Relaxation info (if auto_relax triggered) - Pipeline step summary (if pipeline mode) | ||||||||||||
| analyze_search_queryA | Analyze a search query without executing the search. Useful for understanding how unified_search will process your query before actually running it. Args: query: The search query to analyze Returns: Analysis including: - Complexity level (SIMPLE/MODERATE/COMPLEX/AMBIGUOUS) - Intent (LOOKUP/EXPLORATION/COMPARISON/SYSTEMATIC) - PICO elements (if detected) - Recommended sources - Recommended strategies | ||||||||||||
| parse_picoA | Validate agent-provided PICO elements and return a runnable search plan. The agent, not this MCP server, extracts P/I/C/O from the user's natural
language question. When only Args: description: Original clinical question for provenance. p: Population / patient group extracted by the agent. i: Intervention / exposure / index test extracted by the agent. c: Comparator extracted by the agent, optional. o: Outcome extracted by the agent, recommended. p_query/i_query/c_query/o_query: Optional expanded PubMed-ready query fragments. When present, the PICO pipeline uses these for search while preserving the human-readable P/I/C/O labels. question_type: therapy, diagnosis, prognosis, or etiology. Inferred heuristically when omitted. profile: Search profile for the PICO template, default balanced. sources: Comma-separated sources for the pipeline. limit: Final result limit for the pipeline. Returns:
JSON containing validation, PICO schema, query plan, and pipeline
YAML that can be passed to | ||||||||||||
| generate_search_queriesA | Gather search intelligence for a topic - returns RAW MATERIALS for Agent to decide. This tool provides the BUILDING BLOCKS for search, not finished queries. The Agent decides how to use them. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā TWO USAGE MODES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā MODE 1: KEYWORD SEARCH (single topic) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā User: "ęå° remimazolam ēęē»" Step 1: generate_search_queries("remimazolam") Step 2: Build a Boolean query from returned materials Step 3: analyze_search_query(query="") Step 4: unified_search(query="") āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā MODE 2: PICO SEARCH (clinical question) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā User: "remimazolam åØ ICU é®éęÆ propofol 儽åļ¼ęęøå° delirium åļ¼" Step 1: Agent extracts P/I/C/O from the clinical question, then calls parse_pico(description=..., p=..., i=..., c=..., o=...) to validate the structured handoff and get a runnable PICO pipeline. Step 2: For EACH PICO element, call generate_search_queries() IN PARALLEL: - generate_search_queries("ICU patients") ā P materials - generate_search_queries("remimazolam") ā I materials - generate_search_queries("propofol") ā C materials - generate_search_queries("delirium") ā O materials Step 3: Combine materials using Boolean logic: High precision: (P_terms) AND (I_terms) AND (C_terms) AND (O_terms) High recall: (P_terms) AND (I_terms OR C_terms) AND (O_terms) Step 4: Add Clinical Query filter if appropriate: - therapy[filter] ā ę²»ēęęęÆč¼ - diagnosis[filter] ā 診ę·ēøé - prognosis[filter] ā é å¾ēøé - etiology[filter] ā ē å ēøé āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Features:
Args: topic: Search topic - can be a single keyword or PICO element strategy: Affects suggested_queries (if included) - "comprehensive": Multiple angles, includes reviews (default) - "focused": Adds RCT filter for high evidence - "exploratory": Broader search with more synonyms check_spelling: Whether to check/correct spelling (default: True) include_suggestions: Include pre-built query suggestions (default: True) Returns: JSON with RAW MATERIALS: - corrected_topic: Spell-checked topic - keywords: Extracted significant keywords - mesh_terms: MeSH data with preferred terms and synonyms - all_synonyms: Flattened list of all synonyms - suggested_queries: Optional pre-built queries with: - estimated_count: How many results PubMed would return - pubmed_translation: How PubMed actually interprets the query | ||||||||||||
| find_related_articlesA | Find articles related to a given PubMed article. Uses PubMed's "Related Articles" feature to find similar papers. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š CITATION NETWORK EXPLORATION WORKFLOW āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā This is ONE of THREE tools for exploring citation networks: 1ļøā£ find_related_articles() ā YOU ARE HERE ā š Algorithm-based similarity (like PubMed "Similar Articles") ā š Finds papers with similar topics, MeSH terms, authors ā š Good for: Discovering related research you might have missed āāāŗ Returns: Similar papers (not based on citations) 2ļøā£ find_citing_articles() ā š Forward citation search (who cited THIS paper?) ā š Finds papers published AFTER the source article ā š Good for: Tracking impact, finding follow-up studies āāāŗ Returns: Papers that cite this article 3ļøā£ get_article_references() ā š Backward citation search (what did THIS paper cite?) ā š Finds papers published BEFORE the source article ā š Good for: Finding foundational papers, methodology sources āāāŗ Returns: This article's bibliography āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā EXAMPLE WORKFLOW: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Step 1: Start with a key paper find_related_articles(pmid="23132851") ā Find similar research directions Step 2: Explore backward (foundations) get_article_references(pmid="23132851") ā Find the foundational papers it builds on Step 3: Explore forward (impact) find_citing_articles(pmid="23132851") ā Find how the field developed after this paper Args: pmid: PubMed ID of the source article (accepts: "12345678", "PMID:12345678", 12345678). limit: Maximum number of related articles to return (1-50, default: 5). Returns: List of related articles with details. | ||||||||||||
| find_citing_articlesA | Find articles that cite a given PubMed article. Uses PubMed Central's citation data to find papers that reference this article. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š FORWARD CITATION SEARCH (Impact Tracking) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Direction: Source Paper ā Papers that cite it (FORWARD in time) USE CASES: āāāāāāāāāā
COMPLEMENTARY TOOLS: āāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā EXAMPLE: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Find papers that cite a landmark CRISPR paperfind_citing_articles(pmid="23287718", limit=20) ā Returns papers published AFTER 2012 that reference this work Then analyze citation metricsget_citation_metrics(pmids="last") ā See which citing papers are most influential Args: pmid: PubMed ID of the source article (accepts: "12345678", "PMID:12345678", 12345678). limit: Maximum number of citing articles to return (1-100, default: 10). Returns: List of citing articles with details. | ||||||||||||
| get_article_referencesA | Get the references (bibliography) of a PubMed article. Returns the list of articles that this paper cites in its bibliography. This is the OPPOSITE of find_citing_articles:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š BACKWARD CITATION SEARCH (Foundation Discovery) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Direction: Source Paper ā Papers it cited (BACKWARD in time) USE CASES: āāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā EXAMPLE WORKFLOW: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Start with a recent review articleget_article_references(pmid="38123456", limit=50) ā Get the bibliography of this review Find most-cited foundational papersget_citation_metrics(pmids="last", sort_by="citation_count") ā Identify which references are the most influential Read a foundational paperfetch_article_details(pmids="12345678") ā Get full details of an important reference Args: pmid: PubMed ID of the source article (accepts: "12345678", "PMID:12345678", 12345678). limit: Maximum number of references to return (1-100, default: 20). Returns: List of referenced articles with details. | ||||||||||||
| fetch_article_detailsA | Fetch detailed information for one or more PubMed articles. Args: pmids: PubMed IDs - accepts multiple formats: - "12345678" (single) - "12345678,87654321" (comma-separated) - "PMID:12345678" (with prefix) - ["12345678", "87654321"] (list) - 12345678 (integer) Returns: Detailed information for each article. | ||||||||||||
| get_citation_metricsA | Get citation metrics from NIH iCite for articles. Returns field-normalized citation data including:
Can sort and filter results by citation metrics. Args: pmids: PubMed IDs - accepts multiple formats: - "12345678,87654321" (comma-separated) - ["12345678", "87654321"] (list) - "PMID:12345678" (with prefix) - "last" to use PMIDs from the last search sort_by: Metric to sort by: - "citation_count": Raw citation count (default) - "relative_citation_ratio": Field-normalized (recommended) - "nih_percentile": Percentile ranking - "citations_per_year": Citation velocity min_citations: Filter out articles with fewer citations min_rcr: Filter out articles with RCR below threshold (e.g., 1.0 = average) min_percentile: Filter out articles below percentile (e.g., 50 = top half) Returns: Articles with citation metrics, sorted and filtered as requested. | ||||||||||||
| verify_reference_listA | Verify a plain-text reference list against PubMed evidence. First version scope: - Reference-list verification only - Client supplies the extracted reference list text - Backend parses entries and resolves them via PMID / DOI / ECitMatch Second version scope:
- Adds unresolved review workflow for Args: reference_text: Plain-text references, ideally one per line or a numbered reference list extracted from a file. source_name: Optional file label for reporting. max_references: Maximum number of references to process. Returns: JSON verification report with parsed fields, matched PubMed evidence, and per-reference verification status. | ||||||||||||
| prepare_exportA | Export citations to reference manager formats. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā RECOMMENDED: Use source="official" (default) for best quality ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā When to Use
Source Options
Format Selection Guide
Args: pmids: Articles to export. Accepts: - "last" ā results from previous search - "12345678,87654321" ā comma-separated PMIDs - ["12345678", "87654321"] ā list of PMIDs - "PMID:12345678" ā with prefix format: Export format (default: "ris") - official API: ris, medline, csl - local only: bibtex, csv, json include_abstract: Include abstracts in output (default: True) source: Citation source (default: "official") - "official": NCBI Citation API (recommended, best quality) - "local": Local formatting (more formats, offline capable) Returns: JSON with status and export_text containing formatted citations. Examples: # Export last search results (recommended) prepare_export(pmids="last", format="ris") | ||||||||||||
| save_literature_notesA | Save searched articles as guided local wiki/Foam/Markdown notes. When to Use
Local Directory Resolution
Args: pmids: Articles to save. Accepts "last", comma-separated PMIDs, list, or int. output_dir: Optional target folder for notes. note_format: "wiki" (default, Foam-compatible), "foam", "markdown", or "medpaper". include_abstract: Include abstracts in article notes. overwrite: Overwrite existing per-article notes when filenames collide. create_index: Create a collection index note linking saved articles. collection_name: Optional title/file stem for the index note. template_file: Optional Markdown template with placeholders like {title}, {pmid}, {citation_key}. include_csl_json: Write references.csl.json beside notes for citation-manager handoff. Returns: JSON with output_dir, written files, skipped files, index path, and wiki_validation. Examples: save_literature_notes(pmids="last") save_literature_notes(pmids="last", note_format="medpaper", output_dir="./references") save_literature_notes(pmids="12345678,87654321", template_file="./ref-template.md") | ||||||||||||
| get_fulltextA | š„ Enhanced multi-source fulltext retrieval. Automatically tries multiple sources to find the best fulltext:
With extended_sources=True, also searches: 5. CrossRef (publisher links) 6. DOAJ (Gold OA journals) 7. Zenodo (research repository) 8. PubMed LinkOut (external providers) 9. Semantic Scholar, OpenAlex, arXiv, bioRxiv, medRxiv Accepts flexible input - provide ANY ONE of:
Args: identifier: Auto-detect format - PMID, PMC ID, or DOI Examples: "PMC7096777", "12345678", "10.1001/jama.2024.1234" pmcid: PubMed Central ID (e.g., "PMC7096777", "7096777") pmid: PubMed ID (e.g., "12345678") doi: DOI (e.g., "10.1001/jama.2024.1234") sections: Filter sections (e.g., "introduction,methods,results") include_pdf_links: Include PDF download links (default: True) include_figures: Include figure metadata with image URLs (default: False) extended_sources: Search the extended downloader chain after the standard policy (default: False) output_format: Response format - "markdown" (default), "json", or "toon" allow_browser_session: Control browser-session fallback. - True: force broker fallback when configured - False: disable broker fallback - None: use auto mode from broker configuration Returns: Fulltext content with PDF links from all available sources. Example: get_fulltext(identifier="PMC7096777") get_fulltext(doi="10.1038/s41586-021-03819-2") get_fulltext(pmid="12345678", extended_sources=True) | ||||||||||||
| get_text_mined_termsA | Get text-mined annotations from Europe PMC. Returns entities extracted from the article text including genes, diseases, chemicals, organisms, and more. Useful for identifying key concepts. Args: pmid: PubMed ID of the article (accepts: "12345678", 12345678). pmcid: PMC ID (alternative to PMID, accepts: "PMC7096777", "7096777"). semantic_type: Filter by entity type. Options: - "GENE_PROTEIN": Genes and proteins - "DISEASE": Diseases and conditions - "CHEMICAL": Drugs and chemicals - "ORGANISM": Species and organisms - "GO_TERM": Gene Ontology terms - None: Return all types (default) Returns: List of text-mined entities with counts and sections. | ||||||||||||
| get_article_figuresA | Get structured figure metadata (label, caption, image URL) and PDF links from a PMC Open Access article. Returns all figures with their captions and direct image URLs, plus PDF download links for the complete article. Accepts flexible input - provide ANY ONE of:
Args: identifier: Auto-detect format - PMID or PMC ID. Examples: "PMC12086443", "40384072" pmcid: PubMed Central ID (e.g., "PMC12086443" or "12086443"). pmid: PubMed ID (e.g., "40384072"). The article must be in PMC. include_subfigures: Parse sub-figures (e.g., Figure 3A, 3B) as separate entries. include_tables: Also extract tables rendered as images. Returns: Structured figure data with image URLs, captions, and PDF links. Example: get_article_figures(identifier="PMC12086443") get_article_figures(pmid="40384072") | ||||||||||||
| search_geneA | Search NCBI Gene database for gene information. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā USE CASES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Args: query: Gene name, symbol, or function keyword organism: Filter by organism (e.g., "human", "Homo sapiens", "mouse") limit: Maximum results (1-50) Returns: JSON with gene records including symbols, names, locations | ||||||||||||
| get_gene_detailsA | Get detailed information about a gene by NCBI Gene ID. Args: gene_id: NCBI Gene ID (from search results or known) Returns: JSON with gene details including symbol, name, summary, location | ||||||||||||
| get_gene_literatureA | Get PubMed articles linked to a gene. This uses NCBI's curated gene-to-publication links, which are more precise than keyword searches. Args: gene_id: NCBI Gene ID limit: Maximum PubMed IDs to return (1-100) Returns: JSON with linked PubMed IDs | ||||||||||||
| search_compoundA | Search PubChem for chemical compounds. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā USE CASES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Args: query: Compound name or description limit: Maximum results (1-50) Returns: JSON with compound records including names, formulas, properties | ||||||||||||
| get_compound_detailsA | Get detailed information about a compound by PubChem CID. Args: cid: PubChem Compound ID Returns: JSON with compound details including formula, SMILES, properties | ||||||||||||
| get_compound_literatureA | Get PubMed articles linked to a compound. Uses NCBI's curated compound-to-publication links. Args: cid: PubChem Compound ID limit: Maximum PubMed IDs to return (1-100) Returns: JSON with linked PubMed IDs | ||||||||||||
| search_clinvarA | Search ClinVar for clinical variants. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā USE CASES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Args: query: Gene name, variant, or disease condition limit: Maximum results (1-50) Returns: JSON with variant records including significance and conditions | ||||||||||||
| build_citation_treeA | Build a citation tree (network) from a single article. š³ Creates a visual citation network showing research lineage:
ā ļø IMPORTANT: Only accepts ONE PMID at a time to control API load. For multiple papers, call this tool separately for each. š Output Formats (output_format parameter):
Args: pmid: Single PubMed ID (e.g., "12345678"). Only ONE PMID accepted - do NOT pass multiple. depth: How many levels to traverse (1-3, default 2). - depth=1: Direct citations/references only - depth=2: Also get citations of citations (recommended) - depth=3: Maximum depth (can be slow, ~100+ API calls) direction: Which direction to build the tree: - "forward": Only citing articles (who cites this) - "backward": Only references (what this cites) - "both": Both directions (default, recommended) limit_per_level: Max articles to fetch per node per level (default 5) include_details: Include full article details (default True) output_format: Graph format for visualization (default "cytoscape") - "cytoscape": Cytoscape.js (academic standard, bioinformatics) - "g6": AntV G6 (modern, TypeScript, great for large graphs) - "d3": D3.js force layout (most flexible, Observable notebooks) - "vis": vis-network (simple and easy) - "graphml": GraphML XML (Gephi, VOSviewer, yEd, Pajek) - "mermaid": Mermaid diagram (preview in VS Code Markdown) Returns: JSON string with graph data in the requested format. Includes metadata and statistics regardless of format. Example usage: # Build 2-level tree for a paper (default Cytoscape.js format) build_citation_tree(pmid="33475315", depth=2, direction="both") | ||||||||||||
| build_research_timelineA | Build a research timeline for a topic OR specific PMIDs. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā šÆ TWO MODES OF OPERATION āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Mode 1: Search by topic (default) build_research_timeline(topic="remimazolam") Mode 2: Build from specific PMIDs build_research_timeline(pmids="12345678,23456789", topic="My Timeline") āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā MILESTONE DETECTION āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Automatically detects significant milestones including:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā OUTPUT FORMATS (output_format parameter) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Args: topic: Research topic (drug name, gene, disease, etc.) Required if pmids not provided. Examples: "remimazolam", "BRCA1", "pembrolizumab melanoma" pmids: Comma-separated PMIDs or "last" for previous search results If provided, builds timeline from these specific articles. Example: "12345678,23456789,34567890" max_events: Maximum number of events to include (default: 30) min_year: Filter articles from this year (optional, topic mode only) max_year: Filter articles until this year (optional, topic mode only) include_all: Include non-milestone articles as generic events output_format: "text", "tree", "mermaid", "mindmap", "json", "json_tree", "timeline_js", or "d3" Returns: Research timeline with detected milestones in requested format. Examples: # By topic build_research_timeline(topic="remimazolam", max_events=20) build_research_timeline(topic="CAR-T therapy", min_year=2015, output_format="mermaid") | ||||||||||||
| analyze_timeline_milestonesA | Analyze milestone distribution for a research topic. Provides statistics on:
Args: topic: Research topic to analyze max_results: Maximum articles to analyze Returns: Detailed analysis of milestone patterns. Example: analyze_timeline_milestones("remdesivir COVID-19") | ||||||||||||
| compare_timelinesA | Compare research timelines of multiple topics. Useful for:
Args: topics: Comma-separated topics to compare Example: "remimazolam,propofol,dexmedetomidine" max_events_per_topic: Maximum events per topic Returns: Comparative analysis of the timelines. Example: compare_timelines("remimazolam,propofol", max_events_per_topic=10) | ||||||||||||
| analyze_figure_for_searchA | Analyze a scientific figure or image for literature search. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š¬ VISION-TO-LITERATURE SEARCH (Experimental) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā This tool enables searching for scientific literature based on images. WORKFLOW (Agent MUST follow all steps automatically): āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ļø IMPORTANT RULES: āāāāāāāāāāāāāāāā
SEARCH TYPES: āāāāāāāāāāāāā
USE CASES: āāāāāāāāāā
IMPORTANT: āāāāāāāāāā After analyzing the image, IMMEDIATELY search for related literature. Do NOT ask the user "do you want me to search?" ā just do it. Use English medical terminology in all search queries. Args: image: Base64-encoded image data OR data URI (data:image/png;base64,...) url: URL of the image to analyze context: Optional context about what to look for in the image search_type: Type of analysis focus (comprehensive/methodology/results/structure/medical) Returns: List containing: - ImageContent: The image for you to analyze - TextContent: Instructions for next steps Example: analyze_figure_for_search(url="https://example.com/figure1.png") analyze_figure_for_search(url="https://...", search_type="medical") analyze_figure_for_search(image="data:image/png;base64,iVBORw0...") | ||||||||||||
| configure_institutional_accessA | Configure your institution's link resolver for full-text access. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā šļø INSTITUTIONAL ACCESS CONFIGURATION āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā This tool configures OpenURL link resolver integration, allowing you to access paywalled articles through your institution's library subscription. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā HOW IT WORKS: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā USAGE: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Option 1: Use a preset (easiest) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā configure_institutional_access(preset="ntu") Available presets:
Option 2: Custom URL āāāāāāāāāāāāāāāāāāāāā configure_institutional_access( resolver_url="https://your.library.edu/openurl" ) Option 3: Disable āāāāāāāāāāāāāāāāāāāāā configure_institutional_access(enable=False) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā FINDING YOUR RESOLVER URL: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Args: resolver_url: Your institution's link resolver URL preset: Use a known institution's preset configuration enable: Whether to enable OpenURL links (default: True) test: Compatibility flag reserved for clients that still pass it. Use test_institutional_access() for an explicit resolver test. Returns: Configuration status message | ||||||||||||
| get_institutional_linkA | Generate institutional access link (OpenURL) for an article. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š GET LIBRARY ACCESS LINK āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Generate an OpenURL that will take you through your library's link resolver to access the full text of an article. PREREQUISITES: āāāāāāāāāāāāāāāāā Must first call configure_institutional_access() to set up your resolver. USAGE: āāāāāāāāāāāāāāāāā With PMID (easiest): get_institutional_link(pmid="38353755") With DOI: get_institutional_link(doi="10.1001/jama.2024.1234") With full metadata (most reliable): get_institutional_link( title="Some Article Title", journal="JAMA", year="2024", volume="331", issue="1", pages="45-52" ) Args: pmid: PubMed ID doi: Digital Object Identifier title: Article title journal: Journal name year: Publication year volume: Volume number issue: Issue number pages: Page range (e.g., "45-52") Returns: OpenURL link or error message | ||||||||||||
| list_resolver_presetsA | List available institutional link resolver presets. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š AVAILABLE RESOLVER PRESETS āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā These presets contain pre-configured URLs for common institutions. Use them with configure_institutional_access(preset="name"). Returns: List of available presets with URLs | ||||||||||||
| test_institutional_accessA | Test your institutional link resolver configuration. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š§Ŗ TEST INSTITUTIONAL ACCESS āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Tests if your configured link resolver is:
NOTE: This only tests if the resolver endpoint is reachable. Actual full-text access depends on your institution's subscriptions. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā FREE TEST OPTIONS: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā If you don't have institutional access, you can test with:
Args: pmid: PMID to use for testing (default: 38353755) Returns: Test results including: - Configuration status - Network reachability - Generated OpenURL - Link to test manually | ||||||||||||
| diagnose_institutional_accessA | Diagnose why institutional fulltext access succeeds or fails for an article. Runs up to three probes and reports each path's outcome:
Args: pmid: PubMed ID (used to enrich the OpenURL). doi: DOI (required for the direct + EZproxy probes). try_direct: Run the Phase 1 direct probe (default True). try_ezproxy: Run the Phase 2 EZproxy probe (default True). Returns: Markdown report listing every probe's status, classification, and advice on the next action to take. | ||||||||||||
| convert_icd_meshA | Convert between ICD codes and MeSH terms (bidirectional). āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā š BIDIRECTIONAL CONVERSION āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ICD ā MeSH (provide code): convert_icd_mesh(code="E11") ā Diabetes Mellitus, Type 2 convert_icd_mesh(code="I21") ā Myocardial Infarction convert_icd_mesh(code="250") ā Diabetes Mellitus (ICD-9) convert_icd_mesh(code="U07.1") ā COVID-19 MeSH ā ICD (provide mesh_term): convert_icd_mesh(mesh_term="Diabetes Mellitus") convert_icd_mesh(mesh_term="Heart Failure") Automatically detects ICD version (ICD-9 vs ICD-10) from code format. Args: code: ICD-9 or ICD-10 code (e.g., "E11", "250", "I21.9") mesh_term: MeSH term (e.g., "Diabetes Mellitus", "Heart Failure") Returns: JSON with conversion result and ready-to-use PubMed query Note: Provide either 'code' OR 'mesh_term', not both. | ||||||||||||
| search_biomedical_imagesA | š¼ļø Search biomedical images across Open-i and Europe PMC. Searches medical/scientific images from multiple sources and returns image URLs with metadata (caption, article info, MeSH terms). āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā ļø CRITICAL - LANGUAGE REQUIREMENT: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Open-i ONLY supports English queries. If the user queries in non-English (Chinese, Japanese, Korean, etc.), you MUST:
The tool has built-in translation hints for common CJK medical terms, but YOU should always verify the translation is correct. āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā SOURCES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā EXAMPLES: āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā General image search: search_biomedical_images("chest pneumonia CT scan") X-ray only: search_biomedical_images("fracture", image_type="x") Microscopy images: search_biomedical_images("histology liver", image_type="mc") Clinical teaching images (MedPix): search_biomedical_images("pneumothorax", collection="mpx") Case reports with CC-BY license, sorted by date: search_biomedical_images( "lung cancer", article_type="cr", license_type="by", sort_by="d" ) Cardiology specialty images: search_biomedical_images("echocardiogram", specialty="c") Video content only: search_biomedical_images("surgery technique", video_only=True) āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā Args: query: Search query (e.g., "chest X-ray pneumonia") sources: Image sources to search: - "auto": Select best sources (default) - "openi": Open-i only (best for medical images) - "europe_pmc": Europe PMC only (future) - "all": Search all sources image_type: Filter by image type (Open-i only): Positive filters: - "c": CT scan images - "g": Graphics / line art / diagrams - "m": MRI images - "mc": Microscopy / histology images - "p": PET scan images - "ph": Photographs / clinical photos - "u": Ultrasound images - "x": X-ray images Exclusion filters: - "xg": Exclude Graphics (removes graphic images from results) - "xm": Exclude Multipanel (removes multipanel images) - None: All types (default) collection: Filter by collection (Open-i only): - "pmc": PubMed Central articles - "mpx": MedPix clinical teaching images (high quality) - "cxr": Chest X-ray collection - "hmd": History of Medicine - "usc": USC collection - None: All collections (default) open_access_only: Only return open access images (default True) limit: Maximum number of images to return (default 10, max 50) sort_by: Sort results by (Open-i only): - "r": Relevance (default) - "d": Date (newest first) - "o": Oldest first - "t": Title - "e": Education relevance - "g": Graphics priority article_type: Filter by article type (Open-i only): - "cr": Case Report - "or": Original Research - "re": Review - "sr": Systematic Review - "ra": Research Article - "ed": Editorial - "lt": Letter - "bk": Book - and more... (see API docs) specialty: Filter by medical specialty (Open-i only): - "r": Radiology - "c": Cardiology - "ne": Neurology - "pu": Pulmonology - "d": Dermatology - "g": Gastroenterology - "or": Orthopedics - "o": Ophthalmology - "s": Surgery - "p": Pediatrics - "id": Infectious Disease - "i": Immunology - and more... (see API docs) license_type: Filter by Creative Commons license (Open-i only): - "by": CC-BY (Attribution) - "bync": CC-BY-NC (Attribution-NonCommercial) - "byncnd": CC-BY-NC-ND (Attribution-NonCommercial-NoDerivs) - "byncsa": CC-BY-NC-SA (Attribution-NonCommercial-ShareAlike) subset: Filter by subject subset (Open-i only): - "b": Behavioral Sciences - "c": Cancer - "e": Ethics - "s": Surgery - "x": Toxicology search_fields: Search in specific fields (Open-i only): - "t": Title only - "m": MeSH terms only - "ab": Abstract only - "msh": MeSH heading only - "c": Caption only - "a": Author only video_only: If True, only return video content (default False) Returns: Formatted image results with URLs, captions, and article metadata | ||||||||||||
| manage_pipelineA | Manage saved pipelines through a single facade. Supported actions:
Args: action: One of save, list, load, delete, history, schedule. Default: list. name: Pipeline name for save/delete/history/schedule. config: Pipeline YAML/JSON string for save. source: Pipeline source for load, e.g. "saved:weekly_search" or "file:path/to/pipeline.yaml". tag: Tag filter for list action. tags: Comma-separated tags for save action. description: Description for save action. scope: Scope for save/list actions: workspace, global, auto. limit: History entry limit for history action. cron: 5-field cron expression for schedule action. Empty string removes the schedule. diff_mode: Store diff-mode preference with the schedule. notify: Store notify preference with the schedule. Returns: Same human-readable responses as the legacy pipeline management tools. | ||||||||||||
| save_pipelineA | Save a pipeline configuration for later reuse. The config format is identical to unified_search's pipeline parameter (YAML or JSON). Saved pipelines can be loaded later by name: unified_search(pipeline="saved:weekly_remimazolam") Args: name: Unique identifier (alphanumeric + hyphens/underscores, max 64 chars). Overwrites if name already exists (upsert semantics). config: Pipeline YAML/JSON string. Same format as unified_search pipeline param. tags: Comma-separated tags for filtering (e.g., "anesthesia,sedation"). description: Human-readable description of the pipeline's purpose. scope: Storage scope - "workspace" (project-level, git-trackable), "global" (user-level, cross-project), or "auto" (workspace if available, otherwise global). Default: "auto". Returns: Confirmation with pipeline metadata. | ||||||||||||
| list_pipelinesA | List all saved pipeline configurations. Args: tag: Filter by tag (e.g., "sedation"). Empty = show all. scope: Filter by scope: "workspace", "global", or "" (show all). Returns: Table of saved pipelines with name, scope, description, tags. | ||||||||||||
| load_pipelineA | Load a pipeline configuration for review or editing. Loads from one of three sources:
The returned YAML can be reviewed, modified, and then:
Args: source: Pipeline source identifier (see above). Returns: Full pipeline YAML content + metadata. | ||||||||||||
| delete_pipelineA | Delete a saved pipeline configuration and its execution history. Args: name: Name of the saved pipeline to delete. Returns: Confirmation of deletion. | ||||||||||||
| get_pipeline_historyA | Get execution history for a saved pipeline. Shows past execution results with diff analysis: which articles are new compared to the previous run. Args: name: Name of the saved pipeline. limit: Maximum number of history entries to return (default: 5). Returns: Execution history with date, article count, new/removed articles, status. | ||||||||||||
| schedule_pipelineA | Schedule a saved pipeline for periodic execution. Args: name: Saved pipeline name. cron: Cron expression (5-field). Examples: "0 9 * * 1" (Mon 9am). Empty string removes an existing schedule. diff_mode: When True, store diff-mode preference with the schedule. notify: When True, store notify preference with the schedule. Returns: Schedule confirmation or removal result. | ||||||||||||
| read_sessionC | Read session data through a single facade. Actions:
For remote artifact reads, use artifact_file plus offset/max_chars to page through large files without rerunning upstream searches or fulltext calls. Use artifact_tool/artifact_kind to filter list_artifacts. Local paths are redacted unless include_local_paths=True. | ||||||||||||
| get_session_pmidsA | åå¾ session äøę«åē PMID å蔨ć 解決 Agent čØę¶ę»æč¼åé” - äøéč¦čØä½ęę PMIDļ¼ åÆä»„éØęå¾ session ååć Args: search_index: ęå°ē“¢å¼ - -1: ęčæäøę¬”ęå° (é čØ) - -2: åäøę¬”ęå° - 0, 1, 2...: 第 N ꬔęå° query_filter: åÆéøļ¼ēÆ©éøå å«ę¤åäø²ēęå° Returns: JSON ę ¼å¼ē PMID å蔨åęå°č³čØ Example: get_session_pmids() # ęčæäøę¬”ęå°ē PMIDs get_session_pmids(-2) # åäøę¬”ęå°ē PMIDs get_session_pmids(query_filter="BJA") # å å« "BJA" ēęå° | ||||||||||||
| get_cached_articleA | å¾ session åæ«ååå¾ęē« č©³ę ć ęÆéę°å¼å« fetch_article_details ę“åæ«ļ¼ äøäøę¶č NCBI API quotać Args: pmid: PubMed ID Returns: ęē« č©³ē“°č³čØ (å¦ęåØåæ«åäø) | ||||||||||||
| get_session_summaryA | åå¾ē¶å session ēęč¦č³čØć 锯示快åēę ćęå°ę·å²ęč¦ļ¼å¹«å© Agent äŗč§£ ē®åęåŖäŗč³ęåÆēØć Args: include_history: ęÆå¦å å«å®ę“ęå°ę·å² (é čØ False) history_limit: ę·å²ēęøäøéļ¼å ē¶ include_history=True ęęę (é čØ 10) Returns: Session ęč¦ļ¼å å«åæ«åęē« ęøćęå°ę¬”ęøćęčæęå°ē Examples: get_session_summary() # åŗę¬ęč¦ get_session_summary(include_history=True) # å«å®ę“ęå°ę·å² get_session_summary(include_history=True, history_limit=20) # ę“å¤ę·å² | ||||||||||||
| get_session_logA | åå¾ē¶å session ē activity log čęå°ę·å²ęč¦ć é©åč® user åé”§ęčæåéåŖäŗęå°ćcache/reading-list/exclusion č®åļ¼ä»„åä½ēŗ debug ęē session-level äŗä»¶ęŖ¢č¦ć Args: event_limit: åå³ē event ēęøäøé (é čØ 50) kind: åÆéøļ¼å åå³ē¹å® event kind include_history: ęÆå¦äøä½µå å«ęå°ę·å²ęč¦ (é čØ True) history_limit: ęå°ę·å²ęč¦ēęøäøé (é čØ 10) Returns: Session activity log čęå°ę·å²ęč¦ |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| quick_search | Quick literature search - just find some papers on a topic. Use when: User says "find papers about...", "search for...", "any articles on..." |
| systematic_search | Systematic/comprehensive search using MeSH and synonyms. Use when: User asks for "systematic search", "comprehensive review", "find all papers", or needs thorough coverage. |
| pico_search | PICO-based clinical question search. Use when: User asks comparative questions like "Is A better than B?", "Does X reduce Y?", "In patients with Z, what is the effect of..." |
| explore_paper | Deep exploration starting from a key paper. Use when: User found an important paper and wants to explore the research landscape. |
| gene_drug_research | Research workflow for genes or drugs/compounds. Use when: User asks about a specific gene (BRCA1, TP53) or drug (propofol, aspirin). |
| export_results | Export search results to reference manager formats. Use when: User wants to save, export, or cite the papers found. |
| find_open_access | Find open access versions of papers on a topic. Use when: User needs free full-text access to papers. |
| literature_review | Comprehensive literature review workflow. Use when: User needs a thorough literature review for a research topic. |
| text_mining_workflow | Extract structured information from papers using text mining. Use when: User wants to extract genes, diseases, chemicals mentioned in papers. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| session_last_search | Latest session search metadata and reusable PMID summary. |
| session_last_search_pmids | PMID list from the latest recorded search for immediate reuse. |
| session_last_search_results | Cached article payloads for the latest search PMIDs. |
| session_activity | Recent session activity events plus search history for debugging and review. |
| session_context | Current research session context and cache summary. |
| pubmed_filter_age_group | PubMed age-group filter reference and usage examples. |
| pubmed_filter_sex | PubMed sex filter reference and usage examples. |
| pubmed_filter_species | PubMed species filter reference and usage examples. |
| pubmed_filter_language | PubMed language filter reference and usage examples. |
| pubmed_filter_clinical_query | PubMed Clinical Queries reference and usage examples. |
| pubmed_filter_article_type | PubMed article-type filter reference and usage examples. |
| pubmed_filter_all | Combined filter reference for PubMed search options. |
| pubmed_tools_reference | Category view of all registered MCP tools. |
| pubmed_icd_mapping | Bidirectional ICD-9/10 and MeSH reference data. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/u9401066/pubmed-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server