General
tooluniverse-clinical-guidelines - Claude MCP Skill
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.
SEO Guide: Enhance your AI agent with the tooluniverse-clinical-guidelines tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to search and retrieve clinical practice guidelines across 12+ authoritative sources including nice, wh... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
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**:
1. **Multi-source search** — Search ≥3 databases in parallel for comprehensive coverage
2. **Source-appropriate queries** — Match query style to each database's strengths
3. **Condition + society specific** — When user names a disease or society, use targeted tools
4. **English queries first** — Use English medical terms in all tool calls; respond in user's language
5. **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:
```python
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
assert hasattr(tu.tools, 'NICE_Clinical_Guidelines_Search')
```
**Correct call pattern** (use either approach):
```python
# 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 — NOT `q`), `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 — NOT `q`), `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`, NOT `title`
- 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`, NOT `title`; use `item['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` (NOT `query`), `size` (NOT `limit` — use `size` for 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, ...}`
- `cpiclevel` A/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 `guidelineId` for a specific gene+drug pair
`CPIC_get_recommendations(guideline_id, limit)` — Get dosing recommendations.
- ⚠️ **Parameter is `guideline_id` (integer), NOT `genesymbol`**
- 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 `clinicalfunctionalstatus` field (NOT `functionalstatus` which 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:
```python
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:
1. NICE (`query`, `limit`) — UK, high quality
2. GIN (`query`, `limit`) — multi-society aggregator ⭐ best for breadth
3. TRIP (`query`, `limit`, `search_type='guidelines'`)
4. If cardiac → add AHA_ACC_search_guidelines
5. If cancer → add NCCN_search_guidelines + NCCN_list_patient_guidelines
6. If diabetes → add ADA_list_standards_sections + ADA_search_standards
### Pharmacogenomics:
1. `CPIC_get_gene_info(genesymbol)` → overview
2. `CPIC_get_gene_drug_pairs(genesymbol)` → all drugs with CPIC levels
3. `CPIC_list_guidelines(limit=50)` → find guideline_id for target gene+drug
4. `CPIC_get_recommendations(guideline_id=N)` → specific recs (deduplicate by phenotype)
### Full text retrieval:
1. Find guideline URL/PMID from search results
2. NICE URL → NICE_Guideline_Full_Text
3. AHA/ACC PMID → AHA_ACC_get_guideline
4. WHO URL → WHO_Guideline_Full_Text
5. 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 QualitySignals
Information
- Repository
- mims-harvard/ToolUniverse
- Author
- mims-harvard
- Last Sync
- 3/12/2026
- Repo Updated
- 3/12/2026
- Created
- 2/24/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
upgrade-nodejs
Upgrading Bun's Self-Reported Node.js Version
cursorrules
CrewAI Development Rules
cn-check
Install and run the Continue CLI (`cn`) to execute AI agent checks on local code changes. Use when asked to "run checks", "lint with AI", "review my changes with cn", or set up Continue CI locally.
CLAUDE
CLAUDE.md
Related Guides
Bear Notes Claude Skill: Your AI-Powered Note-Taking Assistant
Learn how to use the bear-notes Claude skill. Complete guide with installation instructions and examples.
Mastering tmux with Claude: A Complete Guide to the tmux Claude Skill
Learn how to use the tmux Claude skill. Complete guide with installation instructions and examples.
OpenAI Whisper API Claude Skill: Complete Guide to AI-Powered Audio Transcription
Learn how to use the openai-whisper-api Claude skill. Complete guide with installation instructions and examples.