Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
"AI agents querying biological databases leave no audit trail. Six months later, nobody can answer: what exact query returned this result, when, and was that paper peer-reviewed at the time? Biolab solves that."
A dual-implementation (Python + Go) MCP server that sits between AI agents and biological/scientific databases (PubMed, Europe PMC, ClinicalTrials.gov, bioRxiv/medRxiv). Every query is intercepted, logged with full retrieval context, and returns a retrieval_id that calling systems store alongside their reasoning traces β creating an end-to-end auditable chain from conclusion back to raw source.
New to MCP? It's a small, open standard (built by Anthropic) that lets an AI assistant β Claude, ChatGPT, Cursor, etc. β call out to external tools during a conversation. Add Biolab as an MCP server and any of those assistants gains four new abilities: searching PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv, with every single result permanently logged so it can be checked later.
A hosted instance is running at https://srikarjy025-biolab-mcp.hf.space/mcp. Point your client at it and you're done β nothing to install, nothing to run locally, nothing to sign up for.
Claude Code:
Claude Desktop / Cursor β add this to your MCP config file:
(Add "headers": {"Authorization": "Bearer <your key>"} alongside "url" once you have a key β see the rate-limit note below.)
That's it β search_pubmed, search_europepmc, search_clinicaltrials, search_biorxiv, and get_retrieval are now available as tools your assistant can call. Every retrieval is written to a hash-chained audit trail you can inspect later (see Audit Trail Schema below).
Also listed on the official MCP Registry and Smithery if you'd rather discover/install it from there.
A note on rate limits. The hosted server is shared and stays open β no signup required for casual use β but callers with no API key share one small, low-throughput budget (1 req/s to PubMed) so no single anonymous user can starve everyone else. If you're doing more than a handful of queries, ask for a key (below) and you get your own isolated, higher budget instead.
Getting a key:
Add that header in your client's MCP config (Claude Code: claude mcp add --transport http biolab <url> --header "Authorization: Bearer <key>"). Keys are issued with biolab keys create <label> β see Managing API Keys below if you're running your own instance; otherwise ask the maintainer for one.
Want to run your own copy instead (local dev, your own storage, self-hosting)? Keep reading.
A drug discovery team uses an AI agent to research gene targets. The agent queries PubMed 200 times over three days and surfaces a paper claiming gene X is upregulated in pancreatic cancer. A scientist makes a decision based on that. Six months later, during FDA submission:
Without Biolab, nobody can answer any of those questions. The retrieval is invisible.
Biolab is an interception and logging layer, not a retrieval layer. It doesn't interpret evidence, rank it, or summarize it β it records what happened, verbatim, so an agent's claim can always be traced back to an unforgeable original.
The agent gets the paper it asked for. Biolab gets a permanent, queryable, tamper-evident record of exactly what happened.
| Source | MCP Tool | CLI Command | Notes |
|---|---|---|---|
| PubMed | search_pubmed | biolab search | E-utilities, full XML stored |
| Europe PMC | search_europepmc | biolab search-europepmc | Free, indexes bioRxiv/medRxiv |
| ClinicalTrials.gov | search_clinicaltrials | biolab search-clinicaltrials | API v2, condition-based search |
| bioRxiv/medRxiv | search_biorxiv | biolab search-biorxiv | Date-range pagination (API limit) |
All sources share a single audit database (SQLite locally, or Turso β a hosted, SQLite-compatible database β in production) with one source-agnostic schema.
You don't need to know Python or Go to get this running locally β just follow these steps in order. All commands are run in a terminal.
python3 --version. Get it from python.org if you don't have it.git --version.That's genuinely it for the Python path β no database server to install, no API keys required (PubMed works anonymously, just at a lower rate limit).
This searches PubMed for real, stores every result in a local biolab.db file (created automatically, no setup needed), and prints back the retrieval_id for each paper β the same ID an AI agent would get back over MCP.
Most tests hit the real PubMed/Europe PMC/ClinicalTrials.gov APIs on purpose (no mocking) β that's a deliberate project rule, not a bug, so a slow test run is normal.
This starts an HTTP server on http://localhost:8000/mcp β point Claude Desktop, Claude Code, or Cursor at that URL exactly like in Use It Now, just with localhost:8000 instead of the hosted URL.
If you'd rather not install Python locally at all:
(Storage defaults to an ephemeral file inside the container unless you set TURSO_DATABASE_URL/TURSO_AUTH_TOKEN β see Environment Variables below.)
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/biolab-mcp-server)<a href="https://allmcps.com/mcp/biolab-mcp-server"><img src="https://allmcps.com/api/badge/biolab-mcp-server?style=directory" alt="Biolab MCP Server on AllMCPs" /></a>