@cyanheads/pubchem-mcp-server 0.1.1 → 0.1.3
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/Dockerfile +85 -0
- package/README.md +16 -7
- package/dist/mcp-server/tools/definitions/get-bioactivity.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js +3 -4
- package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.d.ts +6 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.js +145 -22
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +4 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/services/pubchem/pubchem-client.d.ts +2 -1
- package/dist/services/pubchem/pubchem-client.d.ts.map +1 -1
- package/dist/services/pubchem/pubchem-client.js +90 -4
- package/dist/services/pubchem/pubchem-client.js.map +1 -1
- package/dist/services/pubchem/types.d.ts +36 -0
- package/dist/services/pubchem/types.d.ts.map +1 -1
- package/dist/services/pubchem/types.js.map +1 -1
- package/package.json +15 -5
- package/server.json +87 -0
package/Dockerfile
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Build Stage
|
|
3
|
+
#
|
|
4
|
+
# This stage installs all dependencies (including dev), builds the TypeScript
|
|
5
|
+
# source code into JavaScript, and prepares the production assets.
|
|
6
|
+
# ==============================================================================
|
|
7
|
+
FROM oven/bun:1 AS build
|
|
8
|
+
|
|
9
|
+
WORKDIR /usr/src/app
|
|
10
|
+
|
|
11
|
+
# Copy dependency manifests for optimized layer caching
|
|
12
|
+
COPY package.json bun.lock ./
|
|
13
|
+
|
|
14
|
+
# Install all dependencies (including dev dependencies for building)
|
|
15
|
+
RUN bun install --frozen-lockfile
|
|
16
|
+
|
|
17
|
+
# Copy the rest of the source code
|
|
18
|
+
COPY . .
|
|
19
|
+
|
|
20
|
+
# Build the application
|
|
21
|
+
RUN bun run build
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# ==============================================================================
|
|
25
|
+
# Production Stage
|
|
26
|
+
#
|
|
27
|
+
# This stage creates a minimal, optimized, and secure image for running the
|
|
28
|
+
# application. It uses a slim base image and only includes production
|
|
29
|
+
# dependencies and build artifacts.
|
|
30
|
+
# ==============================================================================
|
|
31
|
+
FROM oven/bun:1-slim AS production
|
|
32
|
+
|
|
33
|
+
WORKDIR /usr/src/app
|
|
34
|
+
|
|
35
|
+
# Set the environment to production for performance and to ensure only
|
|
36
|
+
# production dependencies are installed.
|
|
37
|
+
ENV NODE_ENV=production
|
|
38
|
+
|
|
39
|
+
# OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
|
|
40
|
+
LABEL org.opencontainers.image.title="pubchem-mcp-server"
|
|
41
|
+
LABEL org.opencontainers.image.description="MCP server for the PubChem chemical database."
|
|
42
|
+
LABEL org.opencontainers.image.source="https://github.com/cyanheads/pubchem-mcp-server"
|
|
43
|
+
LABEL org.opencontainers.image.licenses="Apache-2.0"
|
|
44
|
+
|
|
45
|
+
# Copy dependency manifests
|
|
46
|
+
COPY package.json bun.lock ./
|
|
47
|
+
|
|
48
|
+
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
49
|
+
# that are not needed in the final production image.
|
|
50
|
+
# Remove platform-specific bun/rollup binaries pulled as optionalDependencies
|
|
51
|
+
# by @modelcontextprotocol/ext-apps — only needed for its build toolchain, not runtime.
|
|
52
|
+
RUN bun install --production --frozen-lockfile --ignore-scripts \
|
|
53
|
+
&& rm -rf node_modules/@oven node_modules/@rollup
|
|
54
|
+
|
|
55
|
+
# Copy the compiled application code from the build stage
|
|
56
|
+
COPY --from=build /usr/src/app/dist ./dist
|
|
57
|
+
|
|
58
|
+
# The 'oven/bun' image already provides a non-root user named 'bun'.
|
|
59
|
+
# We will use this existing user for enhanced security.
|
|
60
|
+
|
|
61
|
+
# Create and set permissions for the log directory, assigning ownership to the 'bun' user.
|
|
62
|
+
RUN mkdir -p /var/log/pubchem-mcp-server && chown -R bun:bun /var/log/pubchem-mcp-server
|
|
63
|
+
|
|
64
|
+
# Switch to the non-root user
|
|
65
|
+
USER bun
|
|
66
|
+
|
|
67
|
+
# Define an argument for the port, allowing it to be overridden at build time.
|
|
68
|
+
# The `PORT` variable is often injected by cloud environments at runtime.
|
|
69
|
+
ARG PORT
|
|
70
|
+
|
|
71
|
+
# Set runtime environment variables
|
|
72
|
+
# Note: PORT is an automatic variable in many cloud environments (e.g., Cloud Run)
|
|
73
|
+
ENV MCP_HTTP_PORT=${PORT:-3010}
|
|
74
|
+
ENV MCP_HTTP_HOST="0.0.0.0"
|
|
75
|
+
ENV MCP_TRANSPORT_TYPE="http"
|
|
76
|
+
ENV MCP_SESSION_MODE="stateless"
|
|
77
|
+
ENV MCP_LOG_LEVEL="info"
|
|
78
|
+
ENV LOGS_DIR="/var/log/pubchem-mcp-server"
|
|
79
|
+
ENV MCP_FORCE_CONSOLE_LOGGING="true"
|
|
80
|
+
|
|
81
|
+
# Expose the port the server listens on
|
|
82
|
+
EXPOSE ${MCP_HTTP_PORT}
|
|
83
|
+
|
|
84
|
+
# The command to start the server
|
|
85
|
+
CMD ["bun", "run", "dist/index.js"]
|
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<h1
|
|
3
|
-
<p><b>MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries.
|
|
2
|
+
<h1>@cyanheads/pubchem-mcp-server</h1>
|
|
3
|
+
<p><b>MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries. STDIO & Streamable HTTP</b></p>
|
|
4
|
+
<p><b>8 Tools</b></p>
|
|
4
5
|
</div>
|
|
5
6
|
|
|
6
7
|
<div align="center">
|
|
7
8
|
|
|
8
|
-
[](./CHANGELOG.md) [](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [](https://modelcontextprotocol.io/) [](./LICENSE) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
9
10
|
|
|
10
11
|
</div>
|
|
11
12
|
|
|
@@ -18,7 +19,7 @@ Eight tools for querying PubChem's chemical information database:
|
|
|
18
19
|
| Tool Name | Description |
|
|
19
20
|
|:----------|:------------|
|
|
20
21
|
| `pubchem_search_compounds` | Search for compounds by name, SMILES, InChIKey, formula, substructure, superstructure, or 2D similarity. |
|
|
21
|
-
| `pubchem_get_compound_details` | Get physicochemical properties, descriptions, and
|
|
22
|
+
| `pubchem_get_compound_details` | Get physicochemical properties, descriptions, synonyms, drug-likeness, and classification for compounds by CID. |
|
|
22
23
|
| `pubchem_get_compound_image` | Fetch a 2D structure diagram (PNG) for a compound by CID. |
|
|
23
24
|
| `pubchem_get_compound_safety` | Get GHS hazard classification and safety data for a compound. |
|
|
24
25
|
| `pubchem_get_compound_xrefs` | Get external database cross-references (PubMed, patents, genes, proteins, etc.). |
|
|
@@ -43,9 +44,11 @@ Search PubChem for chemical compounds across five search modes.
|
|
|
43
44
|
Get detailed compound information by CID.
|
|
44
45
|
|
|
45
46
|
- Batches up to 100 CIDs in a single request
|
|
46
|
-
-
|
|
47
|
+
- 27 available properties: molecular weight, SMILES, InChIKey, XLogP, TPSA, complexity, stereo counts, and more
|
|
47
48
|
- Optionally includes textual descriptions (pharmacology, mechanism, therapeutic use) from PUG View
|
|
48
49
|
- Optionally includes all known synonyms (trade names, systematic names, registry numbers)
|
|
50
|
+
- Optionally computes drug-likeness assessment (Lipinski Rule of Five + Veber rules) from fetched properties
|
|
51
|
+
- Optionally fetches pharmacological classification (FDA classes, mechanisms of action, MeSH classes, ATC codes)
|
|
49
52
|
|
|
50
53
|
---
|
|
51
54
|
|
|
@@ -112,16 +115,19 @@ Add to your MCP client config (e.g., `claude_desktop_config.json`):
|
|
|
112
115
|
### Installation
|
|
113
116
|
|
|
114
117
|
1. **Clone the repository:**
|
|
118
|
+
|
|
115
119
|
```sh
|
|
116
120
|
git clone https://github.com/cyanheads/pubchem-mcp-server.git
|
|
117
121
|
```
|
|
118
122
|
|
|
119
|
-
|
|
123
|
+
1. **Navigate into the directory:**
|
|
124
|
+
|
|
120
125
|
```sh
|
|
121
126
|
cd pubchem-mcp-server
|
|
122
127
|
```
|
|
123
128
|
|
|
124
|
-
|
|
129
|
+
1. **Install dependencies:**
|
|
130
|
+
|
|
125
131
|
```sh
|
|
126
132
|
bun install
|
|
127
133
|
```
|
|
@@ -145,17 +151,20 @@ No API keys are required — PubChem's API is freely accessible.
|
|
|
145
151
|
### Local Development
|
|
146
152
|
|
|
147
153
|
- **Build and run the production version:**
|
|
154
|
+
|
|
148
155
|
```sh
|
|
149
156
|
bun run build
|
|
150
157
|
bun run start:http # or start:stdio
|
|
151
158
|
```
|
|
152
159
|
|
|
153
160
|
- **Run in dev mode (auto-reload):**
|
|
161
|
+
|
|
154
162
|
```sh
|
|
155
163
|
bun run dev:stdio # or dev:http
|
|
156
164
|
```
|
|
157
165
|
|
|
158
166
|
- **Run checks and tests:**
|
|
167
|
+
|
|
159
168
|
```sh
|
|
160
169
|
bun run devcheck # Lints, formats, type-checks
|
|
161
170
|
bun run test # Runs test suite
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-bioactivity.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-bioactivity.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"get-bioactivity.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-bioactivity.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;kBA0HzB,CAAC"}
|
|
@@ -102,10 +102,9 @@ export const getBioactivity = tool('pubchem_get_bioactivity', {
|
|
|
102
102
|
lines.push(`**AID ${r.aid}** — ${r.assayName} (${r.outcome})`);
|
|
103
103
|
if (target)
|
|
104
104
|
lines.push(` Target: ${target}`);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
105
|
+
const meaningful = r.activityValues.filter((av) => av.name);
|
|
106
|
+
for (const av of meaningful) {
|
|
107
|
+
lines.push(` ${av.name}: ${av.value} ${av.unit}`);
|
|
109
108
|
}
|
|
110
109
|
lines.push('');
|
|
111
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-bioactivity.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-bioactivity.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"get-bioactivity.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-bioactivity.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Get detailed compound information: physicochemical properties,
|
|
3
|
-
* textual descriptions,
|
|
3
|
+
* textual descriptions, synonyms, drug-likeness assessment, and pharmacological classification.
|
|
4
4
|
* @module mcp-server/tools/definitions/get-compound-details
|
|
5
5
|
*/
|
|
6
6
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
7
|
+
import type { CompoundClassification, DrugLikenessAssessment } from '../../../services/pubchem/types.js';
|
|
7
8
|
export declare const getCompoundDetails: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
8
9
|
cids: z.ZodArray<z.ZodNumber>;
|
|
9
10
|
properties: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
@@ -11,12 +12,16 @@ export declare const getCompoundDetails: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
11
12
|
}>>>;
|
|
12
13
|
includeDescription: z.ZodDefault<z.ZodBoolean>;
|
|
13
14
|
includeSynonyms: z.ZodDefault<z.ZodBoolean>;
|
|
15
|
+
includeDrugLikeness: z.ZodDefault<z.ZodBoolean>;
|
|
16
|
+
includeClassification: z.ZodDefault<z.ZodBoolean>;
|
|
14
17
|
}, z.core.$strip>, z.ZodObject<{
|
|
15
18
|
compounds: z.ZodArray<z.ZodObject<{
|
|
16
19
|
cid: z.ZodNumber;
|
|
17
20
|
properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
18
21
|
description: z.ZodOptional<z.ZodString>;
|
|
19
22
|
synonyms: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
drugLikeness: z.ZodOptional<z.ZodCustom<DrugLikenessAssessment, DrugLikenessAssessment>>;
|
|
24
|
+
classification: z.ZodOptional<z.ZodCustom<CompoundClassification, CompoundClassification>>;
|
|
20
25
|
}, z.core.$strip>>;
|
|
21
26
|
}, z.core.$strip>>;
|
|
22
27
|
//# sourceMappingURL=get-compound-details.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-details.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-compound-details.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AA4CrC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;kBA8S7B,CAAC"}
|
|
@@ -1,18 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Get detailed compound information: physicochemical properties,
|
|
3
|
-
* textual descriptions,
|
|
3
|
+
* textual descriptions, synonyms, drug-likeness assessment, and pharmacological classification.
|
|
4
4
|
* @module mcp-server/tools/definitions/get-compound-details
|
|
5
5
|
*/
|
|
6
6
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
7
7
|
import { getPubChemClient } from '../../../services/pubchem/pubchem-client.js';
|
|
8
8
|
import { COMPOUND_PROPERTIES, DEFAULT_PROPERTIES } from '../../../services/pubchem/types.js';
|
|
9
9
|
const propertyEnum = z.enum(COMPOUND_PROPERTIES);
|
|
10
|
+
// ── Drug-likeness computation ──────────────────────────────────────────
|
|
11
|
+
/** Properties needed for drug-likeness — all included in DEFAULT_PROPERTIES */
|
|
12
|
+
const DRUG_LIKENESS_PROPS = [
|
|
13
|
+
'MolecularWeight',
|
|
14
|
+
'XLogP',
|
|
15
|
+
'HBondDonorCount',
|
|
16
|
+
'HBondAcceptorCount',
|
|
17
|
+
'TPSA',
|
|
18
|
+
'RotatableBondCount',
|
|
19
|
+
];
|
|
20
|
+
function evaluateRule(value, limit) {
|
|
21
|
+
if (value == null || typeof value !== 'number')
|
|
22
|
+
return { limit, pass: null, value: null };
|
|
23
|
+
return { limit, pass: value <= limit, value };
|
|
24
|
+
}
|
|
25
|
+
function computeDrugLikeness(properties) {
|
|
26
|
+
const mw = evaluateRule(properties.MolecularWeight, 500);
|
|
27
|
+
const xLogP = evaluateRule(properties.XLogP, 5);
|
|
28
|
+
const hbd = evaluateRule(properties.HBondDonorCount, 5);
|
|
29
|
+
const hba = evaluateRule(properties.HBondAcceptorCount, 10);
|
|
30
|
+
const tpsa = evaluateRule(properties.TPSA, 140);
|
|
31
|
+
const rotatableBonds = evaluateRule(properties.RotatableBondCount, 10);
|
|
32
|
+
const lipinskiRules = [mw, xLogP, hbd, hba];
|
|
33
|
+
const veberRules = [tpsa, rotatableBonds];
|
|
34
|
+
const lipinskiViolations = lipinskiRules.filter((r) => r.pass === false).length;
|
|
35
|
+
const veberViolations = veberRules.filter((r) => r.pass === false).length;
|
|
36
|
+
return {
|
|
37
|
+
lipinski: { hba, hbd, mw, violations: lipinskiViolations, xLogP },
|
|
38
|
+
pass: lipinskiViolations <= 1 && veberViolations === 0,
|
|
39
|
+
veber: { rotatableBonds, tpsa, violations: veberViolations },
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// ── Tool definition ────────────────────────────────────────────────────
|
|
10
43
|
export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
11
44
|
title: 'Get Compound Details',
|
|
12
45
|
description: 'Get detailed compound information by CID. Returns physicochemical properties ' +
|
|
13
46
|
'(molecular weight, SMILES, InChIKey, XLogP, TPSA, etc.), optionally with a textual ' +
|
|
14
|
-
'description (pharmacology, mechanism, therapeutic use)
|
|
15
|
-
'
|
|
47
|
+
'description (pharmacology, mechanism, therapeutic use), all known synonyms, ' +
|
|
48
|
+
'drug-likeness assessment (Lipinski/Veber rules), and/or pharmacological classification ' +
|
|
49
|
+
'(FDA classes, MeSH classes, ATC codes). Efficiently batches up to 100 CIDs.',
|
|
16
50
|
annotations: {
|
|
17
51
|
readOnlyHint: true,
|
|
18
52
|
destructiveHint: false,
|
|
@@ -40,6 +74,17 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
40
74
|
.boolean()
|
|
41
75
|
.default(false)
|
|
42
76
|
.describe('Fetch all known names and synonyms (trade names, systematic names, registry numbers).'),
|
|
77
|
+
includeDrugLikeness: z
|
|
78
|
+
.boolean()
|
|
79
|
+
.default(false)
|
|
80
|
+
.describe('Compute drug-likeness assessment: Lipinski Rule of Five (MW, XLogP, HBD, HBA) and ' +
|
|
81
|
+
'Veber rules (TPSA, rotatable bonds). No extra API calls — computed from properties.'),
|
|
82
|
+
includeClassification: z
|
|
83
|
+
.boolean()
|
|
84
|
+
.default(false)
|
|
85
|
+
.describe('Fetch pharmacological classification from PUG View: FDA Established Pharmacologic ' +
|
|
86
|
+
'Classes, mechanisms of action, MeSH classes, and ATC codes. ' +
|
|
87
|
+
'Adds one API call per CID — consider limiting CID count when enabled.'),
|
|
43
88
|
}),
|
|
44
89
|
output: z.object({
|
|
45
90
|
compounds: z
|
|
@@ -50,44 +95,64 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
50
95
|
.describe('Requested physicochemical properties.'),
|
|
51
96
|
description: z.string().optional().describe('Textual description from PUG View.'),
|
|
52
97
|
synonyms: z.array(z.string()).optional().describe('Known names and synonyms.'),
|
|
98
|
+
drugLikeness: z
|
|
99
|
+
.custom()
|
|
100
|
+
.optional()
|
|
101
|
+
.describe('Drug-likeness assessment. lipinski.violations ≤ 1 and veber.violations = 0 → pass.'),
|
|
102
|
+
classification: z
|
|
103
|
+
.custom()
|
|
104
|
+
.optional()
|
|
105
|
+
.describe('Pharmacological classification (FDA, MeSH, ATC).'),
|
|
53
106
|
}))
|
|
54
107
|
.describe('Compound detail records.'),
|
|
55
108
|
}),
|
|
56
109
|
async handler(input, ctx) {
|
|
57
110
|
const client = getPubChemClient();
|
|
58
|
-
const
|
|
111
|
+
const requestedProps = input.properties ?? [...DEFAULT_PROPERTIES];
|
|
112
|
+
// Ensure drug-likeness properties are fetched when needed
|
|
113
|
+
let props = requestedProps;
|
|
114
|
+
if (input.includeDrugLikeness) {
|
|
115
|
+
const propsSet = new Set(requestedProps);
|
|
116
|
+
const missing = DRUG_LIKENESS_PROPS.filter((p) => !propsSet.has(p));
|
|
117
|
+
if (missing.length > 0)
|
|
118
|
+
props = [...requestedProps, ...missing];
|
|
119
|
+
}
|
|
59
120
|
// Batch property fetch
|
|
60
121
|
const propertyRows = await client.getProperties(input.cids, props);
|
|
61
122
|
const propsMap = new Map(propertyRows.map((r) => [r.CID, r]));
|
|
62
|
-
//
|
|
123
|
+
// PUG View calls (per-CID, capped at 10)
|
|
124
|
+
const viewCids = input.cids.slice(0, 10);
|
|
125
|
+
if ((input.includeDescription || input.includeClassification) &&
|
|
126
|
+
viewCids.length < input.cids.length) {
|
|
127
|
+
ctx.log.info('PUG View fetch capped at 10 CIDs', {
|
|
128
|
+
requested: input.cids.length,
|
|
129
|
+
fetching: viewCids.length,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Optional: descriptions
|
|
63
133
|
let descMap;
|
|
64
134
|
if (input.includeDescription) {
|
|
65
|
-
const
|
|
66
|
-
if (descCids.length < input.cids.length) {
|
|
67
|
-
ctx.log.info('Description fetch capped at 10 CIDs', {
|
|
68
|
-
requested: input.cids.length,
|
|
69
|
-
fetching: descCids.length,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
const entries = await Promise.all(descCids.map(async (cid) => {
|
|
73
|
-
const desc = await client.getDescription(cid);
|
|
74
|
-
return [cid, desc];
|
|
75
|
-
}));
|
|
135
|
+
const entries = await Promise.all(viewCids.map(async (cid) => [cid, await client.getDescription(cid)]));
|
|
76
136
|
descMap = new Map(entries.filter((e) => e[1] !== null));
|
|
77
137
|
}
|
|
78
138
|
// Optional: synonyms (per-CID)
|
|
79
139
|
let synMap;
|
|
80
140
|
if (input.includeSynonyms) {
|
|
81
|
-
const entries = await Promise.all(input.cids.map(async (cid) =>
|
|
82
|
-
const syns = await client.getSynonyms(cid);
|
|
83
|
-
return [cid, syns];
|
|
84
|
-
}));
|
|
141
|
+
const entries = await Promise.all(input.cids.map(async (cid) => [cid, await client.getSynonyms(cid)]));
|
|
85
142
|
synMap = new Map(entries.filter((e) => e[1].length > 0));
|
|
86
143
|
}
|
|
144
|
+
// Optional: classification
|
|
145
|
+
let classMap;
|
|
146
|
+
if (input.includeClassification) {
|
|
147
|
+
const entries = await Promise.all(viewCids.map(async (cid) => [cid, await client.getClassification(cid)]));
|
|
148
|
+
classMap = new Map(entries.filter((e) => e[1] !== null));
|
|
149
|
+
}
|
|
87
150
|
ctx.log.info('Details fetched', {
|
|
88
151
|
cids: input.cids.length,
|
|
89
152
|
withDescription: input.includeDescription,
|
|
90
153
|
withSynonyms: input.includeSynonyms,
|
|
154
|
+
withDrugLikeness: input.includeDrugLikeness,
|
|
155
|
+
withClassification: input.includeClassification,
|
|
91
156
|
});
|
|
92
157
|
const compounds = input.cids.map((cid) => {
|
|
93
158
|
const rawProps = propsMap.get(cid) ?? {};
|
|
@@ -100,6 +165,11 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
100
165
|
const syns = synMap?.get(cid);
|
|
101
166
|
if (syns)
|
|
102
167
|
compound.synonyms = syns;
|
|
168
|
+
if (input.includeDrugLikeness)
|
|
169
|
+
compound.drugLikeness = computeDrugLikeness(properties);
|
|
170
|
+
const cls = classMap?.get(cid);
|
|
171
|
+
if (cls)
|
|
172
|
+
compound.classification = cls;
|
|
103
173
|
return compound;
|
|
104
174
|
});
|
|
105
175
|
return { compounds };
|
|
@@ -172,19 +242,72 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
172
242
|
lines.push(extra.map(([k, v]) => `**${k}:** ${v}`).join(' | '));
|
|
173
243
|
}
|
|
174
244
|
blocks.push(lines.join('\n'));
|
|
245
|
+
// Drug-likeness assessment
|
|
246
|
+
if (c.drugLikeness) {
|
|
247
|
+
const dl = c.drugLikeness;
|
|
248
|
+
const status = dl.pass ? 'PASS' : 'FAIL';
|
|
249
|
+
lines.length = 0;
|
|
250
|
+
lines.push(`\n**Drug-likeness:** ${status}`);
|
|
251
|
+
lines.push(` Lipinski (${dl.lipinski.violations}/4 violations): ` +
|
|
252
|
+
formatRules([
|
|
253
|
+
['MW', dl.lipinski.mw],
|
|
254
|
+
['XLogP', dl.lipinski.xLogP],
|
|
255
|
+
['HBD', dl.lipinski.hbd],
|
|
256
|
+
['HBA', dl.lipinski.hba],
|
|
257
|
+
]));
|
|
258
|
+
lines.push(` Veber (${dl.veber.violations}/2 violations): ` +
|
|
259
|
+
formatRules([
|
|
260
|
+
['TPSA', dl.veber.tpsa],
|
|
261
|
+
['RotBonds', dl.veber.rotatableBonds],
|
|
262
|
+
]));
|
|
263
|
+
blocks.push(lines.join('\n'));
|
|
264
|
+
}
|
|
265
|
+
// Classification
|
|
266
|
+
if (c.classification) {
|
|
267
|
+
const cls = c.classification;
|
|
268
|
+
lines.length = 0;
|
|
269
|
+
lines.push('\n**Classification:**');
|
|
270
|
+
if (cls.fdaClasses.length > 0)
|
|
271
|
+
lines.push(` FDA: ${cls.fdaClasses.join(', ')}`);
|
|
272
|
+
if (cls.fdaMechanisms.length > 0)
|
|
273
|
+
lines.push(` MoA: ${cls.fdaMechanisms.join(', ')}`);
|
|
274
|
+
if (cls.meshClasses.length > 0) {
|
|
275
|
+
const meshDisplay = cls.meshClasses.length > 3
|
|
276
|
+
? `${cls.meshClasses.slice(0, 3).join('; ')} (+${cls.meshClasses.length - 3} more)`
|
|
277
|
+
: cls.meshClasses.join('; ');
|
|
278
|
+
lines.push(` MeSH: ${meshDisplay}`);
|
|
279
|
+
}
|
|
280
|
+
if (cls.atcCodes.length > 0) {
|
|
281
|
+
const atcDisplay = cls.atcCodes
|
|
282
|
+
.map((a) => (a.description ? `${a.code} (${a.description})` : a.code))
|
|
283
|
+
.join(', ');
|
|
284
|
+
lines.push(` ATC: ${atcDisplay}`);
|
|
285
|
+
}
|
|
286
|
+
blocks.push(lines.join('\n'));
|
|
287
|
+
}
|
|
175
288
|
// Description
|
|
176
289
|
if (c.description) {
|
|
177
290
|
blocks.push(`\n> ${c.description.replace(/\n/g, '\n> ')}`);
|
|
178
291
|
}
|
|
179
292
|
// Synonyms
|
|
180
293
|
if (c.synonyms && c.synonyms.length > 0) {
|
|
181
|
-
const
|
|
294
|
+
const synShown = c.synonyms.slice(0, 20);
|
|
182
295
|
const more = c.synonyms.length > 20 ? ` (+${c.synonyms.length - 20} more)` : '';
|
|
183
|
-
blocks.push(`\n**Synonyms:** ${
|
|
296
|
+
blocks.push(`\n**Synonyms:** ${synShown.join(', ')}${more}`);
|
|
184
297
|
}
|
|
185
298
|
blocks.push('');
|
|
186
299
|
}
|
|
187
300
|
return [{ type: 'text', text: blocks.join('\n') }];
|
|
188
301
|
},
|
|
189
302
|
});
|
|
303
|
+
function formatRules(rules) {
|
|
304
|
+
return rules
|
|
305
|
+
.map(([label, r]) => {
|
|
306
|
+
if (r.pass === null)
|
|
307
|
+
return `${label}: N/A`;
|
|
308
|
+
const icon = r.pass ? 'ok' : 'FAIL';
|
|
309
|
+
return `${label}: ${r.value}/${r.limit} ${icon}`;
|
|
310
|
+
})
|
|
311
|
+
.join(' | ');
|
|
312
|
+
}
|
|
190
313
|
//# sourceMappingURL=get-compound-details.tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-details.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-compound-details.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,12 +34,16 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
34
34
|
}>>>;
|
|
35
35
|
includeDescription: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
36
36
|
includeSynonyms: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
37
|
+
includeDrugLikeness: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
38
|
+
includeClassification: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
37
39
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
38
40
|
compounds: import("zod").ZodArray<import("zod").ZodObject<{
|
|
39
41
|
cid: import("zod").ZodNumber;
|
|
40
42
|
properties: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
41
43
|
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
44
|
synonyms: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
45
|
+
drugLikeness: import("zod").ZodOptional<import("zod").ZodCustom<import("../../../services/pubchem/types.js").DrugLikenessAssessment, import("../../../services/pubchem/types.js").DrugLikenessAssessment>>;
|
|
46
|
+
classification: import("zod").ZodOptional<import("zod").ZodCustom<import("../../../services/pubchem/types.js").CompoundClassification, import("../../../services/pubchem/types.js").CompoundClassification>>;
|
|
43
47
|
}, import("zod/v4/core").$strip>>;
|
|
44
48
|
}, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
45
49
|
cid: import("zod").ZodNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAS9B,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Wraps both PUG REST and PUG View APIs behind a shared rate limiter.
|
|
4
4
|
* @module services/pubchem/pubchem-client
|
|
5
5
|
*/
|
|
6
|
-
import type { BioactivityRow, GHSClassification } from './types.js';
|
|
6
|
+
import type { BioactivityRow, CompoundClassification, GHSClassification } from './types.js';
|
|
7
7
|
export declare class PubChemClient {
|
|
8
8
|
private readonly pugBase;
|
|
9
9
|
private readonly viewBase;
|
|
@@ -27,6 +27,7 @@ export declare class PubChemClient {
|
|
|
27
27
|
getXrefs(cid: number, xrefType: string): Promise<(string | number)[]>;
|
|
28
28
|
getDescription(cid: number): Promise<string | null>;
|
|
29
29
|
getSafetyData(cid: number): Promise<GHSClassification | null>;
|
|
30
|
+
getClassification(cid: number): Promise<CompoundClassification | null>;
|
|
30
31
|
getAssaySummary(cid: number): Promise<BioactivityRow[]>;
|
|
31
32
|
private parseAssayTable;
|
|
32
33
|
searchAssaysByTarget(targetType: string, query: string): Promise<number[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubchem-client.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,cAAc,EAEd,iBAAiB,EAQlB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pubchem-client.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,cAAc,EAEd,sBAAsB,EACtB,iBAAiB,EAQlB,MAAM,YAAY,CAAC;AAgKpB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;YAIpC,SAAS;YAgDT,WAAW;IAwBzB,wEAAwE;YAC1D,SAAS;IAWvB,qDAAqD;YACvC,WAAW;IAgBzB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQjD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOvE,iBAAiB,CACf,IAAI,EAAE,cAAc,GAAG,gBAAgB,GAAG,YAAY,EACtD,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,QAAQ,GAAG,KAAK,EAC3B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IA2Bd,aAAa,CACjB,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA+BtD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYjD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,OAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAKxE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAiBrE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBnD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA0E7D,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IA8EtE,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAY7D,OAAO,CAAC,eAAe;IA+DjB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB1E,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CA+B3C;AAMD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAIhD"}
|
|
@@ -44,10 +44,12 @@ class RateLimiter {
|
|
|
44
44
|
}
|
|
45
45
|
// ── Helpers ──────────────────────────────────────────────────────────
|
|
46
46
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
47
|
-
/** PubChem returns different field names than the request parameter names for some properties
|
|
47
|
+
/** PubChem returns different field names than the request parameter names for some properties.
|
|
48
|
+
* Request IsomericSMILES → response key "SMILES" (includes stereochemistry).
|
|
49
|
+
* Request CanonicalSMILES → response key "ConnectivitySMILES" (connectivity only). */
|
|
48
50
|
const PROPERTY_NAME_MAP = {
|
|
49
|
-
SMILES: '
|
|
50
|
-
ConnectivitySMILES: '
|
|
51
|
+
SMILES: 'IsomericSMILES',
|
|
52
|
+
ConnectivitySMILES: 'CanonicalSMILES',
|
|
51
53
|
};
|
|
52
54
|
function normalizePropertyNames(row) {
|
|
53
55
|
const result = {};
|
|
@@ -57,6 +59,7 @@ function normalizePropertyNames(row) {
|
|
|
57
59
|
return result;
|
|
58
60
|
}
|
|
59
61
|
function parseFaultMessage(text) {
|
|
62
|
+
// JSON fault response (most endpoints)
|
|
60
63
|
try {
|
|
61
64
|
const data = JSON.parse(text);
|
|
62
65
|
if (data.Fault?.Message) {
|
|
@@ -64,8 +67,13 @@ function parseFaultMessage(text) {
|
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
catch {
|
|
67
|
-
/* not JSON */
|
|
70
|
+
/* not JSON — try plain-text format below */
|
|
68
71
|
}
|
|
72
|
+
// Plain-text fault response (image endpoint): "Status: 400\nCode: X\nMessage: Y"
|
|
73
|
+
const code = text.match(/^Code:\s*(.+)$/m)?.[1];
|
|
74
|
+
const message = text.match(/^Message:\s*(.+)$/m)?.[1];
|
|
75
|
+
if (code && message)
|
|
76
|
+
return `${code}: ${message}`;
|
|
69
77
|
return;
|
|
70
78
|
}
|
|
71
79
|
// ── PUG View Parsing ─────────────────────────────────────────────────
|
|
@@ -423,6 +431,81 @@ export class PubChemClient {
|
|
|
423
431
|
throw error;
|
|
424
432
|
}
|
|
425
433
|
}
|
|
434
|
+
async getClassification(cid) {
|
|
435
|
+
try {
|
|
436
|
+
const data = await this.fetchJson(`${this.viewBase}/data/compound/${cid}/JSON?heading=Pharmacology+and+Biochemistry`);
|
|
437
|
+
const sections = data.Record.Section;
|
|
438
|
+
if (!sections)
|
|
439
|
+
return null;
|
|
440
|
+
const result = {
|
|
441
|
+
atcCodes: [],
|
|
442
|
+
fdaClasses: [],
|
|
443
|
+
fdaMechanisms: [],
|
|
444
|
+
meshClasses: [],
|
|
445
|
+
};
|
|
446
|
+
// FDA Pharmacological Classification
|
|
447
|
+
const fdaSection = findSection(sections, 'FDA Pharmacological Classification');
|
|
448
|
+
if (fdaSection) {
|
|
449
|
+
const strings = extractStrings(fdaSection);
|
|
450
|
+
for (const s of strings) {
|
|
451
|
+
if (!s.startsWith('Pharmacological Classes:'))
|
|
452
|
+
continue;
|
|
453
|
+
const classes = s.slice('Pharmacological Classes:'.length).trim();
|
|
454
|
+
for (const entry of classes.split(';')) {
|
|
455
|
+
const trimmed = entry.trim();
|
|
456
|
+
const tagMatch = trimmed.match(/^(.+?)\s*\[(\w+)\]$/);
|
|
457
|
+
if (!tagMatch)
|
|
458
|
+
continue;
|
|
459
|
+
const [, name, tag] = tagMatch;
|
|
460
|
+
if (!name)
|
|
461
|
+
continue;
|
|
462
|
+
if (tag === 'EPC' || tag === 'CS')
|
|
463
|
+
result.fdaClasses.push(name.trim());
|
|
464
|
+
else if (tag === 'MoA')
|
|
465
|
+
result.fdaMechanisms.push(name.trim());
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
result.fdaClasses = [...new Set(result.fdaClasses)];
|
|
469
|
+
result.fdaMechanisms = [...new Set(result.fdaMechanisms)];
|
|
470
|
+
}
|
|
471
|
+
// MeSH Pharmacological Classification
|
|
472
|
+
const meshSection = findSection(sections, 'MeSH Pharmacological Classification');
|
|
473
|
+
if (meshSection) {
|
|
474
|
+
result.meshClasses = extractStrings(meshSection);
|
|
475
|
+
}
|
|
476
|
+
// ATC Code
|
|
477
|
+
const atcSection = findSection(sections, 'ATC Code');
|
|
478
|
+
if (atcSection) {
|
|
479
|
+
const strings = extractStrings(atcSection);
|
|
480
|
+
for (const s of strings) {
|
|
481
|
+
// Match leaf codes like "N02BA01 - Acetylsalicylic acid" or bare "N02BA01"
|
|
482
|
+
const match = s.match(/^([A-Z]\d{2}[A-Z]{2}\d{2})\b/);
|
|
483
|
+
if (match) {
|
|
484
|
+
const desc = s.includes(' - ') ? s.split(' - ').slice(1).join(' - ').trim() : '';
|
|
485
|
+
result.atcCodes.push({ code: match[1] ?? '', description: desc });
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// Deduplicate by code
|
|
489
|
+
const seen = new Set();
|
|
490
|
+
result.atcCodes = result.atcCodes.filter((a) => {
|
|
491
|
+
if (seen.has(a.code))
|
|
492
|
+
return false;
|
|
493
|
+
seen.add(a.code);
|
|
494
|
+
return true;
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
const hasData = result.fdaClasses.length > 0 ||
|
|
498
|
+
result.fdaMechanisms.length > 0 ||
|
|
499
|
+
result.meshClasses.length > 0 ||
|
|
500
|
+
result.atcCodes.length > 0;
|
|
501
|
+
return hasData ? result : null;
|
|
502
|
+
}
|
|
503
|
+
catch (error) {
|
|
504
|
+
if (error instanceof PubChemNotFoundError)
|
|
505
|
+
return null;
|
|
506
|
+
throw error;
|
|
507
|
+
}
|
|
508
|
+
}
|
|
426
509
|
// ── Bioactivity ─────────────────────────────────────────────────
|
|
427
510
|
async getAssaySummary(cid) {
|
|
428
511
|
try {
|
|
@@ -529,6 +612,9 @@ export class PubChemClient {
|
|
|
529
612
|
catch (error) {
|
|
530
613
|
if (error instanceof PubChemNotFoundError)
|
|
531
614
|
return null;
|
|
615
|
+
// PubChem returns HTTP 400 (not 404) for nonexistent entity IDs in some endpoints
|
|
616
|
+
if (error instanceof Error && /PubChem HTTP 400/.test(error.message))
|
|
617
|
+
return null;
|
|
532
618
|
throw error;
|
|
533
619
|
}
|
|
534
620
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubchem-client.js","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pubchem-client.js","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,6 +120,42 @@ export interface BioactivityRow {
|
|
|
120
120
|
targetAccession?: string;
|
|
121
121
|
targetGeneId?: number;
|
|
122
122
|
}
|
|
123
|
+
/** Pharmacological classification from PUG View */
|
|
124
|
+
export interface CompoundClassification {
|
|
125
|
+
/** ATC codes with hierarchical descriptions */
|
|
126
|
+
atcCodes: Array<{
|
|
127
|
+
code: string;
|
|
128
|
+
description: string;
|
|
129
|
+
}>;
|
|
130
|
+
/** FDA Established Pharmacologic Classes (e.g. "Nonsteroidal Anti-inflammatory Drug") */
|
|
131
|
+
fdaClasses: string[];
|
|
132
|
+
/** FDA Mechanisms of Action (e.g. "Cyclooxygenase Inhibitors") */
|
|
133
|
+
fdaMechanisms: string[];
|
|
134
|
+
/** MeSH pharmacological class descriptions */
|
|
135
|
+
meshClasses: string[];
|
|
136
|
+
}
|
|
137
|
+
/** Drug-likeness rule evaluation */
|
|
138
|
+
export interface DrugLikenessRule {
|
|
139
|
+
limit: number;
|
|
140
|
+
pass: boolean | null;
|
|
141
|
+
value: number | null;
|
|
142
|
+
}
|
|
143
|
+
/** Computed drug-likeness assessment (Lipinski + Veber) */
|
|
144
|
+
export interface DrugLikenessAssessment {
|
|
145
|
+
lipinski: {
|
|
146
|
+
hba: DrugLikenessRule;
|
|
147
|
+
hbd: DrugLikenessRule;
|
|
148
|
+
mw: DrugLikenessRule;
|
|
149
|
+
violations: number;
|
|
150
|
+
xLogP: DrugLikenessRule;
|
|
151
|
+
};
|
|
152
|
+
pass: boolean;
|
|
153
|
+
veber: {
|
|
154
|
+
rotatableBonds: DrugLikenessRule;
|
|
155
|
+
tpsa: DrugLikenessRule;
|
|
156
|
+
violations: number;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
123
159
|
/** Structured error from PubChem API */
|
|
124
160
|
export declare class PubChemNotFoundError extends Error {
|
|
125
161
|
name: "PubChemNotFoundError";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnC;AAED,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnC;AAED,8BAA8B;AAC9B,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE;QACb,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9D,CAAC;CACH;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE;QACf,WAAW,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACxD,CAAC;CACH;AAED,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE;QACf,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC;CACH;AAED,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE;QACL,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QAC9B,GAAG,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAID,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;QAC3B,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,eAAe,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvF,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE;QACL,gBAAgB,CAAC,EAAE,KAAK,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,KAAK,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,MAAM,EAAE,MAAM,CAAC;gBACf,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH;AAID,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,uBAAuB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,mDAAmD;AACnD,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,yFAAyF;IACzF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QACR,GAAG,EAAE,gBAAgB,CAAC;QACtB,GAAG,EAAE,gBAAgB,CAAC;QACtB,EAAE,EAAE,gBAAgB,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,gBAAgB,CAAC;KACzB,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,cAAc,EAAE,gBAAgB,CAAC;QACjC,IAAI,EAAE,gBAAgB,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAID,wCAAwC;AACxC,qBAAa,oBAAqB,SAAQ,KAAK;IACpC,IAAI,EAAG,sBAAsB,CAAU;CACjD;AAID,gDAAgD;AAChD,eAAO,MAAM,mBAAmB,oeA4BtB,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,0OAerB,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,UAAU,4FAQb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+IH,wEAAwE;AAExE,wCAAwC;AACxC,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,sBAA+B,CAAC;CACjD;AAED,wEAAwE;AAExE,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,UAAU;CACF,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;IACV,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,QAAQ;IACR,YAAY;CACJ,CAAC;AAEX,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY;IACZ,IAAI;IACJ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,WAAW;IACX,YAAY;CACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/pubchem-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries.",
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries. STDIO & Streamable HTTP.",
|
|
5
5
|
"mcpName": "io.github.cyanheads/pubchem-mcp-server",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"bin": {
|
|
10
10
|
"pubchem-mcp-server": "dist/index.js"
|
|
11
11
|
},
|
|
12
|
-
"files": ["dist/"],
|
|
12
|
+
"files": ["dist/", "README.md", "LICENSE", "server.json", "Dockerfile"],
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "bun scripts/build.ts",
|
|
15
15
|
"rebuild": "bun scripts/clean.ts && bun scripts/build.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"bugs": {
|
|
33
33
|
"url": "https://github.com/cyanheads/pubchem-mcp-server/issues"
|
|
34
34
|
},
|
|
35
|
-
"author": "Casey Hand <casey@
|
|
35
|
+
"author": "Casey Hand <casey@caseyjhand.com> (https://github.com/cyanheads)",
|
|
36
36
|
"keywords": [
|
|
37
37
|
"mcp",
|
|
38
38
|
"mcp-server",
|
|
@@ -43,6 +43,16 @@
|
|
|
43
43
|
"bioactivity"
|
|
44
44
|
],
|
|
45
45
|
"license": "Apache-2.0",
|
|
46
|
+
"funding": [
|
|
47
|
+
{
|
|
48
|
+
"type": "github",
|
|
49
|
+
"url": "https://github.com/sponsors/cyanheads"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "buy_me_a_coffee",
|
|
53
|
+
"url": "https://www.buymeacoffee.com/cyanheads"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
46
56
|
"engines": {
|
|
47
57
|
"node": ">=22.0.0",
|
|
48
58
|
"bun": ">=1.2.0"
|
|
@@ -52,7 +62,7 @@
|
|
|
52
62
|
"access": "public"
|
|
53
63
|
},
|
|
54
64
|
"dependencies": {
|
|
55
|
-
"@cyanheads/mcp-ts-core": "^0.1.
|
|
65
|
+
"@cyanheads/mcp-ts-core": "^0.1.21",
|
|
56
66
|
"pino-pretty": "^13.1.3"
|
|
57
67
|
},
|
|
58
68
|
"devDependencies": {
|
package/server.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.cyanheads/pubchem-mcp-server",
|
|
4
|
+
"description": "MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/cyanheads/pubchem-mcp-server",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "0.1.3",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
|
+
"identifier": "@cyanheads/pubchem-mcp-server",
|
|
15
|
+
"runtimeHint": "bun",
|
|
16
|
+
"version": "0.1.3",
|
|
17
|
+
"packageArguments": [
|
|
18
|
+
{ "type": "positional", "value": "run" },
|
|
19
|
+
{ "type": "positional", "value": "start:stdio" }
|
|
20
|
+
],
|
|
21
|
+
"environmentVariables": [
|
|
22
|
+
{
|
|
23
|
+
"name": "MCP_LOG_LEVEL",
|
|
24
|
+
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"isRequired": false,
|
|
27
|
+
"default": "info"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"transport": {
|
|
31
|
+
"type": "stdio"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"registryType": "npm",
|
|
36
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
37
|
+
"identifier": "@cyanheads/pubchem-mcp-server",
|
|
38
|
+
"runtimeHint": "bun",
|
|
39
|
+
"version": "0.1.3",
|
|
40
|
+
"packageArguments": [
|
|
41
|
+
{ "type": "positional", "value": "run" },
|
|
42
|
+
{ "type": "positional", "value": "start:http" }
|
|
43
|
+
],
|
|
44
|
+
"environmentVariables": [
|
|
45
|
+
{
|
|
46
|
+
"name": "MCP_HTTP_HOST",
|
|
47
|
+
"description": "The hostname for the HTTP server.",
|
|
48
|
+
"format": "string",
|
|
49
|
+
"isRequired": false,
|
|
50
|
+
"default": "127.0.0.1"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "MCP_HTTP_PORT",
|
|
54
|
+
"description": "The port to run the HTTP server on.",
|
|
55
|
+
"format": "string",
|
|
56
|
+
"isRequired": false,
|
|
57
|
+
"default": "3010"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "MCP_HTTP_ENDPOINT_PATH",
|
|
61
|
+
"description": "The endpoint path for the MCP server.",
|
|
62
|
+
"format": "string",
|
|
63
|
+
"isRequired": false,
|
|
64
|
+
"default": "/mcp"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "MCP_AUTH_MODE",
|
|
68
|
+
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
|
|
69
|
+
"format": "string",
|
|
70
|
+
"isRequired": false,
|
|
71
|
+
"default": "none"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "MCP_LOG_LEVEL",
|
|
75
|
+
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
|
|
76
|
+
"format": "string",
|
|
77
|
+
"isRequired": false,
|
|
78
|
+
"default": "info"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"transport": {
|
|
82
|
+
"type": "streamable-http",
|
|
83
|
+
"url": "http://localhost:3010/mcp"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|