
MCP-ORTools

2024.12.27
9
Python约束求解优化工具开发效率
MCP-ORTools 是一个基于 Google OR-Tools 的约束求解器实现,通过 Model Context Protocol (MCP) 与大型语言模型集成,用于解决约束满足和优化问题。它支持通过标准化的约束模型规范提交、验证和求解约束模型,适用于需要复杂约束求解和优化的场景。
View on GitHub
Overview
基本能力
产品定位
MCP-ORTools 是一个约束求解和优化工具,旨在通过标准化的约束模型规范与大型语言模型集成,解决复杂的约束满足和优化问题。
核心功能
- 提交和验证约束模型
- 设置模型参数
- 解决约束满足和优化问题
- 检索和分析解决方案
- 支持整数和布尔变量
- 线性约束和优化目标
- 时间限制和求解器参数
- 二进制约束和关系
- 组合选择和背包问题
适用场景
- 组合优化问题
- 背包问题
- 资源分配问题
- 调度问题
- 任何需要约束满足和优化的场景
工具列表
- Google OR-Tools: 提供约束编程求解器支持
- JSON 模型规范: 用于定义变量、约束和目标
常见问题解答
- 状态值解释:
- OPTIMAL: 找到最优解
- FEASIBLE: 找到可行解
- INFEASIBLE: 无解存在
- UNKNOWN: 无法确定解
使用教程
使用依赖
- Python 环境
- Git
安装教程
- 安装包:
pip install git+https://github.com/Jacck/mcp-ortools.git
- 配置 Claude Desktop
在 Windows 上创建配置文件
%APPDATA%\Claude\claude_desktop_config.json
或在 macOS 上创建~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"ortools": {
"command": "python",
"args": ["-m", "mcp_ortools.server"]
}
}
}
调试方式
运行服务后,可以通过提交 JSON 格式的模型规范来测试求解器。例如:
{
"variables": [
{"name": "x", "domain": [0, 10]},
{"name": "y", "domain": [0, 10]}
],
"constraints": [
"(x + y).__le__(15)",
"x.__ge__(2 * y)"
],
"objective": {
"expression": "40 * x + 100 * y",
"maximize": true
}
}
开发
设置开发环境:
git clone https://github.com/Jacck/mcp-ortools.git
cd mcp-ortools
pip install -e .