mofstructure-MCP版
精益、MCP支持的优秀产品重新包装 mof结构 图书馆by Dinga Wonanke博士.
______________________________________________________________________
站在巨人的肩膀上
让我们直言不讳:原版 mofstructure 是最令人印象深刻的作品之一 由单个研究人员编写的计算材料科学软件。
在一个“框架分析”通常意味着运行黑盒二进制文件的领域 希望输出有意义,沃南克博士建造了一些真正不同的东西。 内部的解构引擎 mofdeconstructor.py --超过2000行 精心推理的图论——可以采用任何任意的MOF晶体结构 正确识别每一个次级建筑单元、每一个有机配体、每一种金属 集群、SBU拓扑、每个金属中心的协调数以及 延伸点 --全部自动完成,全部使用纯Python,无需 一个预先策划的已知拓扑数据库,用于查找相关信息。
这是一个难题。大多数工具要么要求您手动标记事物,要么依赖 关于突破任何非标准或专有的启发式模式匹配 闭源二进制文件。 mofstructure 正确吗:它构建了完整的分子 图,识别金属节点,找到有机桥,定位断点, 组装建筑单元,然后把合适的ASE交还给你 Atoms 对象与 SMILES、InChI和InChIKey已经通过OpenBabel进行了计算。
访客移除逻辑同样深思熟虑。与其天真“删小” 分子启发式分析图连通性以找到真正未结合的 成分,这意味着它即使在不寻常的溶剂化物和无序的情况下也能正常工作 结构会阻碍更简单的方法。
以及COF堆叠分析、PBC包装、IUPAC名称查找数据库——所有这些 它是一种需要多年领域知识才能构建的基础设施 正确地。
如果你正在进行任何严重的高通量MOF筛查或计算网状 化学,阅读原始代码库是 必要的这个叉子是不存在的 没有非凡的基础。
原始存储库: https://github.com/bafgreat/mofstructure\ 原作者: Dinga Wonanke博士https://www.dingawonanke.com\ 原始纸张: Wonanke等人。, *开源软件杂志*, 2024.
______________________________________________________________________
这个叉子是什么?
本版将原作精简为重点 MCP(模型上下文协议)服务器 以便人工智能代理,特别是那些构建 随着 羽状流 --可以调用MOF 通过stdio或HTTP将结构操作作为工具。
删除了什么以及为什么
| 已删除 | 原因 |
|---|---|
孔隙度计算(porosity.py) | 由单独提供 zeopp后端 MCP服务 |
露天金属场地检测(get_oms) | 由提供 mofchecker mcp 和 zeopp-backend |
obsolate/ 目录 | 死代码,被当前实现取代 |
| Sphinx文档 | 已过期;MCP部署不需要 |
添加了什么
| 已添加 | 说明 |
|---|---|
mofstructure/mcp_server.py | FastMCP服务器通过stdio公开5个工具 |
mcp 依赖关系 | MCP Python SDK |
mofstructure_mcp CLI入口点 | python -m mofstructure.mcp_server |
三服务架构
此分叉旨在与两个配套的MCP服务一起工作:
mofchecker-mcp → "Is this structure valid?" (quality checks)
mofstructure-mcp → "What is this structure made of?" (deconstruction + cleanup)
zeopp-backend → "How porous is this structure?" (geometric analysis)将您的代理指向这三个点,它可以从原始数据执行端到端的MOF分析 CIF文件。
______________________________________________________________________
安装
重要 --每个MCP服务器都应该在自己的虚拟环境中运行。
git clone https://github.com/lichman0405/mofstructure.git
cd mofstructure
python -m venv .venv
# Linux / macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
pip install -e .可选RDKit支持:
pip install -e ".[rdkit]"______________________________________________________________________
MCP工具
服务器公开了五个工具。每个工具都接受 cif_path (绝对路径 在服务器文件系统上)或 cif_content (CIF原始文本)。
| 工具 | 说明 |
|---|---|
remove_guest | 去除未结合的客体分子;返回干净主机CIF |
get_sbu | 用SMILES/InChI/InChIKey分解为金属+有机SBU |
get_ligands | 用化学信息学方法解构成金属簇+有机配体 |
wrap_structure | 将原子包裹到晶胞中——修复“断裂键”PBC可视化伪影 |
analyze_cof_stacking | 计算层间横向偏移和高度;AA/AB/混合堆叠分类 |
______________________________________________________________________
运行服务器
stdio(适用于羽毛流/克劳德桌面)
python -m mofstructure.mcp_server
# or, after pip install:
mofstructure_mcp羽状流集成
编辑 ~/.featherflow/config.json:
{
"tools": {
"mcpServers": {
"mofstructure": {
"command": "/path/to/mofstructure/.venv/bin/python",
"args": ["-m", "mofstructure.mcp_server"],
"toolTimeout": 120
},
"mofchecker": {
"command": "/path/to/mofchecker/.venv/bin/python",
"args": ["-m", "mofchecker.mcp_server"],
"toolTimeout": 120
},
"zeopp": {
"url": "http://localhost:9877/mcp",
"toolTimeout": 120
}
}
}
}在Windows上,将路径替换为 C:/path/to/mofstructure/.venv/Scripts/python.exe.
______________________________________________________________________
用作Python库
API库与原始库相比没有变化:
from mofstructure import structure
mof = structure.MOFstructure(filename="path/to/your.cif")
# Remove guest molecules
clean = mof.remove_guest()
# Deconstruct into SBUs (cheminfo=True computes SMILES / InChI / InChIKey)
metal_sbus, organic_sbus = mof.get_sbu(cheminfo=True)
for sbu in metal_sbus:
print(sbu.info['sbu_type'], sbu.info['smi'])
# Deconstruct into ligands and metal clusters
metal_clusters, organic_ligands = mof.get_ligands(cheminfo=True)
for ligand in organic_ligands:
print(ligand.info['inchikey'])______________________________________________________________________
命令行工具
| 命令 | 描述 |
|---|---|
mofstructure [output_dir] | 将单个CIF解构为SBU和配体 |
mofstructure_database [output_dir] | 将CIF文件夹批处理到数据库中 |
mofstructure_building_units | 仅限批量解构 |
mofstructure_curate | 管理/验证CIF文件夹 |
mofstructure_mcp | 启动MCP服务器(stdio) |
______________________________________________________________________
许可证
麻省理工学院——与最初的项目相同。
