使用说明
非官方 ChEMBL MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供对ChEMBL化学数据库的高级访问。该服务器提供22种专业工具,使人工智能助手和MCP客户能够直接通过ChEMBL的REST API进行复杂的药物发现研究、化学信息学分析和生物活性研究。
由开发 增强自然
特性
核心化学搜索与检索(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或纱线
设置
- 克隆存储库:
git clone <repository-url>
cd chembl-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
码头工人
构建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服务器
该服务器设计为作为MCP服务器运行,通过stdio进行通信:
npm start
添加到MCP客户端配置
将服务器添加到MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}
可用工具
1.搜索_磅
按名称、同义词或标识符在ChEMBL数据库中搜索化合物。
参数:
query(必填):搜索查询(复合名称、同义词或标识符)limit(可选):要返回的结果数(1-1000,默认值:25)offset(可选):要跳过的结果数(默认值:0)
例子:
{
"query": "aspirin",
"limit": 10
}
2.获取信息
通过ChEMBL ID获取特定化合物的详细信息。
参数:
chembl_id(必填):ChEMBL化合物ID(例如CHEMBL25)
例子:
{
"chembl_id": "CHEMBL25"
}
3.搜索目标
按名称或类型搜索生物靶标。
参数:
query(必填):目标名称或搜索查询target_type(可选):目标类型过滤器(例如,单一蛋白质、蛋白质复合物)organism(可选):生物体过滤器limit(可选):要返回的结果数(1-1000,默认值:25)
例子:
{
"query": "dopamine receptor",
"organism": "Homo sapiens",
"limit": 5
}
4.搜索活动
搜索生物活性测量和测定结果。
参数:
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.批量查询
高效处理多个ChEMBL ID。
参数:
chembl_ids(必填):ChEMBL化合物ID数组(1-50)
例子:
{
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}
资源模板
服务器通过URI模板提供对ChEMBL数据的直接访问:
1.化合物信息
- 统一资源标识符:
chembl://compound/{chembl_id} - 描述:ChEMBL ID的完整化合物信息
- 示例:
chembl://compound/CHEMBL25
2.目标信息
- 统一资源标识符:
chembl://target/{chembl_id} - 描述:ChEMBL目标ID的完整目标信息
- 示例:
chembl://target/CHEMBL2095173
3.化验信息
- 统一资源标识符:
chembl://assay/{chembl_id} - 描述:ChEMBL检测ID的完整检测信息
- 示例:
chembl://assay/CHEMBL1217643
4.活动信息
- 统一资源标识符:
chembl://activity/{activity_id} - 描述:活性ID的生物活性测量数据
- 示例:
chembl://activity/12345678
5.搜索结果
- 统一资源标识符:
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请求包括:
- 用户代理:
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
依赖项
- @模型上下文协议/sdk:用于服务器实现的核心MCP SDK
- 轴:用于ChEMBL API请求的HTTP客户端
- 打字稿:用于开发的TypeScript编译器
许可证
MIT许可证
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
支持
对于问题和疑问:
- 检查 ChEMBL API文件
- 查看 模型上下文协议规范
- 在存储库上打开问题
关于增强自然
这个全面的ChEMBL MCP服务器是由 增强自然,人工智能生物信息学和计算化学解决方案的领先创新者。增强自然专注于创建先进的工具,弥合人工智能和化学研究之间的差距,使研究人员能够从化学和生物数据中获得更深入的见解。
完整的工具参考
核心化学搜索和检索工具
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支持:具有安全最佳实践的容器化部署
- 专业文档:完整的工具参考和示例
- 由增强自然开发:专业化学信息平台
引用
如果您在研究或出版物中使用此项目,请按如下方式引用:
author = {Moudather Chelbi},
title = {ChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}