关于 ChEMBL MCP Server
ChEMBL MCP Server 是一个非官方的 MCP 服务,通过 ChEMBL REST API 访问化学数据库。它提供 22 个专用工具,面向药物发现、化学信息学和生物活性研究人员。
主要功能
- 01化合物检索与结构信息获取
- 02靶点分析与 UniProt 关联查询
- 03生物活性与化验数据检索
- 04药物开发状态与作用机制查询
- 05ADMET、理化性质与类药性评估
适用场景
- 01按名称检索化合物并获取 CHEMBL 详细信息
- 02查询针对特定靶点的 IC50 等生物活性数据
- 03批量处理多个 ChEMBL ID
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 22 个 ChEMBL 查询工具,并提供 chembl:// 形式的资源模板。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

非官方 ChEMBL MCP 服务
一个全面的模型上下文协议(MCP)服务,可高级访问 ChEMBL 化学数据库。此服务提供 22 种专用工具,使 AI 助手和 MCP 客户端能够直接通过 ChEMBL 的 REST API 开展复杂的药物发现研究、化学信息学分析和生物活性研究。
由 Augmented Nature 开发
功能
核心化学搜索与检索(5 种工具)
- 化合物搜索:按化合物名称、同义词或标识符搜索 ChEMBL 数据库
- 化合物详细信息:检索全面的化合物信息,包括结构、属性和注释
- 基于 InChI 的搜索:按 InChI 密钥或 InChI 字符串查找化合物
- 结构检索:以多种格式(SMILES、InChI、MOL、SDF)获取化学结构信息
- 相似性搜索:使用 Tanimoto 相似性查找化学结构相似的化合物
靶点分析与药物发现(5 种工具)
- 靶点搜索:按名称或类型搜索生物靶点
- 靶点详细信息:检索全面的靶点信息和注释
- 靶点化合物:获取针对特定靶点进行测试的化合物
- UniProt 集成:按 UniProt 登录号查找 ChEMBL 靶点
- 靶点通路:获取相关的生物通路和机制
生物活性与测定数据(5 种工具)
- 活性搜索:搜索生物活性测量值和测定结果
- 测定详细信息:获取全面的测定方案和条件
- 活性类型搜索:按特定活性类型和值范围查找生物活性数据
- 剂量-反应分析:获取剂量-反应数据和活性特征
- 活性比较:比较多种化合物或靶点的生物活性数据
药物开发与临床数据(4 种工具)
- 药物搜索:搜索已获批药物和临床候选药物
- 药物开发状态:获取药物开发状态和临床试验信息
- 治疗适应症:搜索治疗适应症和疾病领域
- 作用机制:获取作用机制和靶点相互作用数据
化学属性分析(4 种工具)
- ADMET 分析:分析 ADMET 属性(吸收、分布、代谢、排泄、毒性)
- 分子描述符:计算分子描述符和物理化学属性
- 溶解度预测:预测水溶性和渗透性属性
- 类药性评估:使用 Lipinski 五规则和其他指标评估类药性
高级搜索与交叉引用(4 种工具)
- 子结构搜索:查找包含特定子结构的化合物
- 批量处理:高效处理多个 ChEMBL ID
- 外部引用:获取外部数据库链接(PubChem、DrugBank、PDB 等)
- 高级搜索:使用多个化学和生物学筛选条件执行复杂查询
资源模板
- 通过 URI 模板直接访问 ChEMBL 数据,实现无缝集成
安装
先决条件
- Node.js(v16 或更高版本)
- npm 或 yarn
设置
- 克隆仓库:
git clone <repository-url>
cd chembl-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
Docker
构建 Docker 镜像
构建 Docker 镜像:
docker build -t chembl-mcp-server .
使用 Docker 运行
运行容器:
docker run -i chembl-mcp-server
如需集成 MCP 客户端,可直接使用该容器:
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}
用法
作为 MCP 服务
此服务设计为通过 stdio 通信的 MCP 服务:
npm start
添加到 MCP 客户端配置
将服务添加到 MCP 客户端配置中(例如 Claude Desktop):
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}
可用工具
1. search_compounds
按名称、同义词或标识符搜索 ChEMBL 数据库中的化合物。
参数:
query(必填):搜索词(化合物名称、同义词或标识符)limit(可选):返回结果数量(1-1000,默认值:25)offset(可选):跳过的结果数量(默认值:0)
示例:
{
"query": "aspirin",
"limit": 10
}
2. get_compound_info
通过 ChEMBL ID 获取特定化合物的详细信息。
参数:
chembl_id(必填):ChEMBL 化合物 ID(例如,CHEMBL25)
示例:
{
"chembl_id": "CHEMBL25"
}
3. search_targets
按名称或类型搜索生物靶点。
参数:
query(必填):靶点名称或搜索词target_type(可选):靶点类型筛选条件(例如,SINGLE PROTEIN、PROTEIN COMPLEX)organism(可选):生物体筛选条件limit(可选):返回结果数量(1-1000,默认值:25)
示例:
{
"query": "dopamine receptor",
"organism": "Homo sapiens",
"limit": 5
}
4. search_activities
搜索生物活性测量数据和测定结果。
参数:
target_chembl_id(可选):ChEMBL 靶点 ID 筛选条件assay_chembl_id(可选):ChEMBL 测定 ID 筛选条件molecule_chembl_id(可选):ChEMBL 化合物 ID 筛选条件activity_type(可选):活性类型(例如,IC50、Ki、EC50)limit(可选):返回结果数量(1-1000,默认值:25)
示例:
{
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 50
}
5. batch_compound_lookup
高效处理多个 ChEMBL ID。
参数:
chembl_ids(必填):ChEMBL 化合物 ID 数组(1-50)
示例:
{
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}
资源模板
该服务通过 URI 模板直接访问 ChEMBL 数据:
1. 化合物信息
- URI:
chembl://compound/{chembl_id} - 描述:ChEMBL ID 对应的完整化合物信息
- 示例:
chembl://compound/CHEMBL25
2. 靶点信息
- URI:
chembl://target/{chembl_id} - 描述:ChEMBL 靶点 ID 对应的完整靶点信息
- 示例:
chembl://target/CHEMBL2095173
3. 测定信息
- URI:
chembl://assay/{chembl_id} - 描述:ChEMBL 测定 ID 对应的完整测定信息
- 示例:
chembl://assay/CHEMBL1217643
4. 活性信息
- URI:
chembl://activity/{activity_id} - 描述:活性 ID 对应的生物活性测量数据
- 示例:
chembl://activity/12345678
5. 搜索结果
- URI:
chembl://search/{query} - 描述:与搜索词匹配的化合物搜索结果
- 示例:
chembl://search/aspirin
示例
基本化合物搜索
搜索与阿司匹林相关的化合物:
// Tool call
{
"tool": "search_compounds",
"arguments": {
"query": "aspirin",
"limit": 5
}
}
获取化合物详细信息
获取有关阿司匹林的全面信息:
// Tool call
{
"tool": "get_compound_info",
"arguments": {
"chembl_id": "CHEMBL25"
}
}
基于靶点的搜索
查找针对多巴胺受体进行过测试的化合物:
// Tool call
{
"tool": "search_targets",
"arguments": {
"query": "dopamine receptor D2",
"organism": "Homo sapiens"
}
}
生物活性分析
搜索针对特定靶点的 IC50 数据:
// Tool call
{
"tool": "search_activities",
"arguments": {
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 100
}
}
批量处理
高效处理多个化合物:
// Tool call
{
"tool": "batch_compound_lookup",
"arguments": {
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"]
}
}
API 集成
该服务集成了 ChEMBL REST API,可通过编程方式访问化学数据。有关 ChEMBL 的更多信息:
- ChEMBL 网站:https://www.ebi.ac.uk/chembl/
- API 文档:https://chembl.gitbook.io/chembl-interface-documentation/web-services
- REST API 指南:https://www.ebi.ac.uk/chembl/api/data/docs
所有 API 请求均包含:
- User-Agent:
ChEMBL-MCP-Server/1.0.0 - 超时:30 秒
- 基础 URL:
https://www.ebi.ac.uk/chembl/api/data
错误处理
该服务包含全面的错误处理机制:
- 输入验证:使用类型守卫验证所有参数
- API 错误:捕获网络和 API 错误,并返回描述性消息
- 超时处理:请求在 30 秒后超时
- 优雅降级:妥善处理部分失败
开发
构建项目
npm run build
开发模式
以监视模式运行 TypeScript 编译器:
npm run dev
项目结构
chembl-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
依赖项
- @modelcontextprotocol/sdk:用于实现服务的核心 MCP SDK
- axios:用于发送 ChEMBL API 请求的 HTTP 客户端
- typescript:用于开发的 TypeScript 编译器
许可证
MIT 许可证
贡献
- Fork 仓库
- 创建功能分支
- 进行更改
- 根据需要添加测试
- 提交拉取请求
支持
如有问题或疑问:
- 查看 ChEMBL API 文档
- 查看 Model Context Protocol 规范
- 在仓库中提交问题
关于 Augmented Nature
这款全面的 ChEMBL MCP 服务由 Augmented Nature 开发。Augmented Nature 是 AI 驱动的生物信息学和计算化学解决方案领域的领先创新者,专注于打造先进工具,以弥合人工智能与化学研究之间的差距,帮助研究人员从化学和生物数据中发掘更深层次的见解。
完整工具参考
核心化学搜索与检索工具
search_compounds- 按名称、别名或标识符搜索 ChEMBL 数据库get_compound_info- 根据 ChEMBL ID 获取详细的化合物信息search_by_inchi- 根据 InChI 密钥或 InChI 字符串查找化合物get_compound_structure- 以各种格式检索化学结构search_similar_compounds- 使用 Tanimoto 相似度查找化学性质相似的化合物
靶点分析与药物发现工具
search_targets- 按名称或类型搜索生物靶点get_target_info- 根据 ChEMBL 靶点 ID 获取详细的靶点信息get_target_compounds- 获取针对特定靶点进行测试的化合物search_by_uniprot- 根据 UniProt 登录号查找 ChEMBL 靶点get_target_pathways- 获取与靶点相关的生物通路
生物活性与测定数据工具
search_activities- 搜索生物活性测量值和测定结果get_assay_info- 根据 ChEMBL 测定 ID 获取详细的测定信息search_by_activity_type- 按活性类型和值范围查找生物活性数据get_dose_response- 获取剂量-反应数据和活性特征compare_activities- 比较多种化合物的生物活性数据
药物开发与临床数据工具
search_drugs- 搜索已获批药物和临床候选药物get_drug_info- 获取药物开发状态和临床试验信息search_drug_indications- 搜索治疗适应症和疾病领域get_mechanism_of_action- 获取作用机制和靶点相互作用数据
化学性质分析工具
analyze_admet_properties- 分析 ADMET 性质calculate_descriptors- 计算分子描述符和物理化学性质predict_solubility- 预测水溶性和渗透性assess_drug_likeness- 使用 Lipinski 五规则评估类药性
高级搜索与交叉引用工具
substructure_search- 查找包含特定子结构的化合物batch_compound_lookup- 高效处理多个 ChEMBL IDget_external_references- 获取指向外部数据库的链接advanced_search- 使用多个化学和生物过滤条件执行复杂查询
更新日志
v1.0.0 - 初始版本
- 全面的化学情报:提供 27 种用于药物发现的专用工具
- 核心功能:化合物搜索、靶点分析、生物活性数据
- 高级功能:相似性搜索、批量处理、交叉引用
- 资源模板:通过 URI 直接访问 ChEMBL 数据
- Docker 支持:采用容器化部署,并遵循安全最佳实践
- 专业文档:完整的工具参考和示例
- 由 Augmented Nature 开发:专业的化学信息学平台
引用
如果您在研究或出版物中使用此项目,请按如下方式引用:
author = {Moudather Chelbi},
title = {ChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。