mcpField
M
mrugankpednekar-mcp-optimizer

mrugankpednekar-mcp-optimizer

リモート
github.com/mrugankpednekar科学・教育049 週間前に更新
リポジトリ

mrugankpednekar-mcp-optimizer について

Crew Optimizer は CrewAI ワークフロー向けの最適化ツールとエージェントを提供し、線形・混合整数計画の求解や自然言語からのモデル作成に対応します。Crew への組み込み、コードからの呼び出し、MCP サーバーとしての実行が可能です。

主な機能

  1. 01SciPy HiGHS による線形計画の求解
  2. 02混合整数モデルの求解
  3. 03自然言語を LP JSON に変換
  4. 04実行不可能なモデルの原因を診断
  5. 05CSV、JSON、Excel データの読み込み

活用シーン

  1. 01チームや従業員の勤務スケジュールを最適化
  2. 02データファイルを使ったリソース配分
  3. 03最適化モデルが実行不可能な原因を調査

MCP 対応

MCP サーバーは線形・混合整数計画の求解、自然言語の解析、実行不可能性の診断、ファイルデータを使った文章題の求解ツールを提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp認証が必要

ツール

詳細

Crew Optimizer

Crew Optimizer は、CrewAI エコシステムを中心に、元の最適化プロジェクトを再構築したものです。SciPy の HiGHS バックエンドを使って線形計画問題を解く再利用可能な CrewAI ツールとエージェント、軽量な分枝限定探索(または OR-Tools によるフォールバック)で混合整数モデルを探索する機能、自然言語のプロンプトを LP JSON に変換する機能、実行不可能性を診断する機能を提供します。ツールを独自の Crew に組み込むことも、便利なラッパーの OptimizerCrew を通じてプログラムから呼び出すことも、MCP プロトコル経由で Smithery などのクライアント向けに提供することもできます。

インストール

python -m venv .venv
source .venv/bin/activate
pip install -e .[mip]

これにより、MILP の求解に使える OR-Tools サポート(オプション)とともに Crew Optimizer がインストールされます。必要に応じて、pytest や ruff などの開発ツールを追加してください(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)

より広範なマルチエージェントのワークフローに統合するには、crew.build_crew() を呼び出して、LP、MILP、パーサーのエージェントが含まれる Crew を取得します。通常どおり、CrewAI の共有コンテキストを使ってモデルの入力を渡してください。

MCP / Smithery でのホスティング

Crew Optimizer には、同じソルバーをラップする MCP サーバー(python -m crew_optimizer.server)が付属しています。リポジトリには Smithery マニフェスト(smithery.json)とビルド設定(smithery.yaml)がすでに含まれています。

  1. リポジトリを GitHub にプッシュします。
  2. Smithery で Publish an MCP Server を選択し、GitHub に接続して、リポジトリを選択します。
  3. Smithery はパッケージをインストールし(pip install .)、同梱の起動スクリプトを使って mcp http src/crew_optimizer/server.py --port 3333 を起動します。
  4. サーバーは以下のツールを公開します。
    • solve_linear_program
    • solve_mixed_integer_program
    • parse_natural_language
    • diagnose_infeasibility
    • solve_word_problem_with_data - ファイルのデータを使って最適化問題を解きます

ローカルでテストする場合:

mcp http src/crew_optimizer/server.py --port 3333 --cors "*"

テスト

テスト用の依存関係をインストールし(pip install pytest)、以下を実行します。

python -m pytest

このテストスイートでは、LP ソルバー、MILP の分枝限定法、NL パーサーを対象とします。

データファイルを使った文章題の求解

MCP サーバーには、データファイル(CSV、JSON、Excel)を解析し、そのデータを使って最適化の文章題を解く solve_word_problem_with_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.

このツールは以下をサポートします。

  • CSV/TSV ファイル:カンマ区切りまたはタブ区切りの値を自動的に検出して解析します
  • JSON ファイル:JSON 配列またはオブジェクトを解析します
  • Excel ファイル:pandas と openpyxl が必要です(pip install crew-optimizer[excel] でインストール)
  • 自動検出:指定されていない場合、ファイル形式を自動的に検出します

解析されたデータは問題の説明に取り込まれるため、自然言語パーサーは実際のデータに基づいて値を抽出し、制約条件と目的関数を定式化できます。

ライセンス

MIT ライセンスの下で配布されています。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。