We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/liueic/PubChem-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""
数据模型定义
"""
from typing import List, Optional, Dict, Any
from pydantic import BaseModel, Field
class CompoundInfo(BaseModel):
"""化合物基础信息"""
cid: Optional[int] = None
name: str
molecular_formula: Optional[str] = None
molecular_weight: Optional[float] = None
iupac_name: Optional[str] = None
synonyms: List[str] = Field(default_factory=list)
smiles: Optional[str] = None
inchi_key: Optional[str] = None
class GHSPictogram(BaseModel):
"""GHS象形图信息"""
code: str
url: str
description: str
class SafetyInfo(BaseModel):
"""安全分类信息"""
model_config = {"exclude_unset": True}
cid: int
signal_word: Optional[str] = None
ghs_pictograms: Optional[List[GHSPictogram]] = None
ghs_hazard_statements: Optional[List[str]] = None
precautionary_statements: Optional[List[str]] = None
regulatory_info: Optional[List[Dict[str, Any]]] = None
fire_fighting: Optional[List[Dict[str, Any]]] = None
other_safety_info: Optional[List[Dict[str, Any]]] = None
ghs_classification: Optional[List[Dict[str, Any]]] = None
class ToxicityData(BaseModel):
"""毒性数据 - 支持所有PubChem Toxicity字段"""
model_config = {
"exclude_unset": True,
"extra": "allow" # 允许额外字段,支持所有Toxicity子分类
}
cid: int
# 常见的毒性数据字段(这些字段总是可选的)
toxicity_summary: Optional[List[Dict[str, Any]]] = None
niosh_toxicity_data: Optional[List[Dict[str, Any]]] = None
carcinogen_classification: Optional[List[Dict[str, Any]]] = None
health_effects: Optional[List[Dict[str, Any]]] = None
signs_and_symptoms: Optional[List[Dict[str, Any]]] = None
acute_effects: Optional[List[Dict[str, Any]]] = None
human_toxicity_excerpts: Optional[List[Dict[str, Any]]] = None
non_human_toxicity_excerpts: Optional[List[Dict[str, Any]]] = None
non_human_toxicity_values: Optional[List[Dict[str, Any]]] = None
# 生态毒性数据
ecotoxicity_values: Optional[List[Dict[str, Any]]] = None
ecotoxicity_excerpts: Optional[List[Dict[str, Any]]] = None
environmental_fate: Optional[List[Dict[str, Any]]] = None
# 其他所有字段通过extra="allow"自动支持
class ErrorResponse(BaseModel):
"""错误响应"""
error: str
details: Optional[str] = None