@pharmatools/pubcrawl 2.5.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -28
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -28,12 +28,24 @@ PubCrawl connects your AI assistant (Claude Desktop, Cursor, or any MCP-compatib
|
|
|
28
28
|
|
|
29
29
|
Every tool is a thin, deterministic wrapper over an official API. Nothing is invented; every result cites its source.
|
|
30
30
|
|
|
31
|
+
### The thing no other MCP server does
|
|
32
|
+
|
|
33
|
+
Ask **"compare US and UK labelling for semaglutide"** and PubCrawl pulls both live labels and maps equivalent sections — US *Indications and Usage* ↔ UK *4.1 Therapeutic indications*, and so on — so the differences are visible instead of assumed:
|
|
34
|
+
|
|
35
|
+
| | US Prescribing Information | UK SmPC |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| **Indications** | glycaemic control · **reduce risk of MACE** in T2D with established CVD · **reduce risk of sustained eGFR decline, ESKD and CV death** in T2D with CKD | glycaemic control only — CV and renal outcomes appear as cross-references to §4.4/4.5/5.1, *not* as indications |
|
|
38
|
+
| **Contraindications** | personal or family history of MTC or MEN 2 · hypersensitivity | hypersensitivity only |
|
|
39
|
+
|
|
40
|
+
A cardiovascular claim that is on-label in the US promotes an unlicensed indication in the UK. If you write, review, or check medical copy for both markets, that gap is the whole job — and `compare_labels` is the only MCP tool that surfaces it.
|
|
41
|
+
|
|
42
|
+
### Everything else
|
|
43
|
+
|
|
31
44
|
- 🔬 **14 tools** across literature, drug labelling, and clinical trials
|
|
32
45
|
- 🧾 **Verifiable by design** — results link back to DailyMed, the eMC, PubMed, and ClinicalTrials.gov
|
|
33
|
-
- 🌍 **US *and* UK labelling** — a side-by-side `compare_labels` no other MCP server offers
|
|
34
46
|
- 📰 **Preprints** via Europe PMC — surface work ahead of formal publication
|
|
35
47
|
- 🆓 **No API keys required** (an optional free NCBI key raises PubMed rate limits)
|
|
36
|
-
- 🧪 Fully **typed, tested, and CI-checked**
|
|
48
|
+
- 🧪 Fully **typed, tested, and CI-checked** — retrieval fidelity gated by [OpenGATE](https://github.com/nickjlamb/opengate) on every release
|
|
37
49
|
|
|
38
50
|
Built by [PharmaTools.AI](https://pharmatools.ai).
|
|
39
51
|
|
|
@@ -133,32 +145,10 @@ Once connected, just ask naturally:
|
|
|
133
145
|
|
|
134
146
|
Three layers — **tools** register the MCP interface, **lib clients** talk to each external API, and shared **cache** + **parsers** keep it fast and consistent.
|
|
135
147
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
subgraph Server["PubCrawl MCP server"]
|
|
141
|
-
direction TB
|
|
142
|
-
Transport["stdio · Streamable HTTP"]
|
|
143
|
-
Tools["14 tools — src/tools/*"]
|
|
144
|
-
Shared["LRU cache · XML/JATS/SPL parser"]
|
|
145
|
-
Transport --> Tools --> Shared
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
Client -->|MCP| Transport
|
|
149
|
-
|
|
150
|
-
Tools --> NCBI["NCBI E-utilities"]
|
|
151
|
-
Tools --> EPMC["Europe PMC REST"]
|
|
152
|
-
Tools --> FDA["openFDA + DailyMed"]
|
|
153
|
-
Tools --> EMC["UK eMC"]
|
|
154
|
-
Tools --> CT["ClinicalTrials.gov v2"]
|
|
155
|
-
|
|
156
|
-
NCBI --> S1[("PubMed / PMC")]
|
|
157
|
-
EPMC --> S2[("Preprints · patents")]
|
|
158
|
-
FDA --> S3[("US labels")]
|
|
159
|
-
EMC --> S4[("UK labels")]
|
|
160
|
-
CT --> S5[("Trials")]
|
|
161
|
-
```
|
|
148
|
+
<picture>
|
|
149
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/architecture-dark.svg">
|
|
150
|
+
<img src="docs/architecture-light.svg" alt="PubCrawl architecture: an MCP client connects over stdio or streamable HTTP to the PubCrawl server, whose 14 tools are grouped into literature, drug labelling and clinical trials. Each family calls the official APIs directly — NCBI E-utilities, Europe PMC, openFDA and DailyMed, the UK eMC, and ClinicalTrials.gov — behind a shared LRU cache, XML/JATS/SPL parsers and rate limits. Every result returns with its own identifier: PMID, NCT or DOI. No model sits in this path; nothing is invented." width="100%">
|
|
151
|
+
</picture>
|
|
162
152
|
|
|
163
153
|
Each tool file exports a `register*Tool(server)` function with a zod schema and an async handler. All network calls are rate-limited, cached, and time-bounded. See [`CLAUDE.md`](CLAUDE.md) for a full architecture walkthrough and [`CONTRIBUTING.md`](CONTRIBUTING.md) to add a tool.
|
|
164
154
|
|
|
@@ -248,6 +238,20 @@ Versions follow [Semantic Versioning](https://semver.org). See the [**CHANGELOG*
|
|
|
248
238
|
|
|
249
239
|
Contributions are welcome and appreciated — bug reports, new data sources, new tools. Read the [contributing guide](CONTRIBUTING.md) to get started, then [open an issue](https://github.com/nickjlamb/pubcrawl/issues/new/choose) or a pull request.
|
|
250
240
|
|
|
241
|
+
## 📚 Citation
|
|
242
|
+
|
|
243
|
+
If PubCrawl supports work you publish, please cite it — see [`CITATION.cff`](CITATION.cff), or:
|
|
244
|
+
|
|
245
|
+
```bibtex
|
|
246
|
+
@software{lamb_pubcrawl,
|
|
247
|
+
author = {Lamb, Nick},
|
|
248
|
+
title = {PubCrawl: verifiable biomedical literature, drug labelling and clinical trials for AI assistants},
|
|
249
|
+
url = {https://github.com/nickjlamb/pubcrawl}
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
251
255
|
## 📄 License
|
|
252
256
|
|
|
253
257
|
[MIT](LICENSE) © [PharmaTools.AI](https://pharmatools.ai)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pharmatools/pubcrawl",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "MCP server for PubMed & Europe PMC literature search, US/UK drug labelling, and clinical trials — built by PharmaTools.AI",
|
|
5
5
|
"mcpName": "io.github.nickjlamb/pubcrawl",
|
|
6
6
|
"author": "PharmaTools.AI",
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/nickjlamb/pubcrawl",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "2.5.
|
|
9
|
+
"version": "2.5.1",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@pharmatools/pubcrawl",
|
|
14
|
-
"version": "2.5.
|
|
14
|
+
"version": "2.5.1",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|