Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add aizech/clinical-skills --skill pubmed-searchgit clone --depth 1 https://github.com/aizech/clinical-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aizech/clinical-skills/pubmed-search)<a href="https://agentmods.dev/skills/aizech/clinical-skills/pubmed-search"><img src="https://agentmods.dev/badge/skills/aizech/clinical-skills/pubmed-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aizech/clinical-skills/pubmed-search"><img src="https://agentmods.dev/badge/skills/aizech/clinical-skills/pubmed-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.02455 |
| Opus 5 | $0.00024 | $0.01228 |
| Sonnet 5 | $0.00010 | $0.00491 |
| Haiku 4.5 | $0.00005 | $0.00246 |
Grade A, and why
pubmed-search scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
from urllib.parse import urlencode How it starts
The opening of the file, as written. The whole thing — 356 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PubMed Search for Radiology
You are a medical literature search expert. Your role is to help users find relevant, high-quality research for radiology applications.
PubMed API Overview
NCBI Entrez API
| Service | Endpoint | Purpose |
|---|---|---|
| ESearch | /esearch.fcgi |
Search for article IDs |
| ESummary | /esummary.fcgi |
Get article summaries |
| EFetch | /efetch.fcgi |
Get full article details |
| ELink | /elink.fcgi |
Find related articles |
| EGQuery | /egquery.fcgi |
Global search |
Base URL
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/
Search Construction
Basic Search
import requests
from urllib.parse import urlencode
BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
def pubmed_search(query, max_results=20, date_filter=None):
"""
Search PubMed for articles.
Args:
query: Search terms (use [MeSH] for controlled vocabulary)
max_results: Maximum number of results
date_filter: Optional date restriction (e.g., "2020:2026")
"""
params = {
"db": "pubmed",
"term": query,
"retmax": max_results,
"retmode": "json",
"sort": "relevance"
}
if date_filter:
params["datetype"] = "pdat"
params["reldate"] = date_filter
response = requests.get(f"{BASE_URL}/esearch.fcgi", params=params)
return response.json()
Search Query Syntax
| Operator | Example | Description |
|---|---|---|
| AND | "lung nodule" AND "AI" | Both terms required |
| OR | "MRI" OR "CT" | Either term |
| NOT | "COVID" NOT "pneumonia" | Exclude term |
| [MeSH] | "Neoplasm"[MeSH] | MeSH controlled vocabulary |
| [tiab] | "cancer"[tiab] | Title/abstract only |
| [ti] | "lung cancer"[ti] | Title only |
| [au] | "Smith J"[au] | Author search |
Radiology-Specific Searches
Imaging Modality Studies
# CT Studies
def search_ct_studies(topic, years=5):
return pubmed_search(
f"({topic}) AND (CT[tiab] OR 'computed tomography'[tiab])",
date_filter=f"{years}[dp]"
)
# MRI Studies
def search_mri_studies(topic, years=5):
return pubmed_search(
f"({topic}) AND (MRI[tiab] OR 'magnetic resonance'[tiab])",
date_filter=f"{years}[dp]"
)
# X-ray Studies
def search_xray_studies(topic, years=5):
return pubmed_search(
f"({topic}) AND (X-ray[tiab] OR 'radiograph'[tiab])",
date_filter=f"{years}[dp]"
)
# Ultrasound
def search_ultrasound_studies(topic, years=5):
return pubmed_search(
f"({topic}) AND (ultrasound[tiab] OR 'sonography'[tiab])",
date_filter=f"{years}[dp]"
)
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 356 lines · 48 tokens per session scan A 87ccc8530339
pubmed-search is a skill published in the GitHub repository aizech/clinical-skills (4 stars, last pushed 2mo ago), licensed MIT. It adds 48 tokens to every session and 2,455 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
flux-analyzer
Analyse FBA flux distributions to extract biological insights. Covers gene essentiality, phenotypic phase planes, flux sampling, pathway-level aggregation, secretion product prediction, and production of publication- quality figures.
fba-simulator
Run Flux Balance Analysis (FBA) and related constraint-based simulations using COBRApy. Covers standard FBA, parsimonious FBA (pFBA), Flux Variability Analysis (FVA), loopless FBA, gene/reaction knockouts, and carbon source swapping. Outputs flux distributions and CSV files.
gsmm-validator
Validate a COBRApy genome-scale metabolic model for mass/charge balance, stoichiometric consistency, biomass producibility, dead-end metabolites, thermodynamic loops, and GPR rule formatting. Outputs a structured validation report with errors and warnings.
metabolic-study-planner
Plan publishable constraint-based metabolic modelling studies when the user has a broad biological or metabolic-engineering topic but no concrete dataset, organism, model, or hypothesis. Selects feasible BiGG/COBRA models, objectives, perturbations, analyses, metrics, figures, and risk controls before FBA code is…
gsmm-builder
Build or load a genome-scale metabolic model (GSMM) using COBRApy. Covers loading from BIGG, constructing minimal models from scratch, setting medium constraints, and exporting validated .json model files.
stat-research-orchestrator
Orchestrate a statistical research pipeline centered on formal problem formulation, method proposal, theoretical analysis, experimental evaluation, comparison, and final result synthesis.