Skip to main content
Glama
Jacck

Google OR-Tools server

by Jacck

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

Related MCP server: Gurddy MCP Server

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables solving Constraint Satisfaction Problems (CSP) like N-Queens, graph coloring, and Sudoku, as well as Linear Programming optimization problems through both MCP tools and HTTP API endpoints.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides constraint satisfaction and optimization capabilities to LLMs and AI agents for scheduling, resource allocation, routing, budget optimization, and configuration problems using Google OR-Tools CP-SAT solver.
    5
    5
    Apache 2.0
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server that enables Large Language Models to interactively create, edit, and solve constraint models using backends like MiniZinc, Z3, PySAT, and Clingo. It bridges natural language with symbolic reasoning for solving complex logical, SAT, SMT, and optimization problems.
    MIT