mcpField
O
OptimEngine - Operations Scheduling Solver

OptimEngine - Operations Scheduling Solver

本地服务
github.com/MicheleCampi生产力414 周前更新

关于 OptimEngine - Operations Scheduling Solver

OptimEngine 使用 OR-Tools CP-SAT 求解排程、路径规划和装箱问题,并分析不确定性下的风险。它面向需要将数学优化能力接入 AI Agent 或应用的运营与工程团队。

主要功能

  1. 01求解柔性作业车间排程
  2. 02优化车辆路径和装箱
  3. 03分析敏感性与稳健性
  4. 04通过蒙特卡洛评估不确定性
  5. 05生成多目标帕累托解和建议

适用场景

  1. 01安排有工序约束的机器任务
  2. 02规划带时间窗的车辆路线
  3. 03评估参数变化对方案的影响

MCP 相关

作为 MCP 服务,它通过 SSE 和 Streamable HTTP 向 MCP 客户端公开 11 个优化工具,并支持 OAuth 2.1。相同能力也可通过 REST 使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"optim-engine": {
"command": "npx",
"args": [
"-y",
"supergateway"
]
}
}
}
启动命令npx -y supergateway

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsupergateway

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

⚡ OptimEngine

生产级优化平台——4 层架构、OR-Tools CP-SAT、原生支持 MCP、OAuth 2.1、以可观测性为先。

Tests Python 3.12 License: MIT MCP Compatible Live


概览

OptimEngine 可解决 NP-hard 优化问题(调度、路径规划、装箱),并量化不确定性下的风险(敏感性分析、鲁棒优化、随机优化、Pareto 分析)。它通过 REST 和 MCP(SSE + Streamable HTTP,使用 OAuth 2.1)提供 4 个智能级别(L1 确定性 → L3 处方性)的 11 种工具。

系统围绕三项工程原则构建:数学正确性(使用真正的 CP-SAT 求解器,而非 LLM 近似方案)、生产级规范(完整的可观测性技术栈、覆盖业务逻辑的测试、经过负载测试)以及Agent 友好性(MCP 双栈、OAuth、速率限制、仅限 JSON 的契约)。

架构

flowchart TB
    Client[AI Agents / MCP Clients / REST] --> Edge[Edge Proxy<br/>Vercel]
    Edge --> L2[L2 Core Gateway<br/>FastAPI · orchestration]
    L2 --> L1[L1 Solver Layer<br/>OR-Tools 9.15 CP-SAT<br/>FJSP · CVRPTW · Packing · Sensitivity · Robust · Stochastic · Pareto · Prescriptive]
    L2 --> L3[L3 Thin Proxies<br/>Payment rails · MCP discovery]
    L1 --> Obs[Observability<br/>OpenTelemetry · Prometheus · Grafana Cloud]
    L2 --> Obs
    L3 --> Obs

四层架构加边缘代理,部署于 6 个 Railway 服务和 1 个 Vercel 函数。所有层均采用 OpenTelemetry 链路追踪、Prometheus 中间件,并在付款事件发生时通过 Telegram 发送告警。

技术栈

层技术
运行时Python 3.12、FastAPI、Uvicorn
求解器OR-Tools 9.15 CP-SAT、NumPy、自定义蒙特卡洛
MCPFastMCP(SSE + Streamable HTTP)、ScaleKit OAuth 2.1、PyJWT
验证Pydantic v2
可观测性OpenTelemetry SDK、Prometheus client、Grafana Cloud
负载测试Locust 2.43
CIGitHub Actions、pytest、pytest-cov
部署Railway(计算)、Vercel(边缘)、GitHub Actions(CI)

功能

L1 — 确定性优化
求解器问题主要功能
调度柔性作业车间(FJSP)优先约束、时间窗、按机器设定的工时、可用时间窗、质量门槛、准备时间矩阵
路径规划CVRPTW容量、时间窗、GPS 距离、跳过访问点、4 种优化目标
装箱多维装箱重量 + 体积约束、物品数量、分组、部分装箱、4 种优化目标
L2 — 不确定性下的优化
模块能力输出
敏感性分析每次扰动一个参数脆弱性图、敏感性得分、关键标记、风险排名
鲁棒优化不确定性范围 → 最坏情况保护鲁棒解、鲁棒性成本、可行率
随机优化概率分布 → 蒙特卡洛期望值、VaR、CVaR(90/95/99 %)、分布摘要
L2.5 — 多目标优化
模块能力输出
帕累托前沿2-4 个相互竞争的目标非支配解、权衡比、相关性分析
L3 — 处方式优化
模块能力输出
处方建议历史数据 → 预测 → 优化 → 风险 → 建议行动、经风险调整的完工时间、可行性风险评估

性能

生产环境基准测试摘要(完整报告:BENCHMARKS.md):

  • 累计负载 20 分钟内处理 757 个请求,失败 0 次
  • 基础设施耗时下限:约 200 ms(FastAPI + 边缘代理 + 身份验证 + 可观测性开销)
  • 当前 Railway 层级下,并发用户达到 5 人时出现饱和拐点;此后系统会逐步降级
  • 瓶颈:求解器 CPU,而非基础设施——L1 的扩展路径是水平扩展,而非在网关处垂直扩展

Grafana 实时仪表板:public-dashboards/optimengine

测试与 CI

测试

  • 121 项测试,覆盖 7 个求解器模块,全部通过
  • 总体覆盖率 77 %,业务逻辑引擎平均覆盖率 88 %
  • 每次推送和拉取请求都会通过 GitHub Actions 运行
  • 覆盖率报告作为构建产物上传(HTML + XML)

测试套件运行真实的 CP-SAT 求解,而非模拟:断言会验证数学属性(CVaR 排序、容量约束、扰动下的单调性),而不只是代码路径。

v9.0.0 亮点

四项调度引擎升级,弥合了学术界 FJSP 与真实车间运作方式之间的差距。与 v8 请求完全向后兼容。

每台机器的任务时长 — 同一任务在不同机器上的耗时不同:

{
  "task_id": "milling",
  "duration": 100,
  "eligible_machines": ["CNC-1", "CNC-2"],
  "duration_per_machine": {"CNC-1": 120, "CNC-2": 80}
}

可用时间窗口 — 每台机器支持多个班次和维护间隔:

{
  "machine_id": "CNC-1",
  "availability_windows": [
    {"start": 0, "end": 480},
    {"start": 510, "end": 960}
  ]
}

质量关卡 — 作业要求最低质量,机器具有产出率:

{ "job_id": "ORD-BOSCH", "quality_min": 0.97 }
{ "machine_id": "CNC-4", "yield_rate": 0.99 }

设置时间矩阵 — 依赖加工顺序的换型成本:

{
  "setup_times": [
    {"machine_id": "M1", "from_job_id": "J1", "to_job_id": "J2", "setup_time": 15}
  ]
}

快速开始

claude.ai(远程 MCP 连接器)

在“设置” → “集成”下添加远程 MCP 连接器:

https://optim-engine-production.up.railway.app/mcp

用于受 OAuth 保护的端点:

https://optim-engine-production.up.railway.app/mcp/v2
REST(curl)
curl -X POST https://optim-engine-production.up.railway.app/optimize_schedule \
  -H "Content-Type: application/json" \
  -H "X-Engine-Key: $ENGINE_API_KEY" \
  -d '{
    "jobs": [
      {"job_id": "J1", "tasks": [
        {"task_id": "cut", "duration": 30, "eligible_machines": ["M1", "M2"]},
        {"task_id": "weld", "duration": 20, "eligible_machines": ["M2"]}
      ]}
    ],
    "machines": [{"machine_id": "M1"}, {"machine_id": "M2"}],
    "objective": "minimize_makespan"
  }'
MCP 客户端配置
{
  "mcpServers": {
    "optim-engine": {
      "url": "https://optim-engine-production.up.railway.app/mcp"
    }
  }
}

验证案例研究:MetalPrecision(合成数据)

模拟意大利精密加工车间的合成数据集——4 台 CNC 加工中心(2015-2023 年款)、5 个参考真实汽车/工业客户建模的客户订单、15 项任务。用于端到端验证全部 7 个模块的求解器行为。

工具结果
optimize_schedule最优完工时间 225 min,5/5 按时完成,平均利用率 83.3 %,耗时 0.04 s
validate_schedule零违规,2 条改进建议
analyze_sensitivity3.6 s 内完成 73 次求解,识别出最敏感参数(敏感度评分 8.9)
optimize_robust最坏情况 210 min,稳健性代价 7.7 %,可行率 100 %
optimize_pareto权衡前沿:195/15 min 对比 220/0 min,相关性 -1.0
optimize_stochastic30 个蒙特卡洛场景,CVaR95 = 188.5,CV 4.7 %
prescriptive_advise预测每周期 +1.3 %,风险调整后的范围为 167-183

数据集中的客户名称仅用于示例。这不是实际客户部署,而是用于求解器验证和演示的基准场景。

生产部署

端点角色
optim-engine-production.up.railway.appL1 + L2 + L3 计算(Railway,6 个服务)
Edge 代理(Vercel)处理 CORS、改写标头、边缘缓存
claude.ai 上的 MCP 连接器为 Claude 客户端提供工具接口

发现

已列入 x402scan、Smithery 和 the402.ai,以便在 Agent 经济中被发现。系统支持在 Base 和 Solana 上使用 x402 微支付访问付费层端点;支付集成的说明记录在 L3 轻量代理层中,但这并非项目的主要重点。

许可证

MIT——参见 LICENSE。

由 Michele Campi 构建。

评论

支持 Markdown

第一次接触 MCP?

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

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