内容
ECHA CHEM MCP 服务器
====================
来自 **ECHA CHEM** 数据库(European Chemicals Agency, <https://chem.echa.europa.eu>)的监管化学危害数据的MCP。
它涵盖了物质身份、REACH注册文件、CLP通知、统一(Annex VI)分类、PBT评估以及毒理学/生态毒理学研究数据。大多数工具都使用 **ECHA物质索引**(例如`100.000.002`表示甲醛)作为索引。
仓库布局
-----------------
根目录 — 服务器表面和包装:
- `server.py` — MCP服务器定义;注册工具和资源。
- `tools.py` — 薄的、文档齐全的异步工具包装器(MCP工具)。
- `__main__.py` — 入口点,以便`python -m echa_mcp`启动服务器。
- `__init__.py` — 包标记。
- `requirements.txt` — Python依赖项。
- `Dockerfile` — 运行服务器的容器配方。
`utils/` — 工具背后的实现细节:
- `echa_client.py` — ECHA CHEM HTTP端点的异步httpx客户端。
- `substance.py`、`substance_id_resolve.py`、`clp_clf.py`、
`harmonised_clf.py`、`reach_clf.py`、`toxicology.py` — 每个数据域的端点逻辑。
- `parser.py` — 档案HTML解析 + GHS危险类别 → H代码映射。
前提条件
-------------
- 推荐使用Python 3.10+。
- 使用`pip`安装依赖项。
使用MCP URL运行:
-------------------
MCP服务器可通过此URL访问:`echa-chem.serve.scilifelab.se/mcp`。
使用它连接到Claude、Claude Code、Codex等。
使用Docker运行:
-------------------
构建并运行:
```bash
docker build -t echa-mcp .
docker run --rm -p 8000:8000 echa-mcp
```
服务器监听`http://localhost:8000/mcp`(可流式HTTP)。
可用工具
---------------
- `echa_resolve_substance_index` — 将名称/CAS/EC解析为单个最佳物质索引(推荐入口点)。
- `echa_search_substances` — 列出名称/CAS/EC的所有物质匹配项。
- `echa_get_substance_info` — CAS/EC编号、名称、IUPAC名称、公式。
- `echa_list_dossiers` — 物质的REACH注册文件。
- `echa_get_clp_classification` — CLP通知(行业自我分类)。
- `echa_get_harmonised_classification` — 官方欧盟Annex VI分类。
- `echa_get_reach_ghs` — 来自REACH文件的GHS分类(第2.1节)。
- `echa_get_reach_pbt` — PBT / vPvB评估(第2.3节)。
- `echa_get_toxicology_summary` — 毒理学摘要 + DN(M)ELs(快速)。
- `echa_get_toxicology_studies` — 单个毒理学研究记录(可过滤)。
- `echa_get_toxicology_full` — 完整的毒理学数据(慢速)。
- `echa_get_ecotoxicology_data` — 环境命运 / 生态毒理学(第5节和第6节)。