mcpField
O
ORCA MCP Server

ORCA MCP Server

本地服务
github.com/PhelanShao科研与教育2073 周前更新

关于 ORCA MCP Server

ORCA MCP Server 是一个用于 ORCA 量子化学计算的 MCP 服务,可生成、校验并优化 ORCA 输入文件。它面向量子化学研究人员和计算化学人员,并以非官方项目的身份发布。

主要功能

  1. 01根据分子坐标生成完整输入文件
  2. 02ORCA 输入文件语法校验与错误报告
  3. 03关键词建议与冲突检测
  4. 04基组、SCF 与内存参数推荐
  5. 05SCF 收敛失败诊断

适用场景

  1. 01为几何优化或频率计算生成 ORCA 输入文件
  2. 02校验已有输入文件中的语法错误
  3. 03分析 SCF 不收敛的计算并获取调整建议

MCP 相关

该项目是 MCP 服务,通过 stdio 向 MCP 客户端提供 generate_input_file、validate_input_syntax 和 suggest_keywords 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ORCA MCP 服务

一个面向 ORCA 量子化学软件的模型上下文协议(MCP)服务,提供用于生成、验证和优化 ORCA 输入文件的智能工具。

概述

ORCA MCP 服务是一款综合工具,旨在帮助量子化学研究人员和计算化学家进行 ORCA 计算。它提供以下智能辅助功能:

  • 输入文件生成:根据分子结构和计算需求自动生成 ORCA 输入文件
  • 语法验证:验证 ORCA 输入文件语法并检测常见错误
  • 参数优化:推荐合适的基组、SCF 设置和内存配置
  • 收敛诊断:分析计算失败原因并提出修复建议
  • 关键字管理:推荐合适的关键字并检测冲突

功能

核心功能
  • 🔧 输入文件生成:根据分子坐标和计算参数创建完整的 ORCA 输入文件
  • ✅ 语法验证:全面验证 ORCA 输入文件语法并详细报告错误
  • 💡 关键字建议:根据计算类型和当前设置智能推荐关键字
  • 🎯 参数优化:智能推荐基组、SCF 设置和内存分配
  • 🔍 收敛诊断:分析 SCF 收敛失败并提供针对性解决方案
支持的计算类型
  • 单点能量计算
  • 几何优化
  • 频率计算
  • 优化与频率联合计算
  • TD-DFT(含时 DFT)
  • MP2 和耦合簇方法
  • NMR 和 EPR 计算
坐标格式支持
  • XYZ 坐标:标准笛卡尔坐标
  • 内坐标:Z 矩阵格式
  • 外部文件:引用 .xyz 和 .gzmt 文件

安装

先决条件
  • Node.js 18+
  • npm 或 yarn
  • TypeScript 5.0+
安装依赖项
npm install
构建服务
npm run build
运行测试
npm test
运行并收集覆盖率
npm run test:coverage

用法

作为 MCP 服务

该服务可与任何兼容 MCP 的客户端配合使用。配置客户端,通过 stdio 传输连接到此服务。

Claude Desktop 的配置示例:

{
  "mcpServers": {
    "orca-mcp-server": {
      "command": "node",
      "args": ["path/to/orca-mcp-server/build/index.js"],
      "env": {}
    }
  }
}
可用工具
generate_input_file

根据计算参数生成完整的 ORCA 输入文件。

参数:

  • calculation_type(字符串):计算类型("single_point"、"optimization"、"frequency" 等)
  • charge(数字):分子电荷
  • multiplicity(数字):自旋多重度
  • coordinates_xyz_or_internal(字符串,可选):分子坐标
  • keywords(数组,可选):其他 ORCA 关键字
  • accuracy_level(字符串,可选):"low"、"medium" 或 "high"
  • blocks(对象,可选):自定义参数块

示例:

{
  "calculation_type": "optimization",
  "charge": 0,
  "multiplicity": 1,
  "coordinates_xyz_or_internal": "C 0.0 0.0 0.0\nH 0.0 0.0 1.0\nH 0.0 1.0 0.0\nH 1.0 0.0 0.0",
  "keywords": ["B3LYP", "def2-SVP"],
  "accuracy_level": "medium"
}
validate_input_syntax

验证 ORCA 输入文件的语法并检测常见错误。

参数:

  • inputContent(字符串):完整的 ORCA 输入文件内容

返回值:

  • 验证状态和详细错误报告
suggest_keywords

根据计算类型和当前关键字获取关键字建议。

参数:

  • calculation_type(字符串):预期的计算类型
  • current_keywords(数组,可选):已有的关键字

返回值:

  • 推荐和可选的关键字及其说明
编程接口

你也可以在 TypeScript/JavaScript 代码中直接使用服务组件:

import { KeywordManager } from './src/core/keywordManager.js';
import { CoordinateProcessor } from './src/core/coordinateProcessor.js';
import { CalculationTemplateEngine } from './src/core/calculationTemplateEngine.js';

// Initialize components
const keywordManager = new KeywordManager();
const coordinateProcessor = new CoordinateProcessor();
const templateEngine = new CalculationTemplateEngine();

// Parse coordinates
const molecule = coordinateProcessor.parse_xyz_coordinates(
  'C 0.0 0.0 0.0\nH 0.0 0.0 1.0',
  0, 1
);

// Generate template
const template = templateEngine.generate_dft_template(molecule, 'B3LYP', 'def2-SVP');

// Validate keywords
const validation = await keywordManager.validate_keyword_combination(['B3LYP', 'def2-SVP', 'Opt']);

架构

核心组件
  • KeywordManager:管理 ORCA 关键字、验证关键字组合并建议缺少的关键字
  • CoordinateProcessor:处理分子坐标的解析和验证
  • ParameterBlockManager:生成 ORCA 参数块(%scf、%basis 等)
  • CalculationTemplateEngine:为不同作业类型创建计算模板
智能组件
  • ParameterRecommendationEngine:为基组、SCF 设置和内存提供智能建议
  • ConvergenceDiagnostic:分析收敛失败并提出解决方案
  • ORCAInputValidator:全面验证输入文件
类型系统

该服务使用在 src/types/orca.types.ts 中定义的全面 TypeScript 类型系统,涵盖:

  • 分子结构和坐标格式
  • ORCA 计算类型和参数
  • 验证结果和错误报告
  • 建议和诊断结果

示例

基本 DFT 优化
// Generate input for geometry optimization
const result = await generateInputFile({
  calculation_type: "optimization",
  charge: 0,
  multiplicity: 1,
  coordinates_xyz_or_internal: `
    C 0.0 0.0 0.0
    H 0.0 0.0 1.0
    H 0.0 1.0 0.0
    H 1.0 0.0 0.0
    H -1.0 0.0 0.0
  `,
  accuracy_level: "medium"
});

console.log(result.content);
// Output:
// ! B3LYP-D3BJ def2-SVP Opt
// 
// %pal NProcs 2 end
// 
// * xyz 0 1
// C 0.0 0.0 0.0
// H 0.0 0.0 1.0
// H 0.0 1.0 0.0
// H 1.0 0.0 0.0
// H -1.0 0.0 0.0
// *
重元素计算
// Get recommendations for heavy elements
const basisRecommendation = await recommendationEngine.recommend_basis_set(
  ['Au', 'Cl'],
  'high',
  2
);

console.log(basisRecommendation);
// Output:
// {
//   orbital_basis: "SARC-DKH-TZVP",
//   auxiliary_basis_jk: "SARC/JK",
//   auxiliary_basis_cosx: "SARC/J",
//   relativistic_method: "DKH",
//   reasoning: "High accuracy with heavy elements: SARC-DKH-TZVP with DKH relativistic treatment is recommended."
// }
SCF 收敛问题排查
// Analyze convergence failure
const diagnosis = convergenceDiagnostic.analyze_scf_failure(`
  SCF NOT CONVERGED AFTER 125 ITERATIONS
  oscillating behavior in DIIS
  Energy change: 1.234e-03
`);

console.log(diagnosis);
// Output:
// {
//   problem_type: "SCF_OSCILLATION",
//   summary: "SCF convergence is likely hindered by oscillating behavior...",
//   recommendations: [
//     "Try damping: %scf DampFac 0.7 DampErr 0.05 end",
//     "Use a level shifter: %scf Shift Shift 0.5 Erroff 0.1 end"
//   ],
//   suggested_keywords_add: ["VerySlowConv"],
//   suggested_block_modifications: {
//     scf: "DampFac 0.7\nDampErr 0.05"
//   }
// }

测试

该项目包含全面的测试覆盖:

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:watch
测试结构
  • 单元测试:测试各个组件
    • tests/core/:核心功能测试
    • tests/intelligent/:AI/ML 组件测试
    • tests/validation/:验证系统测试
  • 集成测试:端到端工作流测试
    • tests/integration/:完整工作流测试

开发

项目结构
orca-mcp-server/
├── src/
│   ├── core/                 # Core functionality
│   │   ├── keywordManager.ts
│   │   ├── coordinateProcessor.ts
│   │   ├── parameterBlockManager.ts
│   │   └── calculationTemplateEngine.ts
│   ├── intelligent/          # AI/ML components
│   │   ├── parameterRecommendationEngine.ts
│   │   └── convergenceDiagnostic.ts
│   ├── validation/           # Validation systems
│   │   └── orcaInputValidator.ts
│   ├── types/               # TypeScript definitions
│   │   └── orca.types.ts
│   └── index.ts             # MCP server entry point
├── tests/                   # Test suites
├── build/                   # Compiled JavaScript
└── docs/                    # Documentation
构建
# Development build
npm run build

# Watch mode for development
npm run watch
代码质量

该项目使用:

  • TypeScript 确保类型安全
  • Jest 进行测试
  • ESLint 检查代码
  • Prettier 格式化代码

贡献

  1. Fork 此代码仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 进行修改
  4. 为新功能添加测试
  5. 确保所有测试通过(npm test)
  6. 提交修改(git commit -m 'Add amazing feature')
  7. 推送到分支(git push origin feature/amazing-feature)
  8. 发起 Pull Request
开发指南
  • 为新功能编写全面的测试
  • 遵循 TypeScript 最佳实践
  • 编写公共 API 文档
  • 使用有意义的提交消息
  • 确保向后兼容

许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

致谢

  • ORCA Quantum Chemistry Package - 本服务支持的量子化学软件
  • Model Context Protocol - 本服务实现的协议框架
  • TypeScript Community - 感谢其提供出色的工具和类型系统

支持

如有问题、遇到故障或希望贡献:

  1. 查看 Issues 页面
  2. 创建新问题并提供详细信息
  3. 在项目讨论论坛中参与交流

路线图

即将推出的功能
  • Context7 Integration:增强文档查找和建议功能
  • Basis Set Optimization:根据分子属性自动选择基组
  • Job Monitoring:集成 ORCA 作业状态监控
  • Result Analysis:计算后的分析和可视化工具
  • Template Library:可扩展的计算模板库
  • Performance Profiling:计算性能分析和优化
长期目标
  • Machine Learning Integration:基于 ML 的参数优化
  • Multi-software Support:支持其他量子化学软件包
  • Web Interface:基于浏览器的 MCP 服务界面
  • Cloud Integration:支持云端计算
  • Collaborative Features:支持多用户共享计算和协作

注意:这是一个独立项目,与 ORCA 量子化学软件包的开发者没有官方关联。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。