Built on top of CrewAI and SciPy's HiGHS solver, this server wraps linear and mixed-integer program solvers behind five MCP tools: solve_linear_program, solve_mixed_integer_program, parse_natural_language, diagnose_infeasibility, and solve_word_problem_with_data. The last one reads CSV, JSON, or Excel files and automatically extracts values to feed into optimization models. You supply LP models as JSON structures with variables, constraints, and objective terms, or describe problems in plain English and let the parser convert them. The MILP solver uses lightweight branch-and-bound or falls back to OR-Tools. Reach for this when you need to schedule shifts, allocate resources, or solve routing problems directly from Claude without coding up optimization logic yourself.
Crew Optimizer rebuilds the original optimisation project around the CrewAI ecosystem. It provides reusable CrewAI tools and agents capable of solving linear programs via SciPy's HiGHS backend, exploring mixed-integer models with a lightweight branch-and-bound search (or OR-Tools fallback), translating natural language prompts into LP JSON, and diagnosing infeasibility. You can embed the tools inside your own crews or call them programmatically through the OptimizerCrew convenience wrapper, or serve them over the MCP protocol for clients such as Smithery.
python -m venv .venv
source .venv/bin/activate
pip install -e .[mip]
This installs Crew Optimizer together with optional OR-Tools support for MILP solving. Add pytest, ruff, or other dev tools as needed (pip install pytest).
from crew_optimizer import OptimizerCrew
crew = OptimizerCrew(verbose=False)
lp_model = {
"name": "diet-toy",
"sense": "min",
"objective": {
"terms": [
{"var": "x", "coef": 3},
{"var": "y", "coef": 2},
],
"constant": 0,
},
"variables": [
{"name": "x", "lb": 0},
{"name": "y", "lb": 0},
],
"constraints": [
{
"name": "c1",
"lhs": {
"terms": [
{"var": "x", "coef": 1},
{"var": "y", "coef": 2},
],
"constant": 0,
},
"cmp": ">=",
"rhs": 8,
},
{
"name": "c2",
"lhs": {
"terms": [
{"var": "x", "coef": 3},
{"var": "y", "coef": 1},
],
"constant": 0,
},
"cmp": ">=",
"rhs": 6,
},
],
}
solution = crew.solve_lp(lp_model)
print(solution)
To integrate with a wider multi-agent workflow, call crew.build_crew() to obtain a Crew populated with the LP, MILP, and parser agents. Provide model inputs through CrewAI’s shared context as usual.
Crew Optimizer ships an MCP server (python -m crew_optimizer.server) that wraps the same solvers. The repository already contains a Smithery manifest (smithery.json) and build config (smithery.yaml).
pip install .) and launches mcp http src/crew_optimizer/server.py --port 3333 using the bundled startup script.solve_linear_programsolve_mixed_integer_programparse_natural_languagediagnose_infeasibilitysolve_word_problem_with_data - Solve optimization problems using data from filesFor local testing:
mcp http src/crew_optimizer/server.py --port 3333 --cors "*"
Install test dependencies (pip install pytest) and run:
python -m pytest
The suite covers the LP solver, MILP branch-and-bound, and the NL parser.
The MCP server includes a solve_word_problem_with_data tool that can parse data files (CSV, JSON, Excel) and use them to solve optimization word problems. This is particularly useful when you have data in files and want to formulate and solve optimization problems based on that data.
# Example: Solve a production planning problem with data from a CSV file
csv_data = """product,cost,capacity,demand
Widget,10,100,50
Gadget,15,80,60
Thing,12,120,40"""
problem = """
Minimize total cost subject to:
- Production of each product cannot exceed capacity
- Production must meet demand
- All production quantities are non-negative
"""
# The tool will parse the CSV, extract the cost, capacity, and demand values,
# and formulate the optimization problem automatically.
The tool supports:
pandas and openpyxl (install with pip install crew-optimizer[excel])The parsed data is incorporated into the problem description, allowing the natural language parser to extract values and formulate constraints and objective functions based on the actual data.
Distributed under the MIT Licence. See LICENSE for details.
ray0907/git-mcp-server
cyanheads/git-mcp-server
io.github.b1ff/atlassian-dc-mcp-bitbucket
io.github.b1ff/atlassian-dc-mcp-jira
com.mcparmory/atlassian-jira
sirlordt/vscode-terminal-mcp