Skip to main content
Glama

Opti-MCP: Optimization MCP Server

A Model Context Protocol (MCP) server that provides tools for solving optimization problems using Google OR-Tools. This server enables AI assistants to solve Linear Programming (LP), Integer Programming (IP), Mixed-Integer Programming (MIP), and classic combinatorial optimization problems.

Features

  • Linear Programming: Solve continuous optimization problems with linear constraints

  • Integer/Mixed-Integer Programming: Solve optimization problems with integer decision variables

  • Knapsack Problem: Solve the classic 0/1 knapsack problem efficiently

  • Built on Google OR-Tools for robust, production-grade optimization

  • Simple JSON-based interface

Related MCP server: MCP Optimizer

Prerequisites

  • Node.js 18 or higher

  • Python 3.8 or higher

  • Google OR-Tools Python library

Installation

  1. Clone this repository:

git clone <your-repo-url>
cd opti-mcp
  1. Install Node.js dependencies:

npm install
  1. Install Python dependencies:

pip install ortools
  1. Build the TypeScript code:

npm run build

Configuration

Add to your MCP settings file (e.g., claude_desktop_config.json):

{
  "mcpServers": {
    "opti-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/opti-mcp/dist/index.js"]
    }
  }
}

Available Tools

1. solve_linear_program

Solves linear programming problems where all variables are continuous.

Example: Production Planning

{
  "objective": {
    "coefficients": [3, 5],
    "maximize": true
  },
  "constraints": [
    {
      "coefficients": [1, 0],
      "upper_bound": 4
    },
    {
      "coefficients": [0, 2],
      "upper_bound": 12
    },
    {
      "coefficients": [3, 2],
      "upper_bound": 18
    }
  ],
  "variable_bounds": [[0, "Infinity"], [0, "Infinity"]]
}

This maximizes 3x₀ + 5x₁ subject to:

  • x₀ ≤ 4

  • 2x₁ ≤ 12

  • 3x₀ + 2x₁ ≤ 18

  • x₀, x₁ ≥ 0

2. solve_integer_program

Solves integer or mixed-integer programming problems.

Example: Assignment Problem

{
  "objective": {
    "coefficients": [1, 2, 3, 4],
    "maximize": false
  },
  "constraints": [
    {
      "coefficients": [1, 1, 0, 0],
      "lower_bound": 1,
      "upper_bound": 1
    },
    {
      "coefficients": [0, 0, 1, 1],
      "lower_bound": 1,
      "upper_bound": 1
    }
  ],
  "variable_bounds": [[0, 1], [0, 1], [0, 1], [0, 1]],
  "integer_variables": [0, 1, 2, 3]
}

This solves an assignment problem where variables must be binary (0 or 1).

3. solve_knapsack

Solves the 0/1 knapsack problem.

Example: Item Selection

{
  "values": [360, 83, 59, 130, 431, 67, 230, 52, 93, 125],
  "weights": [7, 0, 30, 22, 80, 94, 11, 81, 70, 64],
  "capacity": 850
}

Maximizes total value while keeping total weight ≤ capacity.

Example Problems

Diet Problem

Minimize cost while meeting nutritional requirements:

{
  "objective": {
    "coefficients": [2.5, 1.8, 3.0, 0.5],
    "maximize": false
  },
  "constraints": [
    {
      "coefficients": [10, 5, 8, 2],
      "lower_bound": 50
    },
    {
      "coefficients": [3, 8, 1, 6],
      "lower_bound": 30
    },
    {
      "coefficients": [5, 4, 7, 3],
      "lower_bound": 40
    }
  ]
}

Bin Packing

Pack items into minimum number of bins:

{
  "objective": {
    "coefficients": [1, 1, 1],
    "maximize": false
  },
  "constraints": [
    {
      "coefficients": [5, 0, 0],
      "upper_bound": 10
    },
    {
      "coefficients": [0, 7, 0],
      "upper_bound": 10
    },
    {
      "coefficients": [0, 0, 4],
      "upper_bound": 10
    }
  ],
  "integer_variables": [0, 1, 2]
}

Response Format

All solvers return a JSON response with:

{
  "status": "OPTIMAL",
  "objective_value": 34.0,
  "solution": [2.0, 6.0],
  "solve_time_ms": 15
}
  • status: OPTIMAL, INFEASIBLE, UNBOUNDED, or UNKNOWN

  • objective_value: The optimal value found (null if not optimal)

  • solution: Array of variable values (null if not optimal)

  • solve_time_ms: Time taken to solve in milliseconds

For knapsack problems:

{
  "status": "OPTIMAL",
  "total_value": 1030,
  "total_weight": 850,
  "selected_items": [0, 2, 3, 4],
  "capacity": 850
}

Development

# Watch mode for development
npm run dev

# Build for production
npm run build

# Run the server
npm start

How It Works

The MCP server:

  1. Receives optimization problems via MCP tool calls

  2. Translates them into Python scripts using OR-Tools

  3. Executes the Python scripts

  4. Returns formatted results

Limitations

  • Requires Python 3.8+ with OR-Tools installed

  • Currently uses GLOP for LP and SCIP for MIP (requires SCIP installation for best performance)

  • Large problems may take significant time to solve

License

MIT

Contributing

Contributions welcome! Please open an issue or PR.

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    MCP-ORTools integrates Google's OR-Tools constraint programming solver with Large Language Models through the MCP, enabling AI models to: Submit and validate constraint models Set model parameters Solve constraint satisfaction and optimization problems Retrieve and analyze solution
    Last updated
    21
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables solving linear programming (LP) and mixed-integer linear programming (MILP) optimization problems through natural language, with built-in simplex and branch-and-cut solvers plus infeasibility diagnostics. Includes optional OR-Tools fallback for larger problems and supports parsing optimization problems from natural language descriptions.
    Last updated
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides constraint satisfaction and optimization capabilities to LLMs and AI agents for scheduling, resource allocation, routing, budget optimization, and configuration problems using Google OR-Tools CP-SAT solver.
    Last updated
    5
    5
    Apache 2.0
  • A
    license
    -
    quality
    C
    maintenance
    Provides linear programming (LP), mixed-integer programming (MIP), and quadratic programming (QP) optimization capabilities using the HiGHS solver, enabling AI assistants to solve complex optimization problems like production planning, logistics, and portfolio optimization.
    Last updated
    28
    16
    MIT

View all related MCP servers

Related MCP Connectors

  • 500+ deterministic tools for AI agents: math, conversion, validation, hashing, encoding, date/time.

  • Universal AI API Orchestrator — 1,554 tools, 96 services. One install.

  • AI-callable calculators and engineering models with real formulas. No hallucinated math.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/average-joe25/opti-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server