mofchecker--MCP版
精益、MCP支持的优秀产品重新包装 mofchecker 图书馆by 凯文·贾布隆卡 和那个 拉马拉组织 团队。
站在巨人的肩膀上
原版 mofchecker 坦率地说,它是设计得最周到的之一 计算MOF科学中的工具。在“健全性检查”通常意味着 “它崩溃了吗?”Kevin和合作者构建了一个严格的、可组合的框架 它捕捉到了从重叠原子到可疑的过度充电的一切 碎片-所有这些都在一个干净的、Python的API中,这实际上是有意义的。这 仅图哈希重复数据删除就值得付出代价。如果你正在做 任何严重的高通量MOF筛查,原始文库都是必不可少的 阅读;没有坚实的基础,这个叉子就不会存在。
原始存储库: https://github.com/lamalab-org/mofchecker\ 原始纸张: Jablonka等人。, *数字发现*, 2023.
______________________________________________________________________
这个叉子是什么?
本版将原版精简为重点MCP(模型上下文协议) 服务器,以便人工智能代理,特别是那些使用 羽状流 --可以调用结构 将检查作为stdio上的工具。
相对于上游的变化:
| 更改 | 原因 |
|---|---|
已删除 PorosityCheck / is_porous | 孔隙度分析由单独的 zeopp-backend MCP服务 |
已添加 mcp_server.py 使用8个MCP工具 | 将每个支票类别作为单独的可调用工具公开 |
迁移到 pyproject.toml (PEP 621) | 现代包装,单一配置文件 |
python_requires >= 3.9,下降 backports.cached-property | 3.8为EOL;使用 functools.cached_property 来自stdlib |
已更换 black + isort + flake8 随着 ruff | 单一、更快的linter/格式化器 |
孔隙度检查是有意进行的 不 包括在这里。请将您的代理指向 zeopp-backend (http://localhost:9877/mcp)对于那些。
______________________________________________________________________
安装
重要--虚拟环境隔离 每个MCP服务器都必须在自己的虚拟环境中运行。这command在 您的FeatherFlow配置必须指向 这个项目的.venv/bin/python, 不是FeatherFlow的Python或系统Python。
0.安装uv(一次性,推荐)
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | shuv 自动管理Python版本,无需手动安装Python 3.9+。
1.克隆并创建专用环境
git clone https://github.com/lichman0405/mofchecker-mcp.git
cd mofchecker-mcp
uv venv .venv --python 3.10 # pyeqeq requires Python `pyeqeq` (EQeq费用检查)要求Python\=2.9(旧版本
> 失踪了 `` 包括GCC 10+上的中断)。
> 这两个约束都是通过以下方式自动处理的 `pyproject.toml` --不需要手动步骤。
### 3.验证
python -m mofchecker.mcp_server --help
______________________________________________________________________
## MCP服务器
此fork的主要用例是运行 `mofchecker` 作为MCP工具服务器
对于AI代理。
### 启动服务器
Activate the project's own venv first
source /path/to/mofchecker/.venv/bin/activate
python -m mofchecker.mcp_server # stdio transport (for featherflow / Claude Desktop)
### 可用工具
|工具|说明|
|---|---|
| `list_available_descriptors` |返回描述符键的完整列表|
| `get_basic_info` |公式、细胞体积、密度、空间群、维度|
| `check_global_structure` |浮动原子/溶剂,图形连接|
| `check_atomic_overlaps` |重叠原子对|
| `check_coordination` |C、N、H和稀土/碱金属配位过高/过低|
| `check_geometry` |几何外露金属(开放式金属场所)|
| `check_charges` |EQeq部分电荷健全性(过充原子)|
| `check_mof_full` |运行所有检查并返回完整的描述符字典|
每个工具都接受 `cif_path` (服务器文件系统上的绝对路径)
或 `cif_content` (原始CIF文本)——以对呼叫者更方便的为准。
### 羽状流集成
编辑 `~/.featherflow/config.json`The `command` 一定是 **绝对路径** 到
这个项目的 `.venv/bin/python` --不是 `mofchecker-mcp` 上 `$PATH` 而不是
FeatherFlow自己的Python。
{ "tools": { "mcpServers": { "mofchecker": { "command": "/path/to/mofchecker/.venv/bin/python", "args": ["-m", "mofchecker.mcp_server"], "toolTimeout": 120 }, "zeopp": { "url": "http://localhost:9877/mcp", "toolTimeout": 120 } } }, "channels": { "sendToolHints": true, "sendProgress": true } }
在Windows上,将路径替换为 `C:/path/to/mofchecker/.venv/Scripts/python.exe`.
看 [`mcp_config_example.json`](mcp_config_example.json) 对于一个即用型代码段。
______________________________________________________________________
## Python API
该库仍然可以作为常规Python包完全使用:
from mofchecker import MOFChecker
checker = MOFChecker.from_cif("path/to/structure.cif")
Individual checks
print(checker.has_atomic_overlaps) # bool print(checker.has_oms) # bool print(checker.has_overcoordinated_c) # bool
All descriptors at once
descriptors = checker.get_mof_descriptors()
______________________________________________________________________
## 发展
uv pip install -e ".[dev]" pytest # run tests ruff check mofchecker/ tests/ # lint ruff format mofchecker/ tests/ # format
______________________________________________________________________
## 许可证
麻省理工学院——与最初的项目相同。