# @cyanheads/pubchem-mcp-server 中文文档

规范地址：https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/

版本：0\.8\.0
npm 元数据更新时间：2026-10-28T14:55:11.617Z
中文译文更新时间：2026-11-11T06:08:43.407Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cyanheads/pubchem-mcp-server
原文对照：https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/?lang=original
项目主页：https://github.com/cyanheads/pubchem-mcp-server#readme
源码仓库：https://github.com/cyanheads/pubchem-mcp-server

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：860 kB，145 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：3 个
- 首次发布：2025-06-30T05:03:26.959Z
- 最新版本发布：2026-10-28T14:55:11.414Z
- 近 30 天下载量：4730（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：49（近 12 个月 47 个）

## 中文简介

通过 MCP 搜索 PubChem 化学数据库,以了解化合物、特性、安全数据、生物活性、交叉参照和实体摘要。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

## 安装

```sh
npm install @cyanheads/pubchem-mcp-server
```

也可以使用：`pnpm add @cyanheads/pubchem-mcp-server`、`yarn add @cyanheads/pubchem-mcp-server`、`bun add @cyanheads/pubchem-mcp-server`

## README

# @cyanheads/pubchem-mcp-服务器

**通过 MCP 搜索 PubChem 化学数据库,以了解化合物、特性、安全数据、生物活性、交叉参照和实体摘要。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.**

10个工具 • 6个资源 • 1个技能

[![Version](https://img.shields.io/badge/Version-0.8.0-blue.svg?style=flat-square)](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/pubchem-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-%5E2.4.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/pubchem-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/pubchem-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-%5E7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-%5E1.4.0-f472b6.svg?style=flat-square)](https://bun.sh/)

[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/pubchem-mcp-server/releases/latest/download/pubchem-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=pubchem-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvcHViY2hlbS1tY3Atc2VydmVyIl19) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22pubchem-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fpubchem-mcp-server%22%5D%7D)

[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)

**公共主机服务器 :** [https://pubchem.caseyjhand.com/mcp 页面存档备份,存于互联网档案馆](https://pubchem.caseyjhand.com/mcp)

* * *

## 概览

PubChem提供的化学化合物和生物测定. 以名称、公式或结构搜索化合物;获取特性、安全数据、生物活性、药物与食品的相互作用、分子目标和3D结构;并按生物目标找到生物测定.

### 工具

| 工具 | 说明 |
| :-- | :-- |
| `pubchem_search_compounds` | 按名称搜索化合物,SMILES,InChi,InChiKey,公式,子结构,上层结构,或2D相似性,或列出发现活性生物测定的化合物. |
| `pubchem_get_compound_details` | 获得物理化学性质,描述,同义词,药物相同性,由CID对化合物进行分类. |
| `pubchem_get_compound_image` | 用 CID 获取一个化合物的 二维结构图( PNG) . |
| `pubchem_get_compound_3d_structure` | 由 CID 获取一个化合物的3D同位素(原子坐标和债券),如解析的 JSON 或生 SDF . |
| `pubchem_get_compound_xrefs` | 获取外部数据库的交叉引用(PubMed,专利,基因,CAS和EC号码等). |
| `pubchem_get_compound_safety` | 通过CID(批量)获取一个或多个化合物的GHS危险分类和安全数据. |
| `pubchem_get_bioactivity` | 获得化合物的生物活性剖面:实验结果,目标,活性值,实验类型,并引用了PubMed ID;通过结果,分子目标,或实验类型过滤. |
| `pubchem_get_compound_interactions` | 获得一个化合物的药物和食物的相互作用 和分子目标 它的化验名称, 每一个有化验计数 和最强大的活性值. |
| `pubchem_search_assays` | 按生物目标(基因符号,蛋白质,基因ID,UniProt加入)查找生物测定. |
| `pubchem_get_summary` | 得到PubChem实体的总结:化验,基因,蛋白质,分类学. |

### 资源

复合物和化验记录也作为URI的调制资源被曝光出,并以与工具相同的客户端方法作为后盾;许多MCP客户端都是只使用工具,从不表面资源.

| 资源 | 说明 |
| :-- | :-- |
| `pubchem://compound/{cid}` | 核心物理化学性质(JSON). |
| `pubchem://compound/{cid}/safety` | 全球统一制度危险分类. |
| `pubchem://compound/{cid}/image` | 2D结构图 (PNG). |
| `pubchem://compound/{cid}/xrefs` | 出自"外道对照"(JSON). |
| `pubchem://compound/{cid}/bioactivity` | 生物测定活性简介 (JSON). |
| `pubchem://assay/{aid}` | BioAssay摘要(JSON). |

### 技能

服务器发布代理技能, [`pubchem-guide`](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/skills/pubchem-guide/SKILL.md),覆盖了门和标识链,工具描述不携带:盐 vs 母 CID,Gene ID和加入来自何处,基因符号,Gene ID,和加入搜索为何不同意,以及如何读取活性标签,强性值,以及GHS数据. 插件安装( Claude Code, Codex) 和 `.mcpb` 捆起它从 `skills/`,服务器也可以通过 MCP 作为 `skill://pubchem-guide/SKILL.md`。 。 。 .

## 能力参考

### `pubchem_search_compounds` 工具

-   6项搜索战略:标识符(`identifierType` + 键 `identifiers`;名称/MILES/InChi/InChiKey,每通电话25个,其余返回 `unprocessed`),公式(`formula`,希尔标记,可选 `allowOtherElements`),子结构/上层结构并有2D相似性(`query` + 键 `queryType`; 相似性阈值 70-100, 默认为 90), 或分析(`aid`; 化合物生物测定标记为活性,或每个化合物试验 `activeOnly: false`(中文(简体) )
-   每页最多200 CID( 默认 20; 较大) `maxResults` 服务于200人,报告于 `cappedInputs`(三); `offset` 页面标识符和测试搜索到匹配的末尾,以及公式、子结构、上层结构和相似性搜索到一万个(深度失败) `offset_ceiling_exceeded`) (中文(简体) ). 可选 `properties` 保存后续 `pubchem_get_compound_details` 调用
-   报告 `totalFound`,或一个 `totalFoundAtLeast` 上游搜索饱和时的地板,以及 `unresolvedIdentifiers` 没有CID的输入。 失败者 `aid_not_found` 用于未知的自动识别码和 `search_query_rejected` 查询 PubChem 无法搜索

* * *

### `pubchem_get_compound_details` 工具

-   每通电话最多100个刑事调查员(其余人员返回) `unprocessed`); 27个可用属性,默认为核心集 14
-   可选说明`descriptionOffset`编号 :`maxDescriptions`,默认 3, 最大 20)和分类(FDA, MeSH, ATC)仅涵盖前10个CID, 其余列于 `skippedCids`. 可选同义词`synonymOffset`编号 :`maxSynonyms`,默认为 20,最大为 100 ) 和 Lipinski/Veber 类药物检查覆盖每个发现的 CID
-   每份CID数据 `found: false` 从没有数据的化合物中分离一个不存在的 CID

* * *

### `pubchem_get_compound_image` 工具

-   单一CID; `size` 实值 `"small"` (100x100)或 (中文(简体) ) `"large"` (300x300,默认)
-   返回基数64编码的PNG+宽度/高
-   类型 `cid_not_found` 当 PubChem 没有 CID 记录时出错

* * *

### `pubchem_get_compound_3d_structure` 工具

-   单一CID; `format="json"` (默认)返回解析的原子(元素+x/y/z)和债券, `format="sdf"` 返回原始 V2000 SDF 文本
-   `maxAtoms`编号 :`maxBonds` 上限 JSON 预览( 默认为 200 个); `atomCount`编号 :`bondCount` 总是报告全部总数,并通过浓缩披露任何上限
-   `includeRawSdf` 绕过原始 SDF 文本上的默认500行盖
-   可选 `includeAlternateConformerIds` 列出默认以外的符合者标识符
-   类型 `no_3d_structure` 当 PubChem 没有计算出3D 坐标( 大分子、 混合物、 一些盐类) 时出错

* * *

### `pubchem_get_compound_xrefs` 工具

-   单个 CID; 一个或多个 `xrefTypes`数字 : `CAS`, (中文(简体) ), `EC`, (中文(简体) ), `RN`, (中文(简体) ), `RegistryID`, (中文(简体) ), `PatentID`, (中文(简体) ), `PubMedID`, (中文(简体) ), `GeneID`, (中文(简体) ), `ProteinGI`, (中文(简体) ), `TaxonomyID`
-   `CAS` 财务报告和审定财务报表 `EC` (a) 存放在大院内的数字,根据存入该大院的多少来源记录所订购的每个明确价值,以及这些数目 `sourceCounts`。 。 。 . `RN` 是 PubChem 的无名登记号码列表: CAS 号码与已过期的和相关的 CAS RN 和 EC 号码相邻
-   `ProteinGI` 目前未返回 PubChem 的数据; 使用 `GeneID` 基因/蛋白质协会
-   `maxPerType` 最多500人(违约50人),其中一人 `offset` 适用于每类;每类报告 `totalAvailable` 财务报告和审定财务报表 `truncated`。 。 。 . `PubMedID` 来得最快
-   无法装入的类型命名于 `failedTypes` 而其他人仍然返回;只有当一个类型失败,并且除了蛋白质GI(PubChem不再服务)之外没有其它类型加载时,呼叫才会失败. 空结果表示化合物没有被请求的类型, 或 CID 可能被误打

* * *

### `pubchem_get_compound_safety` 工具

-   每通电话最多25个CID(其余返回) `unprocessed`(中文(简体) )
-   返回全球统一制度的信号单词、象形图、H码和P码在源头之间合并,加 `classifications[]` (b) 防范性说明载有: `decoded` 旗帜
-   每份CID数据 `status`数字 : `ok`, (中文(简体) ), `not_classified` (通知者没有发现全球统一制度的危险), `no_ghs_data` (没有交存分类),或 `cid_not_found`,所以一个坏的CID 从来没有读为"没有危险的文件"

* * *

### `pubchem_get_bioactivity` 工具

-   单个 CID; 过滤器 `outcomeFilter` (单位:千美元)`active`编号 :`inactive`编号 :`all`默认值 `all`, (中文(简体) ), `targetGeneId`编号 :`targetAccession`,以及 `assayType` (无) `confirmatory`编号 :`screening`编号 :`summary`编号 :`other`); 分析必须通过每个过滤器集
-   目标过滤器匹配绑同目标的任何标识符,因此Gene ID 5742,UniProt P23219和RefSeq NP 5421158都达到了相同的COX-1测定
-   每一个结果都包含着实验 `assayType` 以及它引用的PubMed身份证(`pmids`,最新第一页)
-   每页最多100个结果(默认20); `offset` 到达其余。 多目标分析报告匹配的目标,并列出其他目标 `otherTargets`
-   报告 `totalAssays`编号 :`activeCount`编号 :`inactiveCount` 整个大院和 `filteredCount`编号 :`returnedCount` 对于页面; 通知说是否没有数据, 过滤器排除了一切, 或者 `offset` 超过尾端

* * *

### `pubchem_get_compound_interactions` 工具

-   单个 CID; 一个或多个 `kinds` —— 说 `drug-food` (PUG视图), `target`, (中文(简体) ), `drug-drug` (毒品银行);默认 `["drug-food"]`,并有一个空的毒品-食品页面点 `target`
-   `target` 给每个目标一个条目 化合物的实验摘要名: 加入的 Gene ID 和 它的表对, 或 它从未对过的标识符。 A Gene ID 和一个加入,任何一行对子都是单独的条目,即使它们给同一个蛋白命名(erlotinib的ERBB2出现为: `accession:P04626` 作为 `GeneID:2064`) (中文(简体) ). 每个条目都从一个分批基因或蛋白质汇总检查中命名目标,加上 `GeneID:` 或者说 `accession:` 价值 `pubchem_get_bioactivity` 过滤器上,并按结果说明检验结果和最有力的AID值。 积极目标先来,最强者先来 如果一个名字搜索失败或数秒内没有回答,条目会保留其标识,通知中写着
-   `maxEntries` 每一页的每类(最多50个,默认为10个); `offset` 计数记录(目标 `target`),最高达2,147,483,646. 每个类型页独立,以 `paging[]` (单位:千美元)`totalRecords`编号 :`nextOffset`编号 :`truncated`(中文(简体) )
-   失败的种类在 `failedKinds` 其他人仍然回来。 通知只为失败提供重试,重试可以澄清(出时,速率限制,网络出错,无法读取的响应,50xx以外的5);HTTP 400,403,或501,或服务器不期望的形状的响应,每通呼叫都以同样的方式失败. `drug-drug` 来源于PubChem的SDQ服务,它拒绝自动请求,因此降落在 `failedKinds` 重试也无济于事

* * *

### `pubchem_search_assays` 工具

-   搜索者为 `targetType`数字 : `genesymbol`编号 :`proteinname` (案文), `geneid` (NCBI基因标识), `proteinaccession` (UniProt) (英语)
-   A 类 `genesymbol` 跨物种匹配. `geneid` 财务报告和审定财务报表 `proteinaccession` 每个针头一个蛋白质,但返回重叠, 不同的测试集; 结合两者为完整的列表
-   每页最多200个助理ID(默认为50); `offset` 通过结果的页数
-   拒绝空白 `targetQuery` 和非数字 `geneid`页:1 `targetQuery` PubChem 以 HTTP 400 拒绝( 一个带换行符, 另一个除标签和 NUL 以外的 C0 控制字符, 或者 DEL) 失败 `target_query_rejected`
-   报告 `totalFound` 并区分“无匹配”和“抵消过末”

* * *

### `pubchem_get_summary` 工具

-   `entityType`数字 : `assay` (援助署), `gene` (NCBI基因标识), `protein` (统一加入),或 `taxonomy` (税务ID);每个呼叫最多10个识别符
-   逗号连接字符串被分割为标识符; 任何过去的前 10 个都会返回到 `unprocessed`,且超过1000个失败 `too_many_identifiers`
-   自动识别码、基因识别码和税务识别码必须是正整数, 最高可达2147483647; 其他部件得到一个 `invalid: true` 行, 调用失败为 `invalid_identifier` 只有在无可用时
-   人均标识符 `found` 旗帜; 字段依赖 `entityType` (分类: `lineage`; 基因 : `symbol`编号 :`taxonomy`;说明: `method`,前25页 `targets` 与 `targetCount`,测试/活性化合物计数, `lastDataChange`(中文(简体) )

* * *

### `pubchem://compound/{cid}` 资源

-   核心物理化学性质(默认的14-财产集与 `pubchem_get_compound_details`),作为 `application/json`
-   当 CID 在 PubChem 不存在时, 丢出一个未找到的键盘
-   使用 `pubchem_get_compound_details` 选择特定属性或添加描述、同义词、类似药物和分类

* * *

### `pubchem://compound/{cid}/safety` 资源

-   全球统一制度危险分类为: `application/json`,包括每个来源 `ghs.classifications` 和贡献者 `source` 列表
-   `status` (单位:千美元)`ok`编号 :`not_classified`编号 :`no_ghs_data`编号 :`cid_not_found`)是区分坏CID和没有沉积分类的化合物的唯一信号——读取的资源没有通知表面

* * *

### `pubchem://compound/{cid}/image` 资源

-   2D 结构图, 300x300 PNG, 以基数64 blob 返回
-   使用 `pubchem_get_compound_image` 100x100大小选项

* * *

### `pubchem://compound/{cid}/xrefs` 资源

-   焦点默认集 - `RN`, (中文(简体) ), `RegistryID`, (中文(简体) ), `PubMedID`, (中文(简体) ), `CAS` (与 `sourceCounts`——每类最多25个身份证,因为 `application/json`; PubMed ID是最高的25个(最近一次分配),最高的第一. 无法装入的类型命名于 `failedTypes`
-   使用 `pubchem_get_compound_xrefs` 用于全套xref型号,每型号上限较高,并抵消呼号

* * *

### `pubchem://compound/{cid}/bioactivity` 资源

-   最多25条 `application/json`,每个带有 `assayType` 财务报告和审定财务报表 `pmids`附加时 `totalAssays`编号 :`activeCount` (a) 整个大院 `otherTargets`
-   使用 `pubchem_get_bioactivity` 以结果、目标或化验类型过滤,提高上限,或页以相抵

* * *

### `pubchem://assay/{aid}` 资源

-   生物分析摘要 `application/json` 名称、说明、来源、协议、物质计数
-   当 AID 不存在时, 丢出一个未找到的键

## 特征

建造在 [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio和可流式的 HTTP 传输器,可插接式(`none` 编号 : `jwt` 编号 : `oauth`),可互换存储(`in-memory`, (中文(简体) ), `filesystem`, (中文(简体) ), `Supabase`, (中文(简体) ), `Cloudflare KV/R2/D1`),结构化记录,可选择的OpenTeleometry tracking.

PubChem 特异性:

-   覆盖 PUG REST 和 PUG 视图终点,加上药物-药物相互作用的SDQ
-   限制费率的客户端( 5 req/s) 有请求排队和一次关于瞬时故障的重试
-   每一次呼叫的50个预算在上游失败,因为 `Timeout`,且已取消的呼叫失败 `RequestCancelled`
-   V2000 SDF 为3D 配对者设置的解析器; 类似药物的特性从已比较的属性计算
-   所有工具都是只读和一能的,不需要 API 键

方便代理输出 :

-   每份CID数据 `status` 财务报告和审定财务报表 `found` 旗帜允许调用者在数据上的分支而不是匹配出错字符串
-   批量工具同时返回每个项目的结果 `unresolvedIdentifiers`, (中文(简体) ), `skippedCids`, (中文(简体) ), `failedKinds`,以及 `failedTypes` 而不是输掉整个电话
-   封面列表披露 `truncated`, (中文(简体) ), `shown`编号 :`cap`,以及 `nextOffset`; 超大批次的服务达到上限 `cappedInputs` 财务报告和审定财务报表 `unprocessed` 报告其他情况
-   失败带有输入 `reason` (例如:. `cid_not_found`, (中文(简体) ), `missing_identifier_args`, (中文(简体) ), `invalid_cid_query`)带有回收文本

## 开始

### 公共托管实例

可在 `https://pubchem.caseyjhand.com/mcp` 无需安装。 通过可流式HTTP将 MCP 客户端指向它 :

```json
{
  "mcpServers": {
    "pubchem-mcp-server": {
      "type": "streamable-http",
      "url": "https://pubchem.caseyjhand.com/mcp"
    }
  }
}
```

### 自有/当地

在您的 MCP 客户端配置文件中添加以下内容 .

```json
{
  "mcpServers": {
    "pubchem-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/pubchem-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    }
  }
}
```

或者用 npx( 不需要 Bun) :

```json
{
  "mcpServers": {
    "pubchem-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/pubchem-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    }
  }
}
```

或与道克相会:

```json
{
  "mcpServers": {
    "pubchem-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/pubchem-mcp-server:latest"]
    }
  }
}
```

对于可流式HTTP,设置传输并启动服务器:

```sh
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp
```

### 先决条件

-   [Bun v1.4.0 (英语)](https://bun.sh/) 或更高(或Node.js v24+).
-   不需要API密钥——PubChem的API可以自由访问.

### 安装

1.  **清除仓库 :**

```sh
git clone https://github.com/cyanheads/pubchem-mcp-server.git
```

2.  **导航到目录 :**

```sh
cd pubchem-mcp-server
```

3.  **安装依赖性 :**

```sh
bun install
```

4.  **配置环境( 可选) :**

```sh
cp .env.example .env
# edit .env to override transport, session mode, storage, or logging defaults
```

## 配置

| 变量 | 说明 | 默认 |
| :-- | :-- | :-- |
| `MCP_TRANSPORT_TYPE` | 运输: `stdio` 或者说 `http`。 。 。 . | `stdio` |
| `MCP_HTTP_PORT` | HTTP 服务器端口 . | `3010` |
| `MCP_HTTP_HOST` | HTTP 服务器的主机 . | `127.0.0.1` |
| `MCP_SESSION_MODE` | `stateless`, (中文(简体) ), `stateful`,或 `auto`。 。 。 . | `stateless` |
| `MCP_AUTH_MODE` | Auth 模式 : `none`, (中文(简体) ), `jwt`,或 `oauth`。 。 。 . | `none` |
| `MCP_LOG_LEVEL` | 日志级别(RFC 5424). | `info` |
| `STORAGE_PROVIDER_TYPE` | 存储后端. | `in-memory` |
| `OTEL_ENABLED` | 启用 OpenTeleometry . | `false` |

见 [`.env.example`](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/.env.example) 用于完整可选覆盖列表.

## 运行服务器

### 地方发展

-   **构建和运行 :**
    
    ```sh
    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:stdio
    # or
    bun run start:http
    ```
    
-   **运行检查和测试 :**
    
    ```sh
    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec
    ```
    

### 夹克

```sh
docker build -t pubchem-mcp-server .
docker run --rm -p 3010:3010 pubchem-mcp-server
```

Dockerfile 默认为 HTTP 传输、 无国籍会话模式和日志到 `/var/log/pubchem-mcp-server`。默认情况下安装了 OpenTeleometry 端端依赖性 `--build-arg OTEL_ENABLED=false` 以略去它们.

## 项目结构

| 目录 | 目的 |
| :-- | :-- |
| `src/index.ts` | `createApp()` 入口——登记工具/资源并输入PubChem客户端. |
| `src/mcp-server/tools/definitions/` | 工具定义`*.tool.ts`) (中文(简体) ). |
| `src/mcp-server/resources/definitions/` | 资源定义`*.resource.ts`) (中文(简体) ). |
| `src/services/pubchem/` | PubChem API客户端——速率限制,重试,以及响应/SDF解析. |
| `scripts/` | 构建,清洁,devcheck,和树生成脚本. |
| `tests/` | 单位与整合测试. |

## 发展指南

见 [`CLAUDE.md`](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/CLAUDE.md) 发展准则和建筑规则。 简本:

-   搬运工投掷,框架渔获量——否 `try/catch` 在工具逻辑中
-   使用 `ctx.log` 请求范围记录
-   环绕外部 API 调用: 验证原始 PubChem 响应 ~ 正常化到域类型 ~ 返回输出计划; 永远不编织缺失字段
-   登记册中的新工具和资源 `index.ts` 桶文件

## 捐款

问题值得欢迎。 提交前运行检查 :

```sh
bun run devcheck
bun run test
```

## 许可证

阿帕奇-2.0 — 见 [自由主义](https://npmcn.com/package/%40cyanheads/pubchem-mcp-server/LICENSE) 详细情况.

## 常见问题

### @cyanheads/pubchem-mcp-server 是什么？

通过 MCP 搜索 PubChem 化学数据库,以了解化合物、特性、安全数据、生物活性、交叉参照和实体摘要。 \(原始内容存档于2012-10-12\)\. STIO or Streamable HTTP\.

### 如何安装 @cyanheads/pubchem-mcp-server？

在项目目录运行 npm install @cyanheads/pubchem-mcp-server，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pubchem-mcp-server，可以用 npx pubchem-mcp-server 直接运行。

### @cyanheads/pubchem-mcp-server 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @cyanheads/pubchem-mcp-server 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @cyanheads/pubchem-mcp-server 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cyanheads/pubchem-mcp-server 可以商用吗？

@cyanheads/pubchem-mcp-server 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cyanheads/pubchem-mcp-server 的下载量有多少？

根据 npm 官方下载统计，@cyanheads/pubchem-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,730 次，日均约 158 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cyanheads/pubchem-mcp-server 还在维护吗？

最新版本 0\.8\.0 发布于 2026/10/28（13 天前）；至今共发布 49 个版本，其中过去 12 个月发布了 47 个；首次发布于 2025/06/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

