Agent skill
tooluniverse-clinical-guidelines
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.
Install this agent skill to your Project
npx add-skill https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills/tree/main/skills/tooluniverse-clinical-guidelines
SKILL.md
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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
vcf-annotator
Annotate VCF variants with VEP, ClinVar, gnomAD frequencies, and ancestry-aware context. Generates prioritised variant reports.
chemist-analyst
Analyzes events through chemistry lens using molecular structure, reaction mechanisms, thermodynamics, kinetics, and analytical techniques (spectroscopy, chromatography, mass spectrometry). Provides insights on chemical processes, material properties, reaction pathways, synthesis, and analytical methods. Use when: Chemical reactions, material analysis, synthesis planning, process optimization, environmental chemistry. Evaluates: Molecular structure, reaction mechanisms, yield, selectivity, safety, environmental impact.
bio-alignment-io
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.
sleep-analyzer
分析睡眠数据、识别睡眠模式、评估睡眠质量,并提供个性化睡眠改善建议。支持与其他健康数据的关联分析。
metabolomics-workbench-database
Access NIH Metabolomics Workbench via REST API (4,200+ studies). Query metabolites, RefMet nomenclature, MS/NMR data, m/z searches, study metadata, for metabolomics and biomarker discovery.
bio-hi-c-analysis-matrix-operations
Balance, normalize, and transform Hi-C contact matrices using cooler and cooltools. Apply iterative correction (ICE), compute expected values, and generate observed/expected matrices. Use when normalizing or transforming Hi-C matrices.
Didn't find tool you were looking for?