r33drichards/minizinc-mcp
If you are the rightful owner of minizinc-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server that provides constraint solving capabilities using MiniZinc.
MiniZinc Constraint Solver MCP Server
A Model Context Protocol (MCP) server that provides constraint solving capabilities using MiniZinc. This server exposes a single powerful tool for solving constraint satisfaction and optimization problems.
Features
The server provides one core tool:
- solve_constraint - General purpose constraint solver that accepts any MiniZinc model with optional data parameters, solver selection, and timeout configuration
Usage Options
Option 1: Use Hosted Version (Recommended)
The easiest way to get started is using our free hosted version at:
https://minizinc-mcp.up.railway.app/sse
Option 2: Self-Host with Docker
Build and run locally:
git clone <repository-url>
cd ccake
docker build -t minizinc-mcp .
docker run -p 8000:8000 minizinc-mcp
Option 3: Local Development
Prerequisites:
- Python 3.11+
- MiniZinc 2.8+ (install from https://www.minizinc.org/software.html)
git clone https://github.com/r33drichards/minizinc-mcp
cd minizinc-mcp
pip install -r requirements.txt
python main.py
Usage with Claude
got to the connectors settings page
click Add Custom Connector button
for name use "minizinc mcp"
for url use:
https://minizinc-mcp.up.railway.app/sse
Example Usage
Once configured, you can ask Claude to solve constraint problems:
"Solve the 4-Queens problem where 4 queens must be placed on a 4x4 chessboard so that no two queens attack each other"
"Find the optimal solution to a knapsack problem with items having weights [2,3,4,5] and values [3,4,5,6] and capacity 7"
"Solve this custom constraint: I need two variables x and y between 1 and 10 where x + y = 15 and x < y"
Response Format
The solve_constraint tool returns a SolveResult object containing:
solutions: List of solutions foundstatus: Solving status (SATISFIED, OPTIMAL, UNSATISFIABLE, etc.)solve_time: Time taken to solve in secondsnum_solutions: Number of solutions founderror: Error message if solving failed
Each solution contains:
variables: Dictionary of variable names to valuesobjective: Objective value for optimization problemsis_optimal: Whether the solution is optimal
License
MIT License - see LICENSE file for details.
Usage with Claude Code
claude mcp add minizinc -t sse https://minizinc-mcp.up.railway.app/sse
then to test run the command
claude
in the input window prompt:
Solve the 4-Queens problem where 4 queens must be placed on a 4x4 chessboard so that no two queens attack each other
and you should see an output similar to this:
