- Explore MCP Servers
- mcp-ortools
Mcp Ortools
What is Mcp Ortools
mcp-ortools is an implementation of the Model Context Protocol (MCP) server that utilizes Google OR-Tools for constraint solving. It is designed to work with Large Language Models through a standardized specification for constraint models.
Use cases
Use cases for mcp-ortools include solving optimization problems, constraint satisfaction tasks, and specific applications like portfolio selection and knapsack problems, where constraints and objectives can be defined and solved programmatically.
How to use
To use mcp-ortools, install the package via pip, configure the server in the Claude Desktop configuration file, and specify models in JSON format with defined variables, constraints, and objectives. The server allows submitting, validating, and solving constraint models.
Key features
Key features include full support for OR-Tools CP-SAT solver, JSON-based model specification, support for integer and boolean variables, linear constraints, optimization objectives, and various problem types such as portfolio selection and knapsack problems.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Mcp Ortools
mcp-ortools is an implementation of the Model Context Protocol (MCP) server that utilizes Google OR-Tools for constraint solving. It is designed to work with Large Language Models through a standardized specification for constraint models.
Use cases
Use cases for mcp-ortools include solving optimization problems, constraint satisfaction tasks, and specific applications like portfolio selection and knapsack problems, where constraints and objectives can be defined and solved programmatically.
How to use
To use mcp-ortools, install the package via pip, configure the server in the Claude Desktop configuration file, and specify models in JSON format with defined variables, constraints, and objectives. The server allows submitting, validating, and solving constraint models.
Key features
Key features include full support for OR-Tools CP-SAT solver, JSON-based model specification, support for integer and boolean variables, linear constraints, optimization objectives, and various problem types such as portfolio selection and knapsack problems.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
MCP-ORTools
A Model Context Protocol (MCP) server implementation using Google OR-Tools for constraint solving. Designed for use with Large Language Models through standardized constraint model specification.
Overview
MCP-ORTools integrates Google’s OR-Tools constraint programming solver with Large Language Models through the Model Context Protocol, enabling AI models to:
- Submit and validate constraint models
- Set model parameters
- Solve constraint satisfaction and optimization problems
- Retrieve and analyze solutions
Installation
- Install the package:
pip install git+https://github.com/Jacck/mcp-ortools.git
- Configure Claude Desktop
Create the configuration file at%APPDATA%\Claude\claude_desktop_config.json(Windows) or~/Library/Application Support/Claude/claude_desktop_config.json(macOS):
{
"mcpServers": {
"ortools": {
"command": "python",
"args": [
"-m",
"mcp_ortools.server"
]
}
}
}
Model Specification
Models are specified in JSON format with three main sections:
variables: Define variables and their domainsconstraints: List of constraints using OR-Tools methodsobjective: Optional optimization objective
Constraint Syntax
Constraints must use OR-Tools method syntax:
.__le__()for less than or equal (<=).__ge__()for greater than or equal (>=).__eq__()for equality (==).__ne__()for not equal (!=)
Usage Examples
Simple Optimization Model
{
"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
}
}
Knapsack Problem
Example: Select items with values [3,1,2,1] and weights [2,2,1,1] with total weight limit of 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
}
}
Additional constraints example:
Features
- Full OR-Tools CP-SAT solver support
- JSON-based model specification
- Support for:
- Integer and boolean variables (domain: [min, max])
- Linear constraints using OR-Tools method syntax
- Linear optimization objectives
- Timeouts and solver parameters
- Binary constraints and relationships
- Portfolio selection problems
- Knapsack problems
Supported Operations in Constraints
- Basic arithmetic: +, -, *
- Comparisons: .le(), .ge(), .eq(), .ne()
- Linear combinations of variables
- Binary logic through combinations of constraints
Development
To setup for development:
git clone https://github.com/Jacck/mcp-ortools.git
cd mcp-ortools
pip install -e .
Model Response Format
The solver returns solutions in JSON format:
{
"status": "OPTIMAL",
"solve_time": 0.045,
"variables": {
"p0": 0,
"p1": 0,
"p2": 1,
"p3": 1
},
"objective_value": 3
}
Status values:
- OPTIMAL: Found optimal solution
- FEASIBLE: Found feasible solution
- INFEASIBLE: No solution exists
- UNKNOWN: Could not determine solution
License
MIT License - see LICENSE file for details
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










