药品数据库查询工具

提供对DB药品数据库的快速访问,包含17,430多种药品的详细信息,适用于药物研发、临床研究和教育。

  • by openpharma-org
  • JavaScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 openpharma-org/drugbank-mcp-server

使用说明

非官方DB MCP服务器

模型上下文协议(MCP)服务器,提供对综合数据库药物数据库(17430+种药物)的访问。

特性

  • 单一统一工具 16种方法
  • 高性能SQLite后端:查询时间<10ms,内存使用量~50-100MB
  • 访问17430份药物记录(13166个小分子+4264个生物技术)
  • 全面的制药数据包括:
    • 药品名称、描述、分类
    • 临床适应症和作用机制
    • 化学结构(SMILES,InChI)
    • 药物相互作用和禁忌症
    • 靶蛋白、酶、载体、转运蛋白
    • 代谢途径
    • 市场产品和监管信息
    • 药代动力学(半衰期搜索)和毒性数据
    • 盐形态和外部数据库标识符
    • 药物相似性搜索

安装

# Clone and install dependencies
cd drugbank-mcp-server
npm install

获取数据库:

  1. 从您的数据库帐户下载完整的数据库ZIP
  2. 提取XML并将其放置在 data/full database.xml
# Build the SQLite database and copy source files
npm run build

用法

{
  "mcpServers": {
    "db-mcp-server": {
      "command": "node",
      "args": ["/path/to/db-mcp-server/build/index.js"]
    }
  }
}

工具

单一统一工具,可通过多种方法访问 method 参数。

方法

1.搜索_ _名称

按名称搜索药物(支持部分匹配)。

备注:DB使用化学名称作为主要标识符。搜索“乙酰水杨酸”可以找到阿司匹林、“布洛芬”而不是“Advil”等。

{
  "method": "search_by_name",
  "query": "Acetylsalicylic",
  "limit": 20
}

2.获取详细信息

通过DB ID获取完整的药物信息。

{
  "method": "get_drug_details",
  "drugbank_id": "EXPT00475"
}

返回完整的药物记录,包括:

  • 所有标识符(DB ID、CAS、UNII)
  • 临床信息(适应症、机制、毒性)
  • 药代动力学(吸收、代谢、半衰期)
  • 化学性质
  • 相互作用(药物、食物)
  • 靶标和酶

3.搜索_指示

根据医学指征寻找药物。

{
  "method": "search_by_indication",
  "query": "pain",
  "limit": 20
}

4.搜索_目标

通过靶蛋白/酶找到药物。

{
  "method": "search_by_target",
  "target": "COX-2",
  "limit": 20
}

5.get_drug_interactions

获取特定药物的所有药物相互作用。

{
  "method": "get_drug_interactions",
  "drugbank_id": "DB00945"
}

6.搜索_ atc_代码

按ATC(解剖治疗化学)分类代码搜索。

{
  "method": "search_by_atc_code",
  "code": "N02BA",
  "limit": 20
}

7.get_pathways

获取药物的代谢途径。

{
  "method": "get_pathways",
  "drugbank_id": "DB00945"
}

8.搜索_结构

按化学结构搜索(SMILES或InChI)。

{
  "method": "search_by_structure",
  "smiles": "CC(=O)Oc1ccccc1C(=O)O",
  "limit": 20
}

9.产品

获取药物的市场产品(品牌名称、制造商)。

{
  "method": "get_products",
  "drugbank_id": "DB00945",
  "country": "US"
}

10.搜索_ _类别

按治疗类别搜索药物。

{
  "method": "search_by_category",
  "category": "Anti-inflammatory",
  "limit": 20
}

11.获取外部标识符

获取跨数据库标识符(PubChem、ChEMBL、KEGG、RxCUI等)和结构标识符。

{
  "method": "get_external_identifiers",
  "drugbank_id": "DB02351"
}

12.搜索_半衰期

按消除半衰期范围(以小时为单位)查找药物。可用于剂量考虑。

{
  "method": "search_by_halflife",
  "min_hours": 12,
  "max_hours": 48,
  "limit": 20
}

13.获取类似药物

根据共享靶点、类别和ATC代码查找与参考药物相似的药物。使用Jaccard相似性评分。

{
  "method": "get_similar_drugs",
  "drugbank_id": "APRD00003",
  "limit": 20
}

返回相似性得分,并按以下方式细分:

  • 目标相似性:共享蛋白质/酶靶标(50%重量)
  • 类别_相似性:共享治疗类别(30%权重)
  • atc相似性:共享ATC分类代码(20%权重)

14.搜索_承运人

通过载体蛋白(在体内运输药物的蛋白质,如白蛋白)寻找药物。

{
  "method": "search_by_carrier",
  "carrier": "Albumin",
  "limit": 20
}

15.搜索_运输车

通过转运蛋白(使药物穿过细胞膜的膜蛋白)寻找药物。

{
  "method": "search_by_transporter",
  "transporter": "P-glycoprotein",
  "limit": 20
}

16.get_salts

获取药物的盐形式(不同的化学形式,如盐酸盐、硫酸盐)。

{
  "method": "get_salts",
  "drugbank_id": "DB00007"
}

Claude查询示例

配置后,您可以询问Claude:

  • “使用DB查找乙酰水杨酸的信息”(阿司匹林的化学名称)
  • “在数据库中搜索含有布洛芬的药物”
  • “哪些药物与华法林相互作用?”
  • “给我看看所有针对COX-2的药物”
  • “寻找用于治疗高血压的药物”
  • “乙酰水杨酸的代谢途径是什么?”
  • “寻找与Nelfinavir(HIV蛋白酶抑制剂)类似的药物”
  • “比伐卢定的外部标识符是什么?”
  • “寻找半衰期在12至24小时之间的药物”
  • “白蛋白携带哪些药物?”
  • “寻找由P-糖蛋白运输的药物”
  • “亮丙瑞林有哪些盐的形式?”

备注:使用化学/通用名称(乙酰水杨酸、布洛芬、对乙酰氨基酚)而不是品牌名称(阿司匹林、Advil、泰诺)可获得最佳效果。

演出

SQLite模式(默认)

  • 所有查询:<10ms
  • 内存使用:~50-100MB
  • 数据库大小:31.1MB(比1.5GB XML减少98%)
  • FTS5全文搜索:快速查找名称/指示

XML回退模式

  • 第一个查询:约30-60秒(将整个1.5GB XML加载到内存中)
  • 后续查询:<500ms(缓存在内存中)
  • 内存使用:加载数据库时约2-3GB

数据源

  • 数据库:DB(完整数据库)
  • 记录:17430种药物(13166种小分子+4264种生物技术)

许可证

麻省理工学院