用于ORCA量子化学软件的模型上下文协议(MCP)服务器,提供智能工具以生成、验证和优化ORCA输入文件。
ORCA MCP Server 是一个全面的工具,旨在帮助量子化学研究人员和计算化学家进行ORCA计算。它提供了以下智能辅助功能:
npm install
npm run build
npm test
npm run test:coverage
该服务器可以与任何兼容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';
// 初始化组件
const keywordManager = new KeywordManager();
const coordinateProcessor = new CoordinateProcessor();
const templateEngine = new CalculationTemplateEngine();
// 解析坐标
const molecule = coordinateProcessor.parse_xyz_coordinates(
'C 0.0 0.0 0.0\nH 0.0 0.0 1.0',
0, 1
);
// 生成模板
const template = templateEngine.generate_dft_template(molecule, 'B3LYP', 'def2-SVP');
// 验证关键字
const validation = await keywordManager.validate_keyword_combination(['B3LYP', 'def2-SVP', 'Opt']);
服务器使用在src/types/orca.types.ts中定义的全面TypeScript类型系统,涵盖:
// 生成几何优化输入
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);
// 输出:
// ! 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
// *
// 获取重元素的推荐
const basisRecommendation = await recommendationEngine.recommend_basis_set(
['Au', 'Cl'],
'high',
2
);
console.log(basisRecommendation);
// 输出:
// {
// orbital_basis: "SARC-DKH-TZVP",
// auxiliary_basis_jk: "SARC/JK",
// auxiliary_basis_cosx: "SARC/J",
// relativistic_method: "DKH",
// reasoning: "高精度重元素:推荐使用带有DKH相对论处理的SARC-DKH-TZVP。"
// }
// 分析收敛失败
const diagnosis = convergenceDiagnostic.analyze_scf_failure(`
SCF NOT CONVERGED AFTER 125 ITERATIONS
在DIIS中振荡行为
能量变化:1.234e-03
`);
console.log(diagnosis);
// 输出:
// {
// problem_type: "SCF_OSCILLATION",
// summary: "SCF收敛可能受到振荡行为的影响...",
// recommendations: [
// "尝试阻尼:%scf DampFac 0.7 DampErr 0.05 end",
// "使用级别移位:%scf Shift Shift 0.5 Erroff 0.1 end"
// ],
// suggested_keywords_add: ["VerySlowConv"],
// suggested_block_modifications: {
// scf: "DampFac 0.7\nDampErr 0.05"
// }
// }
项目包括全面的测试覆盖:
# 运行所有测试
npm test
# 带覆盖率运行测试
npm run test:coverage
# 监视模式运行测试
npm run test:watch
tests/core/:核心功能测试tests/intelligent/:AI/ML组件测试tests/validation/:验证系统测试tests/integration/:完整的工作流程测试orca-mcp-server/
├── src/
│ ├── core/ # 核心功能
│ │ ├── keywordManager.ts
│ │ ├── coordinateProcessor.ts
│ │ ├── parameterBlockManager.ts
│ │ └── calculationTemplateEngine.ts
│ ├── intelligent/ # AI/ML组件
│ │ ├── parameterRecommendationEngine.ts
│ │ └── convergenceDiagnostic.ts
│ ├── validation/ # 验证系统
│ │ └── orcaInputValidator.ts
│ ├── types/ # TypeScript定义
│ │ └── orca.types.ts
│ └── index.ts # MCP服务器入口点
├── tests/ # 测试套件
├── build/ # 编译的JavaScript
└── docs/ # 文档
# 开发构建
npm run build
# 开发监视模式
npm run watch
该项目使用:
git checkout -b feature/amazing-feature)npm test)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)本项目根据MIT许可发布 - 查看LICENSE文件了解详情。
对于问题、问题或贡献:
注意:这是一个独立项目,不正式隶属于ORCA量子化学包开发者。