minizinc-mcp
by r33drichards
README.md
# 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:
```bash
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)
```bash
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](https://claude.ai/settings/connectors)
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 found
- `status`: Solving status (SATISFIED, OPTIMAL, UNSATISFIABLE, etc.)
- `solve_time`: Time taken to solve in seconds
- `num_solutions`: Number of solutions found
- `error`: Error message if solving failed
Each solution contains:
- `variables`: Dictionary of variable names to values
- `objective`: Objective value for optimization problems
- `is_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:

This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues