Cochrane MCP

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.

Category
Visit Server

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

version npm node MCP

</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 · cca
  • searchField: title-abstract-keyword (default) · record-title · abstract · author · keyword · all-text · source · doi · accession-number · cochrane-group
  • orderBy: 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:

  1. Explicit — attaches to COCHRANE_CDP_ENDPOINT if you set it.
  2. 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.
  3. 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured