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
Instalar el paquete:
pip install git+https://github.com/Jacck/mcp-ortools.gitConfigurar 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 dominiosconstraints: Lista de restricciones que utilizan los métodos de OR-Toolsobjective: 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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.