返回市场
算盘-MCP服务器

算盘-MCP服务器

作者:PhelanShao9 星标更新:2025-05-31

项目介绍

ABACUS MCP 服务器

中文 | 英文 | 快速开始 | 快速开始

基于模型上下文协议(MCP)的第一性原理计算服务器。主要用于量子化学和材料科学计算。

主要功能

计算功能

  • SCF 计算 - 自洽场电子结构计算
  • 结构优化 - 几何优化和晶胞优化
  • 分子动力学 MD 模拟和轨迹分析
  • 能带结构 - 电子能带结构计算
  • 电子态密度 - 电子态密度计算
  • 电荷密度 - 电荷密度分析

智能助手

  • 参数推荐 - 根据计算类型推荐合适的参数
  • 输入验证 - 检查参数设置是否合理
  • 故障诊断 - 帮助解决计算中的问题
  • 成本估算 - 评估计算资源需求

结果分析

  • 智能解释 - 自动分析和计算结果
  • 优化建议 - 根据结果提供改进意见
  • 性能监控 - 追踪计算性能

PyABACUS 集成

  • Python 接口 - 支持 PyABACUS Python 接口
  • 模块化分析 - 集成如 ModulaBase、ModulaNAO、hsolver 等模块
  • 工作流程指南 - PyABACUS 使用示例和最佳实践

安装

系统要求

  • Python 3.8+
  • ABACUS 软件包
  • 充足的计算资源

Python 依赖

pip install fastmcp ase numpy psutil

ABACUS 安装

参考 ABACUS 官方文档 安装。

快速开始

1. 下载代码

git clone <repository-url>
cd abacus-mcp-server

2. 安装依赖

pip install -r requirements.txt

3. 配置 ABACUS

确保 ABACUS 在系统 PATH 中:

abacus --version

4. 准备赝势文件

mkdir pseudos
# 将赝势文件放到 pseudos 目录

5. 启动服务器

python src/server.py

MCP 客户端配置

Claude 桌面配置

添加:

{
  "mcpServers": {
    "abacus-mcp-server": {
      "command": "python",
      "args": ["/path/to/abacus-mcp-server/src/server.py"],
      "env": {"PYTHONPATH": "/path/to/abacus-mcp-server"}
    }
  }
}

Roo Code 配置

  1. 打开 Roo Code 设置
  2. 找到 MCP 服务器部分
  3. 添加上述配置

使用示例

基本 SCF 计算

我想对硅晶体进行 SCF 计算,请帮我设置参数。

结构优化

我有一个钙钛矿结构需要优化几何并计算带隙。

能带结构

计算石墨烯沿 Γ-M-K-Γ 路径的能带结构。

故障排除

我的 ABACUS 计算不收敛,SCF 一直在振荡,请帮我看看。

用户指南

基本工作流程

  1. 将赝势文件准备到 pseudos/ 目录
  2. 在 MCP 客户端中描述您的计算需求
  3. 服务器会自动设置参数并运行计算
  4. 查看结果和建议

常见计算类型

硅能带结构计算

计算硅晶体的能带结构,晶格常数 5.43 Å,沿 Γ-X-L-Γ 路径。

钙钛矿结构优化

优化 BaTiO3 几何结构并计算电子性质。

收敛问题诊断

我的 MoS2 计算不收敛,SCF 在 -150.5 和 -150.8 Ry 之间振荡,使用的 ecutwfc=80 Ry。

PyABACUS 工作流

用 PyABACUS 分析原子轨道重叠,需要 LCAO 计算和重叠矩阵。

基本工作流程

  1. 创建结构
# 使用 create_structure 工具创建原子结构
structure = create_structure(
    formula_or_data="Si2",
    input_format="formula",
    crystalstructure="diamond",
    a=5.43
)
  1. 验证输入
# 验证计算参数
validation = validate_input(
    input_params={
        "ecutwfc": 100,
        "scf_thr": 1e-6,
        "basis_type": "pw"
    },
    structure_dict=structure["data"]
)
  1. 执行计算
# 执行 SCF 计算
scf_result = run_scf(
    structure_dict=structure["data"],
    input_params={
        "ecutwfc": 100,
        "scf_thr": 1e-6
    },
    kpoints_definition={
        "mode": "Monkhorst-Pack",
        "size": [4, 4, 4]
    },
    pseudo_potential_map={"Si": "Si.UPF"}
)
  1. 分析结果
# 查看计算结果和建议
print(scf_result["data"]["interpretation"])
print(scf_result["data"]["recommendations"])

MCP 资源

  • abacus://system/status - 系统状态
  • abacus://docs/input_parameters - 参数文档
  • abacus://examples/scf - SCF 示例
  • abacus://calculations/{task_id}/results - 计算结果
  • abacus://calculations/{task_id}/logs - 计算日志

配置

环境变量

export ABACUS_COMMAND="/path/to/abacus"
export PSEUDO_DIR="/path/to/pseudos"
export ABACUS_WORK_DIR="/path/to/calculations"

配置文件

创建 config.json

{
  "abacus_command": "abacus",
  "pseudo_base_path": "./pseudos",
  "work_directory": "./calculations"
}

故障排除

常见问题

未找到 ABACUS

which abacus
abacus --version

缺少赝势文件

ls -la pseudos/

内存不足

  • 减少 ECU 值
  • 使用更稀疏的 k 点网格

调试模式

export LOG_LEVEL="DEBUG"
python src/server.py

PyABACUS 集成

安装

git clone https://github.com/deepmodeling/abacus-develop.git
cd abacus-develop/python
pip install .

使用

import pyabacus as m
s = m.ModuleBase.Sphbes()
result = s.sphbesj(1, 0.0)

主要工具

结构管理

  • create_structure - 创建原子结构
  • validate_structure - 验证结构
  • convert_structure - 格式转换

计算执行

  • run_scf - SCF 计算
  • run_optimization - 结构优化
  • run_md - 分子动力学

属性分析

  • calculate_band_structure - 能带结构
  • calculate_dos - 电子态密度
  • calculate_charge_density - 电荷密度

智能助手

  • suggest_parameters - 参数建议
  • diagnose_failure - 故障诊断
  • validate_input - 输入验证

任务管理

  • get_calculation_status - 计算状态
  • list_recent_calculations - 最近计算
  • get_calculation_results - 计算结果

许可证

MIT 许可证,详情见 LICENSE 文档。

支持