article
README
🚀 非官方PubChem MCP服务器
这是一个全面的模型上下文协议(MCP)服务器,用于访问PubChem化学数据库。该服务器可提供超过1.1亿种化合物的访问,涵盖了丰富的分子特性、生物测定数据和化学信息学工具。
🚀 快速开始
本服务器可以帮助您方便地访问PubChem化学数据库,获取化合物的各种信息。您可以按照以下步骤进行安装和使用。
✨ 主要特性
🔍 化学搜索与检索(6种工具)
- search_compounds - 通过名称、CAS编号、分子式或标识符进行搜索
- get_compound_info - 根据CID获取化合物的详细信息
- search_by_smiles - 精确匹配SMILES字符串
- search_by_inchi - 通过InChI/InChI键进行搜索
- search_by_cas_number - 查找CAS登记号
- get_compound_synonyms - 获取所有名称和同义词
🧬 结构分析与相似度(5种工具)
- search_similar_compounds - 进行Tanimoto相似度搜索
- substructure_search - 查找包含子结构的化合物
- superstructure_search - 查找包含查询结构的更大化合物
- get_3d_conformers - 获取3D结构信息
- analyze_stereochemistry - 进行手性和异构体分析
⚗️ 化学性质与描述符(6种工具)
- get_compound_properties - 获取分子量、logP、TPSA等分子性质
- calculate_descriptors - 计算全面的分子描述符
- predict_admet_properties - 进行ADMET预测
- assess_drug_likeness - 进行Lipinski五规则分析
- analyze_molecular_complexity - 分析合成可及性
- get_pharmacophore_features - 进行药效团映射
🧪 生物测定与活性数据(5种工具)
- search_bioassays - 查找生物测定
- get_assay_info - 获取详细的测定方案
- get_compound_bioactivities - 获取化合物的所有活性数据
- search_by_target - 查找针对特定靶点测试的化合物
- compare_activity_profiles - 进行化合物间的活性比较
⚠️ 安全与毒性(4种工具)
- get_safety_data - 获取GHS危险分类
- get_toxicity_info - 获取LD50、致癌性数据
- assess_environmental_fate - 进行生物降解分析
- get_regulatory_info - 获取FDA、EPA法规信息
🔗 交叉引用与集成(4种工具)
- get_external_references - 获取指向ChEMBL、DrugBank等的链接
- search_patents - 查找化学专利信息
- get_literature_references - 获取PubMed引用
- batch_compound_lookup - 批量处理(最多200种化合物)
📦 安装指南
# 克隆或创建服务器目录
cd pubchem-server
# 安装依赖项
npm install
# 构建服务器
npm run build
# 运行服务器
npm start
💻 使用示例
基础用法
基本化合物搜索
// 按名称搜索化合物
{
"tool": "search_compounds",
"arguments": {
"query": "aspirin",
"max_records": 10
}
}
// 获取化合物详细信息
{
"tool": "get_compound_info",
"arguments": {
"cid": 2244
}
}
结构分析
// 查找相似化合物
{
"tool": "search_similar_compounds",
"arguments": {
"smiles": "CC(=O)OC1=CC=CC=C1C(=O)O",
"threshold": 85,
"max_records": 50
}
}
// 分析分子性质
{
"tool": "get_compound_properties",
"arguments": {
"cid": 2244,
"properties": ["MolecularWeight", "XLogP", "TPSA"]
}
}
生物活性分析
// 获取生物测定信息
{
"tool": "get_assay_info",
"arguments": {
"aid": 1159607
}
}
// 按靶点搜索化合物
{
"tool": "search_by_target",
"arguments": {
"target": "cyclooxygenase",
"max_records": 100
}
}
安全信息
// 获取安全分类
{
"tool": "get_safety_data",
"arguments": {
"cid": 2244
}
}
批量处理
// 处理多个化合物
{
"tool": "batch_compound_lookup",
"arguments": {
"cids": [2244, 5090, 3672],
"operation": "property"
}
}
高级用法
药物发现工作流程
// 1. 搜索抗炎化合物
{
"tool": "search_compounds",
"arguments": {
"query": "anti-inflammatory",
"max_records": 100
}
}
// 2. 分析类药性
{
"tool": "assess_drug_likeness",
"arguments": {
"cid": 2244
}
}
// 3. 检查安全概况
{
"tool": "get_safety_data",
"arguments": {
"cid": 2244
}
}
// 4. 查找生物活性数据
{
"tool": "search_by_target",
"arguments": {
"target": "COX-2",
"activity_type": "IC50"
}
}
化学相似度分析
// 1. 查找相似化合物
{
"tool": "search_similar_compounds",
"arguments": {
"smiles": "your_query_smiles",
"threshold": 90
}
}
// 2. 比较分子性质
{
"tool": "batch_compound_lookup",
"arguments": {
"cids": [1234, 5678, 9012],
"operation": "property"
}
}
// 3. 分析结构特征
{
"tool": "analyze_stereochemistry",
"arguments": {
"cid": 1234
}
}
📚 详细文档
与其他MCP服务器集成
本PubChem服务器可与其他化学/生物数据库完美集成:
完整的化学信息学流程
1. 靶点发现:UniProt → STRING → AlphaFold
2. 化学物质发现:PubChem ← → ChEMBL
3. 完整工作流程:蛋白质 → 结构 → 相互作用 → 小分子 → 生物活性
跨数据库工作流程
- UniProt → PubChem:查找蛋白质靶点 → 查找小分子配体
- PubChem → ChEMBL:发现化合物 → 分析生物活性数据
- STRING → PubChem:蛋白质相互作用 → 化学调节剂
API速率限制
PubChem API指南:
- 每秒5个请求
- 每分钟最多400个请求
- 无需API密钥
- 建议合理使用
数据源
- 超过1.1亿种化合物,包含完整的化学数据
- 超过150万个生物测定,包含生物活性数据
- 化学性质和计算得到的描述符
- 3D构象和结构数据
- 安全分类和毒性信息
- 与500多个外部数据库的交叉引用
错误处理
服务器包含全面的错误处理机制:
- 无效的化合物ID会返回清晰的错误消息
- 优雅地处理API超时
- 内置速率限制合规性
- 对所有输入进行TypeScript验证
贡献
本服务器使用了以下技术:
- TypeScript 确保类型安全
- Axios 用于HTTP请求
- MCP SDK 确保协议合规性
- PubChem REST API 用于数据访问
架构
服务器采用模块化架构构建:
- 对所有API输入进行类型安全验证
- 具备全面的错误处理,提供清晰的消息
- 支持对多个化合物进行高效的批量处理
- 提供资源模板以直接访问数据
- 支持多数据库工作流程集成
这使得它成为目前最全面的化学信息学MCP服务器!
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
支持
如果遇到以下问题:
- 服务器功能问题:检查错误消息和API响应
- PubChem API问题:参考PubChem官方文档
- 化学数据问题:验证化合物标识符和搜索词
Scan to join WeChat group