MCP-ORTools

MCP-ORTools

site icon
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

安装教程

  1. 安装包:
pip install git+https://github.com/Jacck/mcp-ortools.git
  1. 配置 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 .

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。