mcpField
M
mrugankpednekar-mcp-optimizer

mrugankpednekar-mcp-optimizer

远程服务
github.com/mrugankpednekar科研与教育049 周前更新
代码仓库

关于 mrugankpednekar-mcp-optimizer

Crew Optimizer 为 CrewAI 工作流提供优化工具和 Agent,可求解线性与混合整数规划,并将自然语言描述转换为模型。它可嵌入 crew、通过代码调用,也可作为 MCP 服务运行。

主要功能

  1. 01使用 SciPy HiGHS 求解线性规划
  2. 02求解混合整数模型
  3. 03将自然语言解析为 LP JSON
  4. 04诊断模型不可行原因
  5. 05读取 CSV、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 生态系统重建了原始优化项目。它提供可复用的 CrewAI 工具和 Agent,能够通过 SciPy 的 HiGHS 后端求解线性规划,使用轻量级分支定界搜索(或 OR-Tools 后备方案)探索混合整数模型,将自然语言提示词转换为 LP JSON,并诊断不可行问题。你可以将这些工具嵌入自己的 Crew 中,也可以通过 OptimizerCrew 便捷封装程序化调用,或者通过 MCP 协议为 Smithery 等客户端提供服务。

安装

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

此命令会安装 Crew Optimizer,以及用于 MILP 求解的可选 OR-Tools 支持。你可以按需添加 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)

要将其集成到更广泛的多 Agent 工作流中,请调用 crew.build_crew() 获取一个包含 LP、MILP 和解析器 Agent 的 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 分支定界和自然语言解析器。

使用数据文件求解应用题

MCP 服务包含一个 solve_word_problem_with_data 工具,可解析数据文件(CSV、JSON、Excel)并使用其中的数据求解优化应用题。如果你有数据文件,并希望根据这些数据构建和求解优化问题,这个工具会特别有用。

使用示例
# 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。