matmcp

matmcp

Enables LLM agents to run verified DFT materials workflows (structure fetch, relaxation, band/DOS) with automated convergence gates and physics validation, ensuring every result is machine-verified with a complete evidence trail.

Category
访问服务器

README

matmcp — 抗幻觉的材料计算 MCP 工具链

自然语言 → 结构获取 → 结构弛豫 → 能带/态密度 → 机器验收。 零商业 license、零集群,一台笔记本端到端跑通 DFT 工作流。 Agent 负责调度,确定性代码负责判断对错——AI 的每一句结论都必须有机器出处。

注:公开发布时 git 历史已压缩(squash);开发过程、三轮验收器迭代与全部事故根因记录见 docs/experiments.md,关键运行物证在 evidence/。

English below

为什么做这个

计算材料的工作流里,真正消耗人的不是"点鼠标",而是写输入、盯收敛、处理报错、解读输出。 LLM agent 可以串起整条流程,但科学计算容不得幻觉——数字算对了、物理解读编错了是最常见的故障 (本项目开发期间就抓到实例:agent 看着能带图"目测"出错误的直接/间接带隙结论, 而正确答案就躺在它没读的输出文件里)。

matmcp 的对策:验收器层(verifier)作为一等公民——

  • 收敛门:自动扫描截断能与 k 点网格。判据对准产品物理量——k 点轴双判据(ΔE<5 meV/atom 且 Δgap<0.02 eV),截断能轴主判据为带隙稳定度(Δgap<0.02 eV;绝对 PW 能量渐近收敛,跨截断能比较本无物理意义)。门是真的:未过门则不产出任何能带/DOS/带隙"最终结果"(中间产物保留仅供取证)
  • 物理校验:带隙 vs Materials Project 参考值比对、弛豫收敛与残余力、结构漂移检查、直接/间接带隙由本征值数值导出(不许目测)
  • 有限自动重试:参数类失败 → 自动调参重跑(≤2 次),仍败则带根因明确拒绝,绝不输出"看似正常"的垃圾
  • 完整证据链:每次运行的参数、日志、图、验收结论全部落盘,静态记录页可回看
  • 边界自知:带隙校验是"与 MP 的 PBE 级参考值的一致性检查",不是对实验值的正确性认证(例:GaAs 算 0.205 eV 判 pass,实验值 1.52 eV——PBE 系统性低估不在此工具修复范围内)。验收器管的是"算得规不规范",不管"泛函选得对不对"

架构

agent 客户端 (Kimi Code / Claude Code / 任意 MCP client)
        │ stdio MCP
┌───────┴────────────────────────────────────────┐
│ matmcp server (FastMCP)                        │
│  fetch_structure ─ Materials Project / 内置构建 │
│  relax_structure ─ GPAW (PW, PBE)              │
│  calc_band_dos   ─ 能带 + DOS + VBM/CBM 导出    │
│  check_convergence / verify_run ─ 验收器        │
│  run_verified_workflow ─ 一条命令的完整验证管线 │
└───────┬────────────────────────────────────────┘
        │ ASE 提供结构层复用;GPAW + QE 双引擎已实证(同一 MoS2 流程带隙差 0.016 eV),VASP+Slurm 二期
   runs/<run_id>/  全部产物:cif / gpw / txt 日志 / png / *.json 证据
   runs/index.html 运行记录页

实测示例(MoS2 单层)

内置 2H-MoS2 单层 → 弛豫(2 步收敛,fmax 0.029 eV/Å)→ 能带+DOS:

量 matmcp 参考
带隙 1.678 eV,K–K 直接带隙(机器导出) MP mp-1023924: 1.66 eV
垃圾参数测试 ecut=200 eV + k 点 1×1×1 被收敛门拦截 → 自动调参重跑 → 验收通过 —

五材料回归(2026-08-12,run_verified_workflow 全管线)

材料 verdict 带隙 (eV) MP 参考 (eV) 带隙类型(机器导出)
MoS2 单层 pass 1.675 1.66 direct @K–K
Si (mp-149) pass 0.594 0.610 indirect,VBM@Γ / CBM@[0.44,0,0.44]
GaAs (mp-2534) pass 0.205 0.184 direct @Γ–Γ
金红石 TiO2 (mp-2657) pass 1.875 1.772 direct @Γ–Γ
LiCoO2 (mp-22526) fail(正确行为) 1.146 0.662 PBE 对 Co 3d 强关联体系不可信,系统拒绝并给出根因

注:TiO2 触发了收敛判据设计修正——绝对 PW 能量渐近收敛(Ti PAW 600→800 eV 仍 67 meV/atom),但带隙在 600 eV 已稳定到 0.0003 eV。截断能轴判据现已对准带隙稳定度 (Δgap<0.02 eV),k 点轴维持双判据。完整事故/决策记录见 docs/experiments.md。

坦白三条(敌意审查后主动写明的边界):

  1. 表中为各材料最终一次运行的 verdict;历史尝试(含未过收敛门的中间态 pass_with_warnings)全部留在 runs/index.html,未删未藏。
  2. MoS2 行的"MP 参考 1.66"是内置 builder 路径的硬编码常数(出处 mp-1023924), 非实时查库;其余四个材料均为实时 MP API 查询。
  3. 带隙校验证成的是"与 MP 的 PBE 级实现一致",不是"与实验一致"—— GaAs 判 pass 的 0.205 eV 对实验值 1.52 eV 偏差 87%,这是 PBE 泛函的系统性局限, 不是本工具的判官范围。

回归还实锤了验收器的存在价值:开发中抓到 agent 看着能带图"目测"出错误的间接带隙结论 (正确答案 K–K 直接就写在它没读的输出文件里)——现在 VBM/CBM 全部机器数值导出, agent 只许引用,不许目测。

快速开始

环境:WSL2 Ubuntu(GPAW 无 Windows 原生支持)。

# WSL 内
conda create -n matmcp -c conda-forge python=3.11 gpaw ase pymatgen matplotlib
conda activate matmcp
pip install mp-api fastmcp
pip install -e .
echo 'MP_API_KEY=你的key' > ~/.config/matmcp/env && chmod 600 ~/.config/matmcp/env

MCP 客户端配置(Kimi Code 示例,.kimi-code/mcp.json 已随仓库提供): 通过 wsl -d Ubuntu -- bash -lc "... conda activate matmcp && python -m matmcp.server" 启动。

然后对 agent 说一句:"算一下 MoS2 单层的能带和态密度"。

工具列表

工具 作用
fetch_structure MP 按化学式/mp-id 拉结构,或内置构建器;返回 run_id + MP 参考带隙
relax_structure GPAW 结构弛豫,返回能量/残余力/收敛性
calc_band_dos 能带+DOS,机器导出带隙/VBM/CBM/直接间接属性
check_convergence 截断能/k 点自动收敛测试,给出推荐参数
verify_run 物理校验:弛豫、漂移、带隙 vs MP,pass/warn/fail + 修复建议
run_verified_workflow 默认入口:全流程 + 收敛门 + 自动重试 + 验收
get_run_artifacts 列出某次运行的全部产物

路线图

  • [x] GPAW 引擎 + 验收器 + 运行记录页
  • [x] QE 引擎适配(双引擎 MoS2 对比:1.6772 vs 1.6935 eV,同为直接带隙,Δ=0.016 eV)
  • [ ] VASP 适配层 + Slurm 提交/轮询/报错恢复(开学后,接真实毕设课题)
  • [ ] 多材料高通量回归

参考


English

matmcp is an MCP toolchain that lets an LLM agent run verified DFT workflows end-to-end on a laptop — no commercial license, no cluster required. The agent orchestrates; deterministic code decides what's true.

Core idea: a verifier layer as a first-class citizen. Automated convergence gates (cutoff / k-grid sweeps; k-axis: ΔE<5 meV/atom AND Δgap<0.02 eV, cutoff axis gated on gap stability), physics checks (band gap vs Materials Project reference — a consistency check against PBE-level values, not experimental accuracy —, relaxation and drift checks, machine-derived direct/indirect gap character: agents quote numbers, never eyeball plots), bounded auto-retry with root-cause refusal (an unopened gate means NO final results, forensics only), and a full on-disk evidence chain per run rendered into a static run-record page.

Demo result (built-in 2H-MoS2 monolayer): gap 1.678 eV, direct at K (MP ref 1.66 eV); garbage parameters (ecut=200 eV, 1×1×1 k-grid) are intercepted by the convergence gate, auto-reparametrized, and only converged results are allowed through.

Stack: FastMCP + ASE + GPAW/QE (both plane-wave PBE) + pymatgen/mp-api, runs inside WSL2 on Windows. Dual-engine parity is tested, not claimed: the same MoS2 workflow gives 1.6772 eV (GPAW) vs 1.6935 eV (QE), both direct at K (Δ=0.016 eV).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选