Constrained Optimization

Constrained Optimization

sharmarajnish

Solves complex optimization problems with constraints using multiple backends like Z3, CVXPY, HiGHS, and OR-Tools. Handles everything from portfolio optimization to scheduling problems through a unified interface.

Provides unified access to multiple optimization solvers including Z3, CVXPY, HiGHS, and OR-Tools for solving constraint satisfaction, convex optimization, linear programming, and combinatorial problems like portfolio optimization, production planning, scheduling, and classic puzzles with mathematical formulations and visualization capabilities.

3211 views3Local (stdio)

What it does

  • Solve linear and quadratic programming problems
  • Handle constraint satisfaction problems with Z3
  • Optimize portfolios with risk management
  • Solve scheduling and resource allocation problems
  • Process convex optimization tasks
  • Generate mathematical formulations and visualizations

Best for

Financial analysts doing portfolio optimizationOperations researchers solving scheduling problemsEngineers working on resource allocationData scientists with constraint optimization needs
4 different solver backendsUnified interface across solver typesPortfolio optimization specialization

About Constrained Optimization

Constrained Optimization is a community-built MCP server published by sharmarajnish that provides AI assistants with tools and capabilities via the Model Context Protocol. Unified constraint optimization server using solvers like Gurobi for convex, linear, and combinatorial problems with vis It is categorized under finance.

How to install

You can install Constrained Optimization in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

License

Constrained Optimization is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

Constrained Optimization MCP Server

Constrained Optimization MCP Server

A general-purpose Model Context Protocol (MCP) server for solving combinatorial optimization problems with logical and numerical constraints. This server provides a unified interface to multiple optimization solvers, enabling AI assistants to solve complex optimization problems across various domains.

๐Ÿš€ Features

  • Unified Interface: Single MCP server for multiple optimization backends
  • AI-Ready: Designed for use with AI assistants through MCP protocol
  • Portfolio Focus: Specialized tools for portfolio optimization and risk management
  • Extensible: Modular design for easy addition of new solvers
  • High Performance: Optimized for large-scale problems
  • Robust: Comprehensive error handling and validation

๐Ÿ› ๏ธ Supported Solvers

  • Z3 - SMT solver for constraint satisfaction problems
  • CVXPY - Convex optimization solver
  • HiGHS - Linear and mixed-integer programming solver
  • OR-Tools - Constraint programming solver

๐Ÿ“ฆ Installation

# Install the package
pip install constrained-opt-mcp

# Or install from source
git clone https://github.com/your-org/constrained-opt-mcp
cd constrained-opt-mcp
pip install -e .

๐Ÿ“ Mathematical Foundations

Optimization Theory

The Constrained Optimization MCP Server implements solutions for various classes of optimization problems:

Linear Programming (LP)

$$\min_{x} c^T x \quad \text{subject to} \quad Ax \leq b, \quad x \geq 0$$

Quadratic Programming (QP)

$$\min_{x} \frac{1}{2}x^T Q x + c^T x \quad \text{subject to} \quad Ax \leq b, \quad x \geq 0$$

Convex Optimization

$$\min_{x} f(x) \quad \text{subject to} \quad g_i(x) \leq 0, \quad h_j(x) = 0$$

Where $f$ and $g_i$ are convex functions.

Constraint Satisfaction Problems (CSP)

Find $x \in \mathcal{D}$ such that $C_1(x) \land C_2(x) \land \ldots \land C_k(x)$

Portfolio Optimization (Markowitz)

$$\max_{w} \mu^T w - \frac{\lambda}{2} w^T \Sigma w \quad \text{subject to} \quad \sum_{i=1}^{n} w_i = 1, \quad w_i \geq 0$$

Where:

  • $w$: portfolio weights
  • $\mu$: expected returns
  • $\Sigma$: covariance matrix
  • $\lambda$: risk aversion parameter

Solver Capabilities

Problem TypeSolverComplexityMathematical Form
Constraint SatisfactionZ3NP-CompleteLogical constraints
Convex OptimizationCVXPYPolynomialConvex functions
Linear ProgrammingHiGHSPolynomialLinear constraints
Constraint ProgrammingOR-ToolsNP-CompleteDiscrete domains

๐Ÿš€ Quick Start

1. Run Examples

# Run individual examples
python examples/nqueens.py
python examples/knapsack.py
python examples/portfolio_optimization.py
python examples/job_shop_scheduling.py
python examples/nurse_scheduling.py
python examples/economic_production_planning.py

# Run interactive notebook
jupyter notebook examples/constrained_optimization_demo.ipynb

2. Start the MCP Server

constrained-opt-mcp

3. Connect from AI Assistant

Add the server to your MCP configuration:

{
  "mcpServers": {
    "constrained-opt-mcp": {
      "command": "constrained-opt-mcp",
      "args": []
    }
  }
}

4. Use the Tools

The server provides the following tools:

  • solve_constraint_satisfaction - Solve logical constraint problems
  • solve_convex_optimization - Solve convex optimization problems
  • solve_linear_programming - Solve linear programming problems
  • solve_constraint_programming - Solve constraint programming problems
  • solve_portfolio_optimization - Solve portfolio optimization problems

๐Ÿ“š Examples

Constraint Satisfaction Problem

# Solve a simple arithmetic constraint problem
variables = [
    {"name": "x", "type": "integer"},
    {"name": "y", "type": "integer"},
]
constraints = [
    "x + y == 10",
    "x - y == 2",
]

# Result: x=6, y=4

Portfolio Optimization

# Optimize portfolio allocation
assets = ["Stocks", "Bonds", "Real Estate", "Commodities"]
expected_returns = [0.10, 0.03, 0.07, 0.06]
risk_factors = [0.15, 0.03, 0.12, 0.20]
correlation_matrix = [
    [1.0, 0.2, 0.6, 0.3],
    [0.2, 1.0, 0.1, 0.05],
    [0.6, 0.1, 1.0, 0.25],
    [0.3, 0.05, 0.25, 1.0],
]

# Result: Optimal portfolio weights and performance metrics

Linear Programming

# Production planning problem
sense = "maximize"
objective_coeffs = [3.0, 2.0]  # Profit per unit
variables = [
    {"name": "product_a", "lb": 0, "ub": None, "type": "cont"},
    {"name": "product_b", "lb": 0, "ub": None, "type": "cont"},
]
constraint_matrix = [
    [2, 1],  # Labor: 2*A + 1*B <= 100
    [1, 2],  # Material: 1*A + 2*B <= 80
]
constraint_senses = ["<=", "<="]
rhs_values = [100.0, 80.0]

# Result: Optimal production quantities

Portfolio Examples

  • Portfolio Optimization - Advanced portfolio optimization strategies including Markowitz, Black-Litterman, and ESG-constrained optimization
  • Risk Management - Risk management strategies including VaR optimization, stress testing, and hedging

Enhanced Portfolio Optimization Features

Equity Portfolio Optimization:

  • Sector diversification constraints (max 25% per sector)
  • Market cap constraints (large, mid, small cap allocations)
  • ESG (Environmental, Social, Governance) constraints
  • Liquidity requirements and individual position limits
  • Risk-return optimization with advanced metrics

Multi-Asset Portfolio Optimization:

  • Asset class constraints (equity, fixed income, alternatives, cash)
  • Regional exposure limits (developed vs emerging markets)
  • Alternative investment constraints (commodities, real estate, private equity)
  • Dynamic rebalancing and risk budgeting
  • Multi-period optimization with transaction costs

Advanced Risk Metrics:

  • Value at Risk (VaR) and Conditional VaR (CVaR)
  • Maximum Drawdown and Tail Risk
  • Factor exposure analysis and risk attribution
  • Stress testing and scenario analysis
  • Correlation and concentration risk management

Comprehensive Examples

๐ŸŽฏ Combinatorial Optimization

  • N-Queens Problem - Classic constraint satisfaction with chessboard visualization
  • Knapsack Problem - 0/1 and multiple knapsack variants with performance analysis

๐Ÿญ Scheduling & Operations

๐Ÿ“Š Quantitative Economics & Finance

๐Ÿงฎ Interactive Learning

๐Ÿงช Testing

Run the comprehensive test suite:

# Run all tests
pytest

# Run specific test categories
pytest tests/test_z3_solver.py
pytest tests/test_cvxpy_solver.py
pytest tests/test_highs_solver.py
pytest tests/test_ortools_solver.py
pytest tests/test_mcp_server.py

# Run with coverage
pytest --cov=constrained_opt_mcp

๐Ÿ“– Documentation

๐Ÿ—๏ธ Architecture

Core Components

  1. Core Models (constrained_opt_mcp/core/) - Base classes and problem types
  2. Solver Models (constrained_opt_mcp/models/) - Problem-specific model definitions
  3. Solvers (constrained_opt_mcp/solvers/) - Solver implementations
  4. MCP Server (constrained_opt_mcp/server/) - MCP server implementation
  5. Examples (constrained_opt_mcp/examples/) - Usage examples and demos

Supported Problem Types

Problem TypeSolverUse Cases
Constraint SatisfactionZ3Logic puzzles, verification, planning
Convex OptimizationCVXPYPortfolio optimization, machine learning
Linear ProgrammingHiGHSProduction planning, resource allocation
Constraint ProgrammingOR-ToolsScheduling, assignment, routing
Portfolio OptimizationMultipleRisk management, portfolio construction

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run the test suite
  6. Submit a pull request

๐Ÿ“„ License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

๐Ÿ†˜ Support

For questions, issues, or contributions, please:

  1. Check the documentation
  2. Search existing issues
  3. Create a new issue
  4. Join our [discussions](https://github.com/your-

README truncated. View full README on GitHub.

Alternatives

Related Skills

Browse all skills
personal-finance-beancount

Professional personal finance advisor specializing in plain-text accounting with Beancount and Fava. Use when users need help with: (1) Analyzing spending habits and financial patterns from Beancount files, (2) Creating or understanding Beancount transactions and syntax, (3) Financial planning, budgeting, and investment advice, (4) Interpreting Fava reports and creating custom queries, (5) Organizing chart of accounts, (6) Double-entry bookkeeping principles, (7) Personal finance optimization and wealth building strategies. Provides analysis, education, and personalized recommendations while maintaining professional standards.

0
constrained-optimization

Problem-solving strategies for constrained optimization in optimization

0
nextjs-developer

Expert Next.js developer mastering Next.js 14+ with App Router and full-stack features. Specializes in server components, server actions, performance optimization, and production deployment with focus on building fast, SEO-friendly applications.

103
google-official-seo-guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

80
quant-analyst

Expert quantitative analyst specializing in financial modeling, algorithmic trading, and risk analytics. Masters statistical methods, derivatives pricing, and high-frequency trading with focus on mathematical rigor, performance optimization, and profitable strategy development.

40
unity-developer

Build Unity games with optimized C# scripts, efficient rendering, and proper asset management. Masters Unity 6 LTS, URP/HDRP pipelines, and cross-platform deployment. Handles gameplay systems, UI implementation, and platform optimization. Use PROACTIVELY for Unity performance issues, game mechanics, or cross-platform builds.

37