@pharmatools/pubcrawl 2.0.0
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/LICENSE +21 -0
- package/README.md +111 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cache.d.ts +19 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +52 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/dailymed.d.ts +9 -0
- package/dist/lib/dailymed.d.ts.map +1 -0
- package/dist/lib/dailymed.js +58 -0
- package/dist/lib/dailymed.js.map +1 -0
- package/dist/lib/emc.d.ts +13 -0
- package/dist/lib/emc.d.ts.map +1 -0
- package/dist/lib/emc.js +215 -0
- package/dist/lib/emc.js.map +1 -0
- package/dist/lib/label-mapping.d.ts +8 -0
- package/dist/lib/label-mapping.d.ts.map +1 -0
- package/dist/lib/label-mapping.js +23 -0
- package/dist/lib/label-mapping.js.map +1 -0
- package/dist/lib/ncbi.d.ts +37 -0
- package/dist/lib/ncbi.d.ts.map +1 -0
- package/dist/lib/ncbi.js +175 -0
- package/dist/lib/ncbi.js.map +1 -0
- package/dist/lib/openfda.d.ts +8 -0
- package/dist/lib/openfda.d.ts.map +1 -0
- package/dist/lib/openfda.js +83 -0
- package/dist/lib/openfda.js.map +1 -0
- package/dist/lib/xml-parser.d.ts +23 -0
- package/dist/lib/xml-parser.d.ts.map +1 -0
- package/dist/lib/xml-parser.js +273 -0
- package/dist/lib/xml-parser.js.map +1 -0
- package/dist/tools/abstract.d.ts +3 -0
- package/dist/tools/abstract.d.ts.map +1 -0
- package/dist/tools/abstract.js +107 -0
- package/dist/tools/abstract.js.map +1 -0
- package/dist/tools/cite.d.ts +3 -0
- package/dist/tools/cite.d.ts.map +1 -0
- package/dist/tools/cite.js +188 -0
- package/dist/tools/cite.js.map +1 -0
- package/dist/tools/compare-labels.d.ts +3 -0
- package/dist/tools/compare-labels.d.ts.map +1 -0
- package/dist/tools/compare-labels.js +126 -0
- package/dist/tools/compare-labels.js.map +1 -0
- package/dist/tools/fulltext.d.ts +3 -0
- package/dist/tools/fulltext.d.ts.map +1 -0
- package/dist/tools/fulltext.js +88 -0
- package/dist/tools/fulltext.js.map +1 -0
- package/dist/tools/related.d.ts +3 -0
- package/dist/tools/related.d.ts.map +1 -0
- package/dist/tools/related.js +63 -0
- package/dist/tools/related.js.map +1 -0
- package/dist/tools/search-indication.d.ts +3 -0
- package/dist/tools/search-indication.d.ts.map +1 -0
- package/dist/tools/search-indication.js +73 -0
- package/dist/tools/search-indication.js.map +1 -0
- package/dist/tools/search.d.ts +3 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +69 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/smpc.d.ts +3 -0
- package/dist/tools/smpc.d.ts.map +1 -0
- package/dist/tools/smpc.js +52 -0
- package/dist/tools/smpc.js.map +1 -0
- package/dist/tools/trending.d.ts +3 -0
- package/dist/tools/trending.d.ts.map +1 -0
- package/dist/tools/trending.js +106 -0
- package/dist/tools/trending.js.map +1 -0
- package/dist/tools/uspi.d.ts +3 -0
- package/dist/tools/uspi.d.ts.map +1 -0
- package/dist/tools/uspi.js +117 -0
- package/dist/tools/uspi.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +49 -0
- package/server.json +29 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export interface PubMedArticle {
|
|
2
|
+
pmid: string;
|
|
3
|
+
title: string;
|
|
4
|
+
authors: string[];
|
|
5
|
+
journal: string;
|
|
6
|
+
year: string;
|
|
7
|
+
doi: string;
|
|
8
|
+
abstract_snippet: string;
|
|
9
|
+
}
|
|
10
|
+
export interface AbstractSection {
|
|
11
|
+
label: string;
|
|
12
|
+
text: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FullAbstract {
|
|
15
|
+
pmid: string;
|
|
16
|
+
title: string;
|
|
17
|
+
authors: string[];
|
|
18
|
+
journal: string;
|
|
19
|
+
year: string;
|
|
20
|
+
doi: string;
|
|
21
|
+
volume: string;
|
|
22
|
+
issue: string;
|
|
23
|
+
pages: string;
|
|
24
|
+
abstract_sections: AbstractSection[];
|
|
25
|
+
keywords: string[];
|
|
26
|
+
mesh_terms: string[];
|
|
27
|
+
pmc_id: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FullTextSection {
|
|
30
|
+
title: string;
|
|
31
|
+
content: string;
|
|
32
|
+
}
|
|
33
|
+
export interface FullTextResult {
|
|
34
|
+
pmid: string;
|
|
35
|
+
pmcid: string;
|
|
36
|
+
title: string;
|
|
37
|
+
sections: FullTextSection[];
|
|
38
|
+
figure_captions: string[];
|
|
39
|
+
table_captions: string[];
|
|
40
|
+
reference_count: number;
|
|
41
|
+
}
|
|
42
|
+
export interface RelatedArticle extends PubMedArticle {
|
|
43
|
+
relevance_score: number;
|
|
44
|
+
}
|
|
45
|
+
export interface CacheEntry<T> {
|
|
46
|
+
value: T;
|
|
47
|
+
timestamp: number;
|
|
48
|
+
ttl: number;
|
|
49
|
+
}
|
|
50
|
+
export interface LabelSection {
|
|
51
|
+
code: string;
|
|
52
|
+
title: string;
|
|
53
|
+
content: string;
|
|
54
|
+
}
|
|
55
|
+
export interface USPIResult {
|
|
56
|
+
drug_name: string;
|
|
57
|
+
setid: string;
|
|
58
|
+
spl_version: string;
|
|
59
|
+
published_date: string;
|
|
60
|
+
sections: LabelSection[];
|
|
61
|
+
dailymed_url: string;
|
|
62
|
+
}
|
|
63
|
+
export interface SmPCResult {
|
|
64
|
+
drug_name: string;
|
|
65
|
+
product_id: string;
|
|
66
|
+
sections: LabelSection[];
|
|
67
|
+
url: string;
|
|
68
|
+
}
|
|
69
|
+
export interface LabelComparison {
|
|
70
|
+
topic: string;
|
|
71
|
+
us_section: LabelSection | null;
|
|
72
|
+
uk_section: LabelSection | null;
|
|
73
|
+
}
|
|
74
|
+
export interface CompareLabelsResult {
|
|
75
|
+
drug: string;
|
|
76
|
+
comparisons: LabelComparison[];
|
|
77
|
+
us_source: string | null;
|
|
78
|
+
uk_source: string | null;
|
|
79
|
+
}
|
|
80
|
+
export interface DrugApprovalEntry {
|
|
81
|
+
name: string;
|
|
82
|
+
brand_name?: string;
|
|
83
|
+
manufacturer?: string;
|
|
84
|
+
us_approved: boolean;
|
|
85
|
+
uk_approved: boolean;
|
|
86
|
+
us_setid?: string;
|
|
87
|
+
uk_product_id?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface IndicationSearchResult {
|
|
90
|
+
condition: string;
|
|
91
|
+
drugs: DrugApprovalEntry[];
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pharmatools/pubcrawl",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "MCP server for PubMed literature search and US/UK drug labelling — built by PharmaTools.AI",
|
|
5
|
+
"mcpName": "io.github.nickjlamb/pubcrawl",
|
|
6
|
+
"author": "PharmaTools.AI",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"bin": {
|
|
11
|
+
"pubcrawl": "dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"server.json"
|
|
16
|
+
],
|
|
17
|
+
"keywords": [
|
|
18
|
+
"mcp",
|
|
19
|
+
"mcp-server",
|
|
20
|
+
"pubmed",
|
|
21
|
+
"ncbi",
|
|
22
|
+
"biomedical",
|
|
23
|
+
"literature",
|
|
24
|
+
"drug-labelling",
|
|
25
|
+
"openfda",
|
|
26
|
+
"dailymed",
|
|
27
|
+
"pharma"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc",
|
|
31
|
+
"start": "node dist/index.js",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"prepublishOnly": "npm run build"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
37
|
+
"cheerio": "^1.2.0",
|
|
38
|
+
"dotenv": "^16.0.0",
|
|
39
|
+
"fast-xml-parser": "^4.3.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^20.0.0",
|
|
43
|
+
"typescript": "^5.3.0"
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "https://github.com/nickjlamb/pubcrawl"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/server.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.nickjlamb/pubcrawl",
|
|
4
|
+
"description": "MCP server for PubMed literature search and US/UK drug labelling. 10 tools: search PubMed, get abstracts, full text, related papers, citations, trending papers, US prescribing information (DailyMed), UK SmPC (eMC), compare US/UK labels, and search by indication (OpenFDA).",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/nickjlamb/pubcrawl",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "2.0.0",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"identifier": "@pharmatools/pubcrawl",
|
|
14
|
+
"version": "2.0.0",
|
|
15
|
+
"transport": {
|
|
16
|
+
"type": "stdio"
|
|
17
|
+
},
|
|
18
|
+
"environmentVariables": [
|
|
19
|
+
{
|
|
20
|
+
"description": "NCBI API key for higher rate limits (10 req/s vs 3 req/s). Optional — get one free at https://www.ncbi.nlm.nih.gov/account/",
|
|
21
|
+
"isRequired": false,
|
|
22
|
+
"format": "string",
|
|
23
|
+
"isSecret": true,
|
|
24
|
+
"name": "NCBI_API_KEY"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|