关于 mrugankpednekar-mcp-optimizer
Crew Optimizer 为 CrewAI 工作流提供优化工具和 Agent,可求解线性与混合整数规划,并将自然语言描述转换为模型。它可嵌入 crew、通过代码调用,也可作为 MCP 服务运行。
主要功能
- 01使用 SciPy HiGHS 求解线性规划
- 02求解混合整数模型
- 03将自然语言解析为 LP JSON
- 04诊断模型不可行原因
- 05读取 CSV、JSON 和 Excel 数据
适用场景
- 01优化团队或员工排班
- 02根据数据文件分配资源
- 03排查优化模型不可行的原因
MCP 相关
其 MCP 服务提供线性与混合整数规划求解、自然语言解析、不可行性诊断,以及使用文件数据求解文字问题的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcpclaude mcp add --transport http ai-smithery-mrugankpednekar-mcp-optimizer https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp{"mcpServers":{"ai-smithery-mrugankpednekar-mcp-optimizer":{"type":"http","url":"https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp"}}}在 Cursor 中打开{"servers":{"ai-smithery-mrugankpednekar-mcp-optimizer":{"type":"http","url":"https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp"}}}在 VS Code 中打开{"mcpServers":{"ai-smithery-mrugankpednekar-mcp-optimizer":{"type":"http","url":"https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp"}}}{"mcpServers":{"ai-smithery-mrugankpednekar-mcp-optimizer":{"serverUrl":"https://server.smithery.ai/@mrugankpednekar/mcp-optimizer/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://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)。
- 将仓库推送到 GitHub。
- 在 Smithery 中选择 Publish an MCP Server,连接 GitHub 并选择该仓库。
- Smithery 会安装此包(
pip install .),并使用随附的启动脚本运行mcp http src/crew_optimizer/server.py --port 3333。 - 此服务会提供以下工具:
solve_linear_programsolve_mixed_integer_programparse_natural_languagediagnose_infeasibilitysolve_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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。