Google OR-Tools server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Herramientas MCP-OR

Implementación de un servidor del Protocolo de Contexto de Modelo (MCP) que utiliza Google OR-Tools para la resolución de restricciones. Diseñado para su uso con Modelos de Lenguaje Grandes mediante la especificación estandarizada de modelos de restricciones.

Descripción general

MCP-ORTools integra el solucionador de programación de restricciones OR-Tools de Google con modelos de lenguaje grandes a través del Protocolo de contexto de modelo, lo que permite que los modelos de IA:

  • Presentar y validar modelos de restricciones
  • Establecer parámetros del modelo
  • Resolver problemas de satisfacción de restricciones y optimización
  • Recuperar y analizar soluciones

Instalación

  1. Instalar el paquete:
pip install git+https://github.com/Jacck/mcp-ortools.git
  1. Configurar Claude Desktop Cree el archivo de configuración en %APPDATA%\Claude\claude_desktop_config.json (Windows) o ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{ "mcpServers": { "ortools": { "command": "python", "args": ["-m", "mcp_ortools.server"] } } }

Especificación del modelo

Los modelos se especifican en formato JSON con tres secciones principales:

  • variables : definir variables y sus dominios
  • constraints : Lista de restricciones que utilizan los métodos de OR-Tools
  • objective : Objetivo de optimización opcional

Sintaxis de restricción

Las restricciones deben utilizar la sintaxis del método OR-Tools:

  • .__le__() para menor o igual (<=)
  • .__ge__() para mayor o igual (>=)
  • .__eq__() para igualdad (==)
  • .__ne__() para no igual (!=)

Ejemplos de uso

Modelo de optimización simple

{ "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 } }

Problema de la mochila

Ejemplo: Seleccionar elementos con valores [3,1,2,1] y pesos [2,2,1,1] con un límite de peso total de 2.

{ "variables": [ {"name": "p0", "domain": [0, 1]}, {"name": "p1", "domain": [0, 1]}, {"name": "p2", "domain": [0, 1]}, {"name": "p3", "domain": [0, 1]} ], "constraints": [ "(2*p0 + 2*p1 + p2 + p3).__le__(2)" ], "objective": { "expression": "3*p0 + p1 + 2*p2 + p3", "maximize": true } }

Ejemplo de restricciones adicionales:

{ "constraints": [ "p0.__eq__(1)", // Item p0 must be selected "p1.__ne__(p2)", // Can't select both p1 and p2 "(p2 + p3).__ge__(1)" // Must select at least one of p2 or p3 ] }

Características

  • Soporte completo del solucionador CP-SAT de OR-Tools
  • Especificación del modelo basada en JSON
  • Soporte para:
    • Variables enteras y booleanas (dominio: [min, max])
    • Restricciones lineales utilizando la sintaxis del método OR-Tools
    • Objetivos de optimización lineal
    • Tiempos de espera y parámetros del solucionador
    • Restricciones y relaciones binarias
    • Problemas de selección de cartera
    • Problemas con la mochila

Operaciones admitidas en restricciones

  • Aritmética básica: +, -, *
  • Comparaciones: . le (), . ge (), . ecuación (), . ne ()
  • Combinaciones lineales de variables
  • Lógica binaria mediante combinaciones de restricciones

Desarrollo

Para configurar el desarrollo:

git clone https://github.com/Jacck/mcp-ortools.git cd mcp-ortools pip install -e .

Formato de respuesta del modelo

El solucionador devuelve soluciones en formato JSON:

{ "status": "OPTIMAL", "solve_time": 0.045, "variables": { "p0": 0, "p1": 0, "p2": 1, "p3": 1 }, "objective_value": 3.0 }

Valores de estado:

  • ÓPTIMO: Se encontró la solución óptima
  • FACTIBLE: Se encontró una solución factible
  • INVIABLE: No existe solución
  • DESCONOCIDO: No se pudo determinar la solución

Licencia

Licencia MIT: consulte el archivo de LICENCIA para obtener más detalles

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP-ORTools integra el solucionador de programación de restricciones OR-Tools de Google con modelos de lenguaje grandes a través de MCP, lo que permite que los modelos de IA:

Presentar y validar modelos de restricciones Establecer parámetros del modelo Resolver problemas de satisfacción de restricciones y optimización Recuperar y analizar la solución

  1. Overview
    1. Installation
      1. Model Specification
        1. Constraint Syntax
      2. Usage Examples
        1. Simple Optimization Model
        2. Knapsack Problem
      3. Features
        1. Supported Operations in Constraints
      4. Development
        1. Model Response Format
          1. License
            ID: 2wcoht4ueg