tooluniverse-clinical-guidelines
Clinical Guidelines Search & Retrieval
Search and retrieve evidence-based clinical practice guidelines from 12+ authoritative sources spanning 41 tools. Covers disease management guidelines, society recommendations, pharmacogenomics guidance, and patient resources.
KEY PRINCIPLES:
- Multi-source search — Search ≥3 databases in parallel for comprehensive coverage
- Source-appropriate queries — Match query style to each database's strengths
- Condition + society specific — When user names a disease or society, use targeted tools
- English queries first — Use English medical terms in all tool calls; respond in user's language
- Cite sources — Every guideline result must include source organization and URL
When to Use
Apply when user asks:
- "What are the guidelines for [condition]?"
- "What does [ADA/AHA/NCCN/NICE/WHO] say about [topic]?"
- "Standard of care for [disease]?"
- "Drug-gene interactions for [drug/gene]?" (pharmacogenomics)
- "Screening recommendations for [condition]?"
- "Is there a guideline for [clinical question]?"
- "What do guidelines say about [treatment/drug]?"
- "Clinical recommendations for [oncology topic]?"
Phase 0: Tool Verification (MANDATORY FIRST STEP)
Before searching, verify tools load:
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
assert hasattr(tu.tools, 'NICE_Clinical_Guidelines_Search')
Correct call pattern (use either approach):
# Option A: direct attribute access
result = tu.tools.NICE_Clinical_Guidelines_Search(query='diabetes', limit=5)
# Option B: run_one_function
result = tu.run_one_function({'name': 'NICE_Clinical_Guidelines_Search', 'arguments': {'query': 'diabetes', 'limit': 5}})
Phase 1: Identify Query Strategy
Determine which tools to use based on the user's question:
| Query type | Primary tools | Secondary tools |
|---|---|---|
| General disease guideline | NICE, TRIP, GIN | PubMed, EuropePMC, CMA |
| Cardiology | AHA_ACC_search_guidelines, AHA_list_guidelines | NICE, TRIP |
| Oncology | NCCN_search_guidelines, NCCN_list_patient_guidelines | NICE, GIN |
| Diabetes / endocrinology | ADA_search_standards, ADA_list_standards_sections | NICE, SIGN |
| Pharmacogenomics | CPIC_get_gene_drug_pairs, CPIC_list_guidelines | CPIC_get_gene_info |
| Canadian guidelines | CMA_Guidelines_Search, CTFPHC_search_guidelines | — |
| Scottish/UK guidelines | SIGN_search_guidelines, NICE | CMA |
| International guidelines | GIN_Guidelines_Search | OpenAlex, EuropePMC |
| Living guidelines | MAGICapp_list_guidelines | GIN |
| Full-text retrieval | NICE_Guideline_Full_Text, WHO_Guideline_Full_Text, AHA_ACC_get_guideline | — |
Phase 2: Multi-Source Search
2.1 General Search (Use ≥3 databases)
NICE_Clinical_Guidelines_Search ⭐ (Best general source)
- Parameters:
query(string, required),limit(integer, required) - Returns: list directly (NOT wrapped in dict) —
[{title, url, summary, content, date}, ...] - Handle:
result = tu.tools.NICE_Clinical_Guidelines_Search(...); isinstance(result, list) - Example:
NICE_Clinical_Guidelines_Search(query='type 2 diabetes management', limit=5)
GIN_Guidelines_Search ⭐ (Best multi-society aggregator)
- Parameters:
query(string, required),limit(integer, required) - Returns: list directly —
[{title, url, description, source, organization}, ...] - Example:
GIN_Guidelines_Search(query='colorectal cancer screening', limit=5)
TRIP_Database_Guidelines_Search
- Parameters:
query(string, required),limit(integer, required),search_type(string, required — must be'guidelines') - Returns: list directly —
[{title, url, description, content, publication}, ...] - Example:
TRIP_Database_Guidelines_Search(query='diabetes', limit=5, search_type='guidelines')
WHO_Guidelines_Search ⚠️ (Limited relevance)
- Parameters:
query(string, required),limit(integer, required) - Returns: list directly —
[{title, url, description, content, source}, ...] - LIMITATION: Does not reliably filter by topic. May return unrelated recent WHO publications.
- Use for broad international queries; do not rely on for specific disease searches.
- Example:
WHO_Guidelines_Search(query='diabetes', limit=5)
CMA_Guidelines_Search (Canadian)
- Parameters:
query(string, required),limit(integer, required) - Returns: list directly —
[{title, url, description, content, date}, ...] - Example:
CMA_Guidelines_Search(query='diabetes', limit=5)
SIGN_search_guidelines (Scottish/UK)
- Parameters:
query(string, required — NOTq),limit(integer, optional) - Returns: list directly —
[{number, title, topic, published, url}, ...] - Example:
SIGN_search_guidelines(query='diabetes', limit=5)
CTFPHC_search_guidelines (Canadian prevention)
- Parameters:
query(string, required — NOTq),limit(integer, optional) - Returns: list directly —
[{title, url, year}, ...] - Example:
CTFPHC_search_guidelines(query='colorectal cancer', limit=5)
OpenAlex_Guidelines_Search
- Parameters:
query(string, required),limit(integer, required),year_from(integer, optional),year_to(integer, optional) - Returns: list directly —
[{title, authors, institutions, year, doi}, ...] - Example:
OpenAlex_Guidelines_Search(query='diabetes management', limit=5)(year params optional) - With years:
OpenAlex_Guidelines_Search(query='diabetes management', limit=5, year_from=2020, year_to=2024)
EuropePMC_Guidelines_Search
- Parameters:
query(string, required),limit(integer, required) - Returns: list directly —
[{title, pmid, pmcid, doi, authors}, ...] - Note: May return loosely relevant results; use for literature discovery not definitive guidelines
- Example:
EuropePMC_Guidelines_Search(query='diabetes guideline', limit=5)
PubMed_Guidelines_Search
- Parameters:
query(string, required),limit(integer, required),api_key(string, optional — use''for anonymous) - Returns: list directly —
[{title, pmid, pmcid, doi}, ...] - Example:
PubMed_Guidelines_Search(query='diabetes guideline', limit=5)(api_key optional)
2.2 Society-Specific Search
ADA Standards of Care (Diabetes)
ADA_list_standards_sections() — No parameters. Lists all 19 sections of ADA Standards of Care (2026).
- Returns list of section titles with PMIDs
ADA_search_standards(query, limit) — Search within ADA Standards.
- Returns: list —
[{title, ...}] - Note: Uses PubMed corporate author filter. Use broad medical terms, not specific phrases.
- ✅ Works:
'glycemic targets','pharmacologic approaches','cardiovascular risk' - ❌ May fail: very specific phrases like
'first-line medication metformin'
ADA_get_standards_section(section_number) — Get metadata for a specific section.
- Returns dict with section abstract (not full PMC text)
AHA/ACC Cardiology
AHA_ACC_search_guidelines(query, limit) — Search AHA/ACC guidelines.
- Returns: list directly —
[{title, ...}] - Example:
AHA_ACC_search_guidelines(query='heart failure management', limit=5)
AHA_list_guidelines(limit) / ACC_list_guidelines(limit) — List recent guidelines.
AHA_ACC_get_guideline(pmid) — Get full text of AHA/ACC guideline by PMID (via PMC).
- Returns dict with full text
- Example:
AHA_ACC_get_guideline(pmid='37952199')
NCCN Oncology
NCCN_list_patient_guidelines(limit) — List all NCCN patient guideline resources (up to 74).
- Returns: list directly —
[{cancer_type, url, category}, ...] - ⚠️ Field is
cancer_type, NOTtitle - Use
r[i]['cancer_type']to get the cancer name,r[i]['url']for URL
NCCN_search_guidelines(query, limit) — Search NCCN publications.
- Returns: list directly —
[{title, ...}] - Note: Returns PubMed abstracts of NCCN articles (JNCCN), not proprietary guideline text
NCCN_get_patient_guideline(url) — Get full text of a patient guideline.
- Parameter:
url(string) — the full URL from NCCN_list_patient_guidelines - Example:
NCCN_get_patient_guideline(url='https://www.nccn.org/patientresources/patient-resources/guidelines-for-patients/guidelines-for-patients-details?patientGuidelineId=61') - ⚠️ Do NOT pass an integer ID — pass the full URL string
MAGICapp Living Guidelines
MAGICapp_list_guidelines(limit) — List living guidelines.
- Returns: dict wrapped —
r.get('data', [])gives the list - ⚠️ Field is
name, NOTtitle; useitem['name']for guideline title - Use
item['guidelineId']for follow-up calls
MAGICapp_get_guideline(guideline_id) — Get full guideline details.
MAGICapp_get_recommendations(guideline_id) — Get recommendations for a guideline.
MAGICapp_get_sections(guideline_id) — Get sections.
NCI Resources ⚠️ (Research tools catalog, NOT clinical guidelines)
NCI_search_cancer_resources(q, size) — Search NCI Research Resources for Researchers (R4R).
- ⚠️ This is a catalog of bioinformatics tools, datasets, and lab instruments — NOT a clinical guidelines database
- Parameters:
q(NOTquery),size(NOTlimit— usesizefor result count) - Returns: dict —
r.get('data', {}).get('results', [])gives the list - Useful for: finding analysis tools, datasets, bioinformatics resources related to a cancer type
- Example:
NCI_search_cancer_resources(q='colorectal cancer screening', size=5)
2.3 Pharmacogenomics Search (CPIC)
Recommended workflow for gene-drug queries:
Step 1: CPIC_get_gene_info(genesymbol='GENE') → gene overview
Step 2: CPIC_get_gene_drug_pairs(genesymbol='GENE') → all drug pairs + CPIC levels
Step 3: CPIC_list_guidelines(limit=50) → find guideline_id for gene+drug
Step 4: CPIC_get_recommendations(guideline_id=N) → specific dosing recommendations
Step 5: CPIC_get_alleles(genesymbol='GENE') → allele definitions
All CPIC tools return dict-wrapped: use r.get('data', []) to access results.
CPIC_get_gene_info(genesymbol) — Gene overview.
- Example:
CPIC_get_gene_info(genesymbol='CYP2D6')
CPIC_get_gene_drug_pairs(genesymbol, limit) — All gene-drug interactions with CPIC levels.
- Returns:
data= list of{genesymbol, drugid, cpiclevel, pgkbcalevel, usedforrecommendation, ...} cpiclevelA/B/C/D: A = strongest evidence
CPIC_list_guidelines(limit) — All CPIC guidelines.
- Returns:
data= list of{name: 'GENE and Drug', guidelineId, url, ...} - Use to find the
guidelineIdfor a specific gene+drug pair
CPIC_get_recommendations(guideline_id, limit) — Get dosing recommendations.
- ⚠️ Parameter is
guideline_id(integer), NOTgenesymbol - Workflow: first find guideline_id from
CPIC_list_guidelines, then call this - Example:
CPIC_get_recommendations(guideline_id=100416, limit=20) - Returns duplicate records per allele combination — deduplicate by phenotype before presenting
CPIC_get_alleles(genesymbol, limit) — Allele definitions.
- Use
clinicalfunctionalstatusfield (NOTfunctionalstatuswhich is always null) - Example:
CPIC_get_alleles(genesymbol='CYP2D6', limit=10)
CPIC_get_drug_info(drugname) — Drug details.
- Example:
CPIC_get_drug_info(drugname='codeine')
CPIC_search_gene_drug_pairs(genesymbol, limit) — Search gene-drug pairs.
- ⚠️ Requires PostgREST filter syntax:
genesymbol='eq.CYP2D6'(not just'CYP2D6') - Example:
CPIC_search_gene_drug_pairs(genesymbol='eq.CYP2D6', limit=5)
2.4 Full-Text Retrieval
NICE_Guideline_Full_Text(url) — Get NICE guideline text.
- Use URL from NICE_Clinical_Guidelines_Search results
- Returns dict (may have empty data for some guidelines; try chapter URLs like
.../chapter/Recommendations)
WHO_Guideline_Full_Text(url) — Get WHO guideline text.
- Note: Most WHO T2D content is in PDFs; tool may return PDF link not full text
AHA_ACC_get_guideline(pmid) — Get AHA/ACC guideline text via PMC.
Phase 3: Synthesize Results
3.1 Report Structure
# Clinical Guidelines: [Topic]
## Summary
[2-3 sentence overview of what guidelines say]
## Key Recommendations
### [Source 1: NICE/ADA/NCCN/etc.]
[Key recommendations with evidence grade, URL]
### [Source 2]
[Key recommendations]
## Pharmacogenomics (if applicable)
[CPIC phenotype-to-recommendation table]
## References
[All URLs cited]
3.2 Evidence Grading
- Grade A (ADA) / Class I (AHA) / Strong (SIGN) = high confidence
- Grade B/C = moderate confidence; Grade D / Consensus = expert opinion
- CPIC Level A = strongest PGx evidence; B = moderate; C/D = limited
- Note recommendation year — guidelines vary in currency (SIGN 2025, ADA 2026, NICE Feb 2026)
3.3 CPIC Recommendation Deduplication
CPIC returns multiple records for the same phenotype (one per allele combination). Before presenting:
seen_phenotypes = set()
unique_recs = []
for rec in recs:
phenotype = rec.get('phenotype') or rec.get('lookupkey', '')
if phenotype not in seen_phenotypes:
seen_phenotypes.add(phenotype)
unique_recs.append(rec)
Phase 4: Decision Logic
General disease guideline:
- NICE (
query,limit) — UK, high quality - GIN (
query,limit) — multi-society aggregator ⭐ best for breadth - TRIP (
query,limit,search_type='guidelines') - If cardiac → add AHA_ACC_search_guidelines
- If cancer → add NCCN_search_guidelines + NCCN_list_patient_guidelines
- If diabetes → add ADA_list_standards_sections + ADA_search_standards
Pharmacogenomics:
CPIC_get_gene_info(genesymbol)→ overviewCPIC_get_gene_drug_pairs(genesymbol)→ all drugs with CPIC levelsCPIC_list_guidelines(limit=50)→ find guideline_id for target gene+drugCPIC_get_recommendations(guideline_id=N)→ specific recs (deduplicate by phenotype)
Full text retrieval:
- Find guideline URL/PMID from search results
- NICE URL → NICE_Guideline_Full_Text
- AHA/ACC PMID → AHA_ACC_get_guideline
- WHO URL → WHO_Guideline_Full_Text
- NCCN patient guideline URL → NCCN_get_patient_guideline
Fallback strategy:
- If NICE returns empty → try TRIP or GIN
- If ADA returns 0 results → broaden query terms (e.g.,
'pharmacologic approaches'instead of'metformin first-line') - If WHO returns irrelevant results → skip WHO, use GIN or EuropePMC instead
- If CPIC returns no recommendations → list gene-drug pairs with CPIC levels as a proxy
Critical Parameter Notes (Verified by Testing)
| Tool | CORRECT | WRONG |
|---|---|---|
| NICE_Clinical_Guidelines_Search | query='...', limit=N (both required) |
❌ q='...' |
| TRIP_Database_Guidelines_Search | search_type='guidelines' required |
❌ omitting search_type |
| OpenAlex_Guidelines_Search | year_from/year_to are optional |
❌ treating as required |
| PubMed_Guidelines_Search | api_key is optional (omit or use '') |
❌ treating api_key as required |
| GIN_Guidelines_Search | limit=N required |
❌ omitting limit |
| CMA_Guidelines_Search | limit=N required |
❌ omitting limit |
| SIGN_search_guidelines | query='...' (NOT q) |
❌ q='...' |
| CTFPHC_search_guidelines | query='...' (NOT q) |
❌ q='...' |
| NCI_search_cancer_resources | q='...', size=N (NOT limit) |
❌ query=... or limit=N |
| NCCN_list_patient_guidelines | field cancer_type (not title) |
❌ .get('title') |
| NCCN_get_patient_guideline | url='https://...' (full URL string) |
❌ integer patientGuidelineId |
| MAGICapp_list_guidelines | r.get('data', []) for list |
❌ accessing r directly as list |
| MAGICapp_* items | field name (not title) |
❌ .get('title') |
| CPIC_* tools | r.get('data', []) for list |
❌ accessing r directly |
| CPIC_get_recommendations | guideline_id=N (integer) |
❌ genesymbol='CYP2D6' |
| CPIC_search_gene_drug_pairs | genesymbol='eq.CYP2D6' (PostgREST) |
❌ genesymbol='CYP2D6' |
| CPIC_get_alleles | use clinicalfunctionalstatus field |
❌ functionalstatus (always null) |
| NCI_search_cancer_resources | r.get('data',{}).get('results',[]) |
❌ r.get('data', []) |
Response Format Reference
| Tool | Return type | Access pattern |
|---|---|---|
| NICE_Clinical_Guidelines_Search | list (raw) | result[0]['title'] |
| GIN_Guidelines_Search | list (raw) | result[0]['title'] |
| TRIP_Database_Guidelines_Search | list (raw) | result[0]['title'] |
| WHO_Guidelines_Search | list (raw) | result[0]['title'] |
| EuropePMC_Guidelines_Search | list (raw) | result[0]['title'] |
| PubMed_Guidelines_Search | list (raw) | result[0]['title'] |
| CMA_Guidelines_Search | list (raw) | result[0]['title'] |
| SIGN_search_guidelines | list (raw) | result[0]['title'] |
| CTFPHC_search_guidelines | list (raw) | result[0]['title'] |
| ADA_search_standards | list (raw) | result[0]['title'] |
| AHA_ACC_search_guidelines | list (raw) | result[0]['title'] |
| NCCN_search_guidelines | list (raw) | result[0]['title'] |
| NCCN_list_patient_guidelines | list (raw) | result[0]['cancer_type'] |
| OpenAlex_Guidelines_Search | list (raw) | result[0]['title'] |
| CPIC_list_guidelines | dict → data |
r.get('data', [])[0]['name'] |
| CPIC_get_gene_drug_pairs | dict → data |
r.get('data', [])[0]['genesymbol'] |
| CPIC_get_recommendations | dict → data |
r.get('data', [])[0] |
| CPIC_get_gene_info | dict → data |
r.get('data', {}) |
| MAGICapp_list_guidelines | dict → data |
r.get('data', [])[0]['name'] |
| NCI_search_cancer_resources | dict nested | r.get('data',{}).get('results',[])[0]['title'] |
Known Limitations
- WHO_Guidelines_Search: Returns recently-published WHO docs regardless of query topic — results may be irrelevant for specific diseases. Supplement with GIN for international guidelines.
- NCI_search_cancer_resources: Catalogs research tools/datasets, NOT clinical practice guidelines.
- NICE_Guideline_Full_Text: Retrieves overview page only; recommendation sub-pages (
.../chapter/Recommendations) may need direct URL - SIGN: No full-text tool; guideline text only available as PDFs
- ADA_get_standards_section: Returns abstract only, not full PMC text
- CPIC_get_recommendations: Returns many duplicate records per allele combination; deduplicate by phenotype
- NCCN_search_guidelines: Returns PubMed/JNCCN abstracts, not proprietary NCCN guideline text
- TRIP content: Some TRIP results link to PDF-gated URLs; content extraction may fail with 403
Missing Sources (Potential Future Tools)
- USPSTF (US Preventive Services Task Force) — primary US screening recommendations
- ACG (American College of Gastroenterology) — gastroenterology guidelines
- AGA (American Gastroenterological Association)
- Cochrane Reviews — systematic reviews on clinical interventions
- AHRQ — Agency for Healthcare Research and Quality
More from wu-yc/labclaw
tooluniverse-chemical-safety
Comprehensive chemical safety and toxicology assessment integrating ADMET-AI predictions, CTD toxicogenomics, FDA label safety data, DrugBank safety profiles, and STITCH chemical-protein interactions. Performs predictive toxicology (AMES, DILI, LD50, carcinogenicity), organ/system toxicity profiling, chemical-gene-disease relationship mapping, regulatory safety extraction, and environmental hazard assessment. Use when asked about chemical toxicity, drug safety profiling, ADMET properties, environmental health risks, chemical hazard assessment, or toxicogenomic analysis.
20rowan
Cloud-based quantum chemistry platform with Python API. Preferred for computational chemistry workflows including pKa prediction, geometry optimization, conformer searching, molecular property calculations, protein-ligand docking (AutoDock Vina), and AI protein cofolding (Chai-1, Boltz-1/2). Use when tasks involve quantum chemistry calculations, molecular property prediction, DFT or semiempirical methods, neural network potentials (AIMNet2), protein-ligand binding predictions, or automated computational chemistry pipelines. Provides cloud compute resources with no local setup required.
19tooluniverse-protein-therapeutic-design
Design novel protein therapeutics (binders, enzymes, scaffolds) using AI-guided de novo design. Uses RFdiffusion for backbone generation, ProteinMPNN for sequence design, ESMFold/AlphaFold2 for validation. Use when asked to design protein binders, therapeutic proteins, or engineer protein function.
19tooluniverse-drug-repurposing
Identify drug repurposing candidates using ToolUniverse for target-based, compound-based, and disease-driven strategies. Searches existing drugs for new therapeutic indications by analyzing targets, bioactivity, safety profiles, and literature evidence. Use when exploring drug repurposing opportunities, finding new indications for approved drugs, or when users mention drug repositioning, off-label uses, or therapeutic alternatives.
19rdkit
Cheminformatics toolkit for fine-grained molecular control. SMILES/SDF parsing, descriptors (MW, LogP, TPSA), fingerprints, substructure search, 2D/3D generation, similarity, reactions. For standard workflows with simpler interface, use datamol (wrapper around RDKit). Use rdkit for advanced control, custom sanitization, specialized algorithms.
18tooluniverse-drug-research
Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections. Covers identity, chemistry, pharmacology, targets, clinical trials, safety, pharmacogenomics, and ADMET properties. Use when users ask about drugs, medications, therapeutics, or need drug profiling, safety assessment, or clinical development research.
18