Search and retrieve clinical practice guidelines across 12+ authoritative sources including NICE, WHO, ADA, AHA/ACC, NCCN, SIGN, CPIC, CMA, CTFPHC, GIN, MAGICapp, PubMed, EuropePMC, TRIP, and OpenAlex. Covers disease management, cardiology, oncology, diabetes, pharmacogenomics, and more. Use when users ask about clinical guidelines, treatment recommendations, standard of care, evidence-based medicine, or drug-gene dosing recommendations.
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:
Apply when user asks:
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}})
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 | — |
NICE_Clinical_Guidelines_Search ⭐ (Best general source)
query (string, required), limit (integer, required)[{title, url, summary, content, date}, ...]result = tu.tools.NICE_Clinical_Guidelines_Search(...); isinstance(result, list)NICE_Clinical_Guidelines_Search(query='type 2 diabetes management', limit=5)GIN_Guidelines_Search ⭐ (Best multi-society aggregator)
query (string, required), limit (integer, required)[{title, url, description, source, organization}, ...]GIN_Guidelines_Search(query='colorectal cancer screening', limit=5)TRIP_Database_Guidelines_Search
query (string, required), limit (integer, required), search_type (string, required — must be 'guidelines')[{title, url, description, content, publication}, ...]TRIP_Database_Guidelines_Search(query='diabetes', limit=5, search_type='guidelines')WHO_Guidelines_Search ⚠️ (Limited relevance)
query (string, required), limit (integer, required)[{title, url, description, content, source}, ...]WHO_Guidelines_Search(query='diabetes', limit=5)CMA_Guidelines_Search (Canadian)
query (string, required), limit (integer, required)[{title, url, description, content, date}, ...]CMA_Guidelines_Search(query='diabetes', limit=5)SIGN_search_guidelines (Scottish/UK)
query (string, required — NOT q), limit (integer, optional)[{number, title, topic, published, url}, ...]SIGN_search_guidelines(query='diabetes', limit=5)CTFPHC_search_guidelines (Canadian prevention)
query (string, required — NOT q), limit (integer, optional)[{title, url, year}, ...]CTFPHC_search_guidelines(query='colorectal cancer', limit=5)OpenAlex_Guidelines_Search
query (string, required), limit (integer, required), year_from (integer, optional), year_to (integer, optional)[{title, authors, institutions, year, doi}, ...]OpenAlex_Guidelines_Search(query='diabetes management', limit=5) (year params optional)OpenAlex_Guidelines_Search(query='diabetes management', limit=5, year_from=2020, year_to=2024)EuropePMC_Guidelines_Search
query (string, required), limit (integer, required)[{title, pmid, pmcid, doi, authors}, ...]EuropePMC_Guidelines_Search(query='diabetes guideline', limit=5)PubMed_Guidelines_Search
query (string, required), limit (integer, required), api_key (string, optional — use '' for anonymous)[{title, pmid, pmcid, doi}, ...]PubMed_Guidelines_Search(query='diabetes guideline', limit=5) (api_key optional)ADA Standards of Care (Diabetes)
ADA_list_standards_sections() — No parameters. Lists all 19 sections of ADA Standards of Care (2026).
ADA_search_standards(query, limit) — Search within ADA Standards.
[{title, ...}]'glycemic targets', 'pharmacologic approaches', 'cardiovascular risk''first-line medication metformin'ADA_get_standards_section(section_number) — Get metadata for a specific section.
AHA/ACC Cardiology
AHA_ACC_search_guidelines(query, limit) — Search AHA/ACC guidelines.
[{title, ...}]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).
AHA_ACC_get_guideline(pmid='37952199')NCCN Oncology
NCCN_list_patient_guidelines(limit) — List all NCCN patient guideline resources (up to 74).
[{cancer_type, url, category}, ...]cancer_type, NOT titler[i]['cancer_type'] to get the cancer name, r[i]['url'] for URLNCCN_search_guidelines(query, limit) — Search NCCN publications.
[{title, ...}]NCCN_get_patient_guideline(url) — Get full text of a patient guideline.
url (string) — the full URL from NCCN_list_patient_guidelinesNCCN_get_patient_guideline(url='https://www.nccn.org/patientresources/patient-resources/guidelines-for-patients/guidelines-for-patients-details?patientGuidelineId=61')MAGICapp Living Guidelines
MAGICapp_list_guidelines(limit) — List living guidelines.
r.get('data', []) gives the listname, NOT title; use item['name'] for guideline titleitem['guidelineId'] for follow-up callsMAGICapp_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).
q (NOT query), size (NOT limit — use size for result count)r.get('data', {}).get('results', []) gives the listNCI_search_cancer_resources(q='colorectal cancer screening', size=5)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.
CPIC_get_gene_info(genesymbol='CYP2D6')CPIC_get_gene_drug_pairs(genesymbol, limit) — All gene-drug interactions with CPIC levels.
data = list of {genesymbol, drugid, cpiclevel, pgkbcalevel, usedforrecommendation, ...}cpiclevel A/B/C/D: A = strongest evidenceCPIC_list_guidelines(limit) — All CPIC guidelines.
data = list of {name: 'GENE and Drug', guidelineId, url, ...}guidelineId for a specific gene+drug pairCPIC_get_recommendations(guideline_id, limit) — Get dosing recommendations.
guideline_id (integer), NOT genesymbolCPIC_list_guidelines, then call thisCPIC_get_recommendations(guideline_id=100416, limit=20)CPIC_get_alleles(genesymbol, limit) — Allele definitions.
clinicalfunctionalstatus field (NOT functionalstatus which is always null)CPIC_get_alleles(genesymbol='CYP2D6', limit=10)CPIC_get_drug_info(drugname) — Drug details.
CPIC_get_drug_info(drugname='codeine')CPIC_search_gene_drug_pairs(genesymbol, limit) — Search gene-drug pairs.
genesymbol='eq.CYP2D6' (not just 'CYP2D6')CPIC_search_gene_drug_pairs(genesymbol='eq.CYP2D6', limit=5)NICE_Guideline_Full_Text(url) — Get NICE guideline text.
.../chapter/Recommendations)WHO_Guideline_Full_Text(url) — Get WHO guideline text.
AHA_ACC_get_guideline(pmid) — Get AHA/ACC guideline text via PMC.
# 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]
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)
query, limit) — UK, high qualityquery, limit) — multi-society aggregator ⭐ best for breadthquery, limit, search_type='guidelines')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)'pharmacologic approaches' instead of 'metformin first-line')| 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' |
| 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 | → |
.../chapter/Recommendations) may need direct URL| 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', []) |
datar.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'] |