cochrane-mcp
v0.3.2
Published
MCP server for searching the Cochrane Library — systematic reviews, trials (CENTRAL), clinical answers — and fetching structured review/trial details.
Downloads
834
Maintainers
Readme
🩺 Cochrane MCP
Search the world's gold-standard medical evidence — Cochrane systematic reviews and trials — straight from your AI assistant.
cochrane_search · cochrane_get_details · cochrane_suggest_terms
Cochrane MCP turns the Cochrane Library into a tool your AI agent can use directly: ask a clinical question and get real, citeable evidence — systematic reviews, randomised trials, plain-language summaries, and structured PICO data — instead of a guess.
It runs as a Model Context Protocol server (works in Claude Code, Claude Desktop, and any MCP client) and ships as a one-command Claude Code plugin.
✨ What you can do
- Search every Cochrane database — Reviews (CDSR), Protocols, Trials (CENTRAL), Editorials, Special Collections, and Clinical Answers — and see counts across all of them in one call.
- Pull rich details by DOI — structured abstract (Background → Conclusions), the Plain Language Summary, PICO (Population/Intervention/Comparison/Outcome), related articles, and PDF/HTML links.
- Search smarter — autocomplete suggestions, field-specific search (title, author, keyword, DOI…), date ranges, and relevance/date sorting.
- Just works behind Cloudflare — the server clears Cochrane's bot protection automatically (see Browser setup).
🚀 Quick start (Claude Code plugin)
/plugin marketplace add aliildan/cochrane-mcp
/plugin install cochrane@cochrane-marketplace
/reload-pluginsThen just ask, or use the bundled command:
/cochrane statins for primary preventionThe plugin runs the published package via npx -y cochrane-mcp@latest — no build step, no cloning.
The first run downloads the package (and, for the self-launch browser fallback, a bundled Chromium).
💬 Usage examples
1. The /cochrane slash command
/cochrane vitamin D for preventing asthma exacerbationsClaude: Cochrane has 3 reviews on this (plus 412 trials, 2 clinical answers). | # | Title | Authors | Year | DOI | |---|---|---|---|---| | 1 | Vitamin D for the management of asthma | Williamson A, et al. | 2023 |
10.1002/14651858.CD011511.pub3| | … | | | | | Want the full abstract + plain-language summary for #1, or should I check the trials?
2. Let the skill trigger naturally
The bundled cochrane skill activates on evidence questions — no command needed:
You: Is paracetamol or ibuprofen better for fever in children, according to Cochrane?Claude searches CDSR, surfaces the relevant review, calls
cochrane_get_details, and quotes the Authors' conclusions with the DOI to cite.
3. Call the tools directly
You: Search Cochrane trials (not reviews) for "semaglutide", newest first.→ cochrane_search({ query: "semaglutide", type: "central", orderBy: "date-desc" })
You: Give me the plain-language summary and PICO for DOI 10.1002/14651858.CD012116.pub2.→ cochrane_get_details({ doi: "10.1002/14651858.CD012116.pub2" })
You: I'm not sure how to spell it — suggest Cochrane terms for "azithro".→ cochrane_suggest_terms({ query: "azithro" }) → ["azithromycin", "azithromycin dihydrate", …]
4. Refine a search
You: Same search but only reviews from 2020 onward, by title.→ cochrane_search({ query: "semaglutide", type: "review", searchField: "record-title", yearFrom: 2020, orderBy: "date-desc" })
🧰 Tools
| Tool | Input | Returns |
|---|---|---|
| cochrane_search | query, type?, searchField?, orderBy?, page?, resultsPerPage?, yearFrom?, yearTo? | total, typeCounts (all 6 content types), and a page of items |
| cochrane_get_details | doi | Reviews → metadata + structured abstract + plain-language summary + PICO + related articles. Trials → metadata + source registry. (Type inferred from the DOI.) |
| cochrane_suggest_terms | query | { suggestions: string[] } autocomplete |
type:review·protocol·central(trials) ·editorial·specialcollections·ccasearchField:title-abstract-keyword(default) ·record-title·abstract·author·keyword·all-text·source·doi·accession-number·cochrane-grouporderBy:relevancy(default) ·title-asc·title-desc·date-desc·date-asc
{
"total": 127,
"page": 1,
"resultsPerPage": 25,
"typeCounts": { "review": 127, "protocol": 7, "central": 17202, "editorial": 2, "specialcollections": 0, "cca": 18 },
"items": [
{
"rank": 1,
"title": "Acetylsalicylic acid (aspirin) for schizophrenia",
"doi": "10.1002/14651858.CD012116.pub2",
"url": "https://www.cochranelibrary.com/cdsr/doi/10.1002/14651858.CD012116.pub2/full",
"authors": "Lena Schmidt, Emma Phelps, Johannes Friedel, Farhad Shokraneh",
"contentType": "Intervention",
"stage": "Review",
"date": "10 August 2019",
"access": "Free access"
}
]
}🌐 Browser setup (automatic)
Cochrane sits behind a Cloudflare challenge that plain HTTP clients can't pass. Cochrane MCP solves this
with a real browser, then replays the resulting cf_clearance cookie in fast fetch calls — so most of
the work is lightweight HTTP, not a heavy browser per request. You normally configure nothing. On each
mint the server:
- Explicit — attaches to
COCHRANE_CDP_ENDPOINTif you set it. - Discover — probes
127.0.0.1:9222/:9444. If a Chrome with remote debugging is already running and holds clearance, it's reused. Connecting is read-only and never closes your browser. - Self-launch — otherwise launches its own Chrome (system Chrome, else a bundled Chromium) with a persistent profile, clears the challenge, and reuses the cookie for later runs.
The one manual moment: if Cloudflare escalates to an interactive Turnstile (rare — flagged IP or detected automation), the self-launched window shows it and you click once; the cookie then persists. No software bypasses an interactive Turnstile without a paid CAPTCHA service.
Most reliable hands-off setup: keep a Chrome running with --remote-debugging-port=9222 that has
visited cochranelibrary.com once — discovery reuses its organic clearance every time.
The cookie is IP + User-Agent bound, so the server and its browser must run on the same machine.
⚙️ Configuration
| Variable | Default | Effect |
|---|---|---|
| COCHRANE_CDP_ENDPOINT | — | Attach to this CDP endpoint (e.g. http://127.0.0.1:9444); skips discovery |
| COCHRANE_CDP_PORTS | 9222,9444 | Comma-separated localhost ports to probe during discovery |
| COCHRANE_PROFILE_DIR | ./.cochrane-profile | Persistent profile dir for self-launch |
| COCHRANE_HEADLESS | 0 | 1 to self-launch headless (faster, but more likely to be challenged) |
📦 Manual install (any MCP client)
Point your MCP client at the published package — no clone, no build:
{
"mcpServers": {
"cochrane": {
"command": "npx",
"args": ["-y", "cochrane-mcp@latest"],
"env": { "COCHRANE_CDP_ENDPOINT": "http://127.0.0.1:9444" }
}
}
}Or install the CLI globally: npm install -g cochrane-mcp then use "command": "cochrane-mcp".
git clone [email protected]:aliildan/cochrane-mcp.git
cd cochrane-mcp
npm install && npm run build # postinstall also fetches the bundled browserThen use "command": "node", "args": ["/absolute/path/to/cochrane-mcp/dist/index.js"].
🔄 Updating
The plugin pins an exact published version, so updating is a marketplace refresh + reload:
/plugin marketplace update cochrane-marketplace
/reload-pluginsIf an old build seems stuck (npx caches packages), clear the cache once and reload:
rm -rf ~/.npm/_npx/*/node_modules/cochrane-mcp🩹 Troubleshooting
| Symptom | Fix |
|---|---|
| CloudflareChallengeError | Start a Chrome with --remote-debugging-port=9222, visit cochranelibrary.com once, retry. Or let the self-launched window appear and solve the one-time challenge. |
| Tool returns nothing / 0 results | Check spelling (try cochrane_suggest_terms), widen searchField to all-text, or switch type. |
| No browser found / launch fails | Run npm run setup to (re)install the bundled Chromium, or install Google Chrome. |
🛠️ Develop
npm test # offline parser/engine tests against committed fixtures (no network)
npm run test:watch
COCHRANE_LIVE_TEST=1 npm test # + live smoke (auto-discovers a running Chrome)Architecture and the full reverse-engineering write-up live in docs/superpowers/
and CLAUDE.md.
📄 License & disclaimer
Content belongs to Cochrane / John Wiley & Sons. This tool accesses the public website on your behalf; respect Cochrane's terms of use. Not affiliated with or endorsed by Cochrane.
