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: Google Sheets MCP

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jacck/mcp-ortools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server