Cochrane MCP
Turns the Cochrane Library into a tool for AI agents to search and retrieve clinical evidence, including systematic reviews, trials, and plain-language summaries.
README
<div align="center">
🩺 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
</div>
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-plugins
Then just ask, or use the bundled command:
/cochrane statins for primary prevention
The plugin runs the published package via npx (pinned to an exact published version) — 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 exacerbations
Claude: 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 |
<details> <summary><b>Field & sort options</b></summary>
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
</details>
<details> <summary><b>Sample <code>cochrane_search</code> response</b></summary>
{
"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"
}
]
}
</details>
🌐 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@0.3.2"],
"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".
<details> <summary><b>Run from source instead</b></summary>
git clone git@github.com:aliildan/cochrane-mcp.git
cd cochrane-mcp
npm install && npm run build # postinstall also fetches the bundled browser
Then use "command": "node", "args": ["/absolute/path/to/cochrane-mcp/dist/index.js"].
</details>
🔄 Updating
The plugin pins an exact published version, so updating is a marketplace refresh + reload:
/plugin marketplace update cochrane-marketplace
/reload-plugins
If 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 implementation write-up live in 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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。