非官方DB MCP服务器
模型上下文协议(MCP)服务器,提供对综合数据库药物数据库(17430+种药物)的访问。
特性
- 单一统一工具 16种方法
- 高性能SQLite后端:查询时间\<10ms,内存使用量~50-100MB
- 访问17430份药物记录(13166个小分子+4264个生物技术)
- 全面的制药数据包括:
- 药品名称、描述、分类 - 临床适应症和作用机制 - 化学结构(SMILES,InChI) - 药物相互作用和禁忌症 - 靶蛋白、酶、载体、转运蛋白 - 代谢途径 - 市场产品和监管信息 - 药代动力学(半衰期搜索)和毒性数据 - 盐形态和外部数据库标识符 - 药物相似性搜索
安装
# Clone and install dependencies
cd drugbank-mcp-server
npm install获取数据库:
- 从您的数据库帐户下载完整的数据库ZIP
- 提取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种生物技术)
许可证
麻省理工学院
