🚀 非官方PubChem MCP服務器
這是一個全面的模型上下文協議(MCP)服務器,用於訪問PubChem化學數據庫。該服務器可讓用戶訪問超過1.1億種化合物,提供豐富的分子屬性、生物測定數據和化學信息學工具。
✨ 主要特性
🔍 化學搜索與檢索(6種工具)
- search_compounds:可通過名稱、CAS編號、分子式或標識符進行搜索。
- get_compound_info:根據化合物ID(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"
}
}
高級用法
藥物發現工作流
{
"tool": "search_compounds",
"arguments": {
"query": "anti-inflammatory",
"max_records": 100
}
}
{
"tool": "assess_drug_likeness",
"arguments": {
"cid": 2244
}
}
{
"tool": "get_safety_data",
"arguments": {
"cid": 2244
}
}
{
"tool": "search_by_target",
"arguments": {
"target": "COX-2",
"activity_type": "IC50"
}
}
化學相似性分析
{
"tool": "search_similar_compounds",
"arguments": {
"smiles": "your_query_smiles",
"threshold": 90
}
}
{
"tool": "batch_compound_lookup",
"arguments": {
"cids": [1234, 5678, 9012],
"operation": "property"
}
}
{
"tool": "analyze_stereochemistry",
"arguments": {
"cid": 1234
}
}
📚 詳細文檔
資源模板
可通過以下URI模式訪問PubChem數據:
pubchem://compound/{cid}
:獲取完整的化合物數據。
pubchem://structure/{cid}
:獲取2D/3D結構信息。
pubchem://properties/{cid}
:獲取分子性質信息。
pubchem://bioassay/{aid}
:獲取生物測定數據。
pubchem://similarity/{smiles}
:獲取相似性搜索結果。
pubchem://safety/{cid}
:獲取安全和毒性數據。
與其他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:用於數據訪問。
許可證
本項目採用MIT許可證,詳情請參閱LICENSE
文件。
支持
若遇到以下問題:
- 服務器功能問題:請檢查錯誤消息和API響應。
- PubChem API問題:請參考PubChem官方文檔。
- 化學數據問題:請驗證化合物標識符和搜索詞。
🔧 技術細節
服務器採用模塊化架構構建:
- 對所有API輸入進行類型安全驗證。
- 具備全面的錯誤處理機制,提供清晰的錯誤消息。
- 支持高效的批量化合物處理。
- 提供資源模板,可直接訪問數據。
- 便於集成到多數據庫工作流中。
這使其成為目前最全面的化學信息學MCP服務器!
📄 許可證
本項目遵循MIT許可證,具體細節請查看LICENSE
文件。
📖 引用
如果您在研究或出版物中使用了本項目,請按以下格式引用:
@misc{pubchemmcp2025,
author = {Moudather Chelbi},
title = {PubChem MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/PubChem-MCP-Server},
note = {Accessed: 2025-06-29}
}