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
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。