MCP.so
ログイン

GitHub Configuration MCP Server

@dmitryanchikov

基本情報

カテゴリ

バージョン管理

トランスポート

stdio

作者

dmitryanchikov

投稿者

Dmitry Anch

GitHub Configuration MCP Server について

Mathematical Optimization MCP Server with PuLP and OR-Tools support

#optimization-tools#mcp-server

GitHub Configuration MCP Server の設定

以下の設定を使って、このサーバーを MCP 対応クライアントに追加してください。

{
  "mcpServers": {
    "mcp-optimizer": {
      "command": "uvx",
      "args": [
        "mcp-optimizer"
      ]
    }
  }
}

GitHub Configuration MCP Server のツール

13

Solve a linear programming problem using PuLP. This tool solves general linear programming problems where you want to optimize a linear objective function subject to linear constraints. Use cases: - Resource allocation: Distribute limited resources optimally - Diet planning: Create nutritionally balanced meal plans within budget - Manufacturing mix: Determine optimal product mix to maximize profit - Investment planning: Allocate capital across different investment options - Supply chain optimization: Minimize transportation and storage costs - Energy optimization: Optimize power generation and distribution Args: objective: Objective function with 'sense' ("minimize" or "maximize") and 'coefficients' (dict mapping variable names to coefficients) variables: Variable definitions mapping variable names to their properties (type: "continuous"/"integer"/"binary", lower: bound, upper: bound) constraints: List of constraints, each with 'expression' (coefficients), 'operator' ("<=", ">=", "=="), and 'rhs' (right-hand side value) solver: Solver to use ("CBC", "GLPK", "GUROBI", "CPLEX") time_limit_seconds: Maximum time to spend solving (optional) Returns: Optimization result with status, objective value, variable values, and solver info Example: # Maximize 3x + 2y subject to 2x + y <= 20, x + 3y <= 30, x,y >= 0 solve_linear_program( objective={"sense": "maximize", "coefficients": {"x": 3, "y": 2}}, variables={ "x": {"type": "continuous", "lower": 0}, "y": {"type": "continuous", "lower": 0} }, constraints=[ {"expression": {"x": 2, "y": 1}, "operator": "<=", "rhs": 20}, {"expression": {"x": 1, "y": 3}, "operator": "<=", "rhs": 30} ] )

Solve an integer or mixed-integer programming problem using PuLP. This tool solves optimization problems where some or all variables must take integer values, which is useful for discrete decision problems. Use cases: - Facility location: Decide where to build warehouses or service centers - Project selection: Choose which projects to fund (binary decisions) - Crew scheduling: Assign integer numbers of staff to shifts - Network design: Design networks with discrete components - Cutting stock: Minimize waste when cutting materials - Capital budgeting: Select investments when partial investments aren't allowed Args: objective: Objective function with 'sense' and 'coefficients' variables: Variable definitions with types "continuous", "integer", or "binary" constraints: List of linear constraints solver: Solver to use ("CBC", "GLPK", "GUROBI", "CPLEX") time_limit_seconds: Maximum time to spend solving (optional) Returns: Optimization result with integer/binary variable values Example: # Binary knapsack: select items to maximize value within weight limit solve_integer_program( objective={"sense": "maximize", "coefficients": {"item1": 10, "item2": 15}}, variables={ "item1": {"type": "binary"}, "item2": {"type": "binary"} }, constraints=[ {"expression": {"item1": 5, "item2": 8}, "operator": "<=", "rhs": 10} ] )

Solve Mixed-Integer Programming (MIP) problems with integer, binary, and continuous variables. Args: variables: List of variable definitions with bounds and types constraints: List of constraint definitions with coefficients and bounds objective: Objective function definition with coefficients and direction solver_name: Solver to use ("SCIP", "CBC", "GUROBI", "CPLEX") time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with optimal variable values and objective

Solve assignment problem using OR-Tools Hungarian algorithm. Args: workers: List of worker names tasks: List of task names costs: 2D cost matrix where costs[i][j] is cost of assigning worker i to task j maximize: Whether to maximize instead of minimize (default: False) max_tasks_per_worker: Maximum tasks per worker (optional) min_tasks_per_worker: Minimum tasks per worker (optional) Returns: Dictionary with solution status, assignments, total cost, and execution time

Solve transportation problem using OR-Tools. Args: suppliers: List of supplier dictionaries with 'name' and 'supply' keys consumers: List of consumer dictionaries with 'name' and 'demand' keys costs: 2D cost matrix where costs[i][j] is cost of shipping from supplier i to consumer j Returns: Dictionary with solution status, flows, total cost, and execution time

Solve knapsack optimization problems using OR-Tools. This tool solves knapsack problems where items need to be selected to maximize value while staying within capacity constraints. Use cases: - Cargo loading: Optimize loading of trucks, ships, or planes by weight and volume - Portfolio selection: Choose optimal set of investments within budget constraints - Resource allocation: Select projects or activities with limited budget or resources - Advertising planning: Choose optimal mix of advertising channels within budget - Menu planning: Select dishes for a restaurant menu considering costs and popularity - Inventory optimization: Decide which products to stock in limited warehouse space Args: items: List of items, each with 'name', 'value', 'weight', and optionally 'volume', 'quantity' capacity: Weight capacity constraint volume_capacity: Volume capacity constraint (optional) knapsack_type: Type of knapsack problem ('0-1', 'bounded', 'unbounded') max_items_per_type: Maximum items per type for bounded knapsack Returns: Knapsack result with total value and selected items Example: # Select items to maximize value within weight limit solve_knapsack_problem( items=[ {"name": "Item1", "value": 10, "weight": 5, "volume": 2}, {"name": "Item2", "value": 15, "weight": 8, "volume": 3}, {"name": "Item3", "value": 8, "weight": 3, "volume": 1} ], capacity=10, volume_capacity=5 )

Solve Traveling Salesman Problem (TSP) to find the shortest route visiting all locations. Args: locations: List of location dictionaries with name and coordinates distance_matrix: Optional pre-calculated distance matrix start_location: Index of starting location (default: 0) return_to_start: Whether to return to starting location (default: True) time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with route and total distance

Solve Vehicle Routing Problem (VRP) to optimize routes for multiple vehicles. Args: locations: List of location dictionaries with name, coordinates, and demand vehicles: List of vehicle dictionaries with capacity constraints distance_matrix: Optional pre-calculated distance matrix time_matrix: Optional pre-calculated time matrix depot: Index of depot location (default: 0) time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with routes for all vehicles

Solve Job Shop Scheduling Problem to optimize machine utilization and completion times. Args: jobs: List of job dictionaries with tasks and constraints machines: List of available machine names horizon: Maximum time horizon for scheduling objective: Optimization objective ("makespan" or "total_completion_time") time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with job schedule and machine assignments

Solve Employee Shift Scheduling to assign employees to shifts optimally. Args: employees: List of employee names shifts: List of shift dictionaries with time and requirements days: Number of days to schedule employee_constraints: Optional constraints and preferences per employee time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with employee schedules and coverage statistics

Optimize portfolio allocation to maximize return or minimize risk. Args: assets: List of asset dictionaries with expected return, risk, and sector objective: Optimization objective ("maximize_return", "minimize_risk", "maximize_sharpe", "risk_parity") budget: Total budget to allocate (default: 1.0) risk_tolerance: Maximum acceptable portfolio risk (optional) sector_constraints: Maximum allocation per sector (optional) min_allocation: Minimum allocation per asset (default: 0.0) max_allocation: Maximum allocation per asset (default: 1.0) solver_name: Solver to use ("CBC", "GLPK", "GUROBI", "CPLEX") time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with optimal portfolio allocation

Optimize multi-period production planning to maximize profit or minimize costs. Args: products: List of product dictionaries with costs and resource requirements resources: List of resource dictionaries with capacity constraints periods: Number of planning periods demand: List of demand requirements per product per period objective: Optimization objective ("maximize_profit", "minimize_cost", "minimize_time") inventory_costs: Optional inventory holding costs per product setup_costs: Optional setup costs per product solver_name: Solver to use ("CBC", "GLPK", "GUROBI", "CPLEX") time_limit_seconds: Maximum solving time in seconds (default: 30.0) Returns: Optimization result with optimal production plan

Validate input data for optimization problems. Args: problem_type: Type of optimization problem input_data: Input data to validate Returns: Validation result with errors, warnings, and suggestions

概要

What is GitHub Configuration?

GitHub Configuration is a mathematical optimization MCP server that integrates PuLP and OR-Tools solvers. It provides tools for solving linear programming, assignment, knapsack, routing, scheduling, financial optimization, and production planning problems. The server is intended for use with MCP-compatible LLM clients such as Claude Desktop and Cursor.

How to use GitHub Configuration?

Install via uvx mcp-optimizer (recommended) or pip install mcp-optimizer, then configure your MCP client’s settings JSON with the appropriate command and arguments. For Claude Desktop, add the server to claude_desktop_config.json. The server supports STDIO (default) and SSE transport modes; use --transport sse for HTTP/web clients.

Key features of GitHub Configuration

  • Supports linear, integer, and assignment optimization problems
  • Provides knapsack, routing, and scheduling solvers
  • Includes financial portfolio optimization and production planning
  • Integrates with PuLP and OR-Tools solvers
  • Full MCP protocol integration with STDIO and SSE transports
  • Docker and Kubernetes deployment support

Use cases of GitHub Configuration

  • Optimize resource allocation with assignment or transportation models
  • Solve knapsack problems for optimal item selection under capacity limits
  • Plan multi-period production schedules
  • Minimize risk in financial portfolio allocation
  • Solve traveling salesman or vehicle routing problems with time windows

よくある質問

1

What optimization problem types does GitHub Configuration support?

It supports linear programming, integer programming, assignment problems, transportation problems, knapsack problems, routing problems (TSP/VRP), scheduling problems, financial optimization, and production planning.

2

What are the runtime requirements?

Python 3.11+ and `uv` (or pip) for installation. OR-Tools and PuLP are automatically installed as dependencies.

3

How do I connect GitHub Configuration to an LLM client?

Configure your MCP client’s JSON settings with the command `uvx mcp-optimizer` (or `mcp-optimizer` if installed via pip) under the server name `mcp-optimizer`. For SSE transport, use `--transport sse` and specify host/port.

4

Does GitHub Configuration support Docker deployment?

Yes. Pull the image from `ghcr.io/dmitryanchikov/mcp-optimizer:latest` and run with STDIO or SSE transport, or build locally from the repository.

5

What transport modes are available?

STDIO (default, for direct MCP client integration) and SSE (Server-Sent Events over HTTP for web-based clients).

コメント

「バージョン管理」の他のコンテンツ