← WebMCP Directory

Tool tree

constraint-lab.netlify.app

Productivity & BusinessTools verified
Website
ConstraintLab — a human and agent workspace for deterministic factory scheduling.
Explore capabilities
    get_problem_stateAnswer

    Read the complete compact Factory Scheduling model, all stable-ID typed constraints, solve status, model version, and stale-solution state. This tool never mutates the model.

    View tool JSON
    {
      "name": "get_problem_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the complete compact Factory Scheduling model, all stable-ID typed constraints, solve status, model version, and stale-solution state. This tool never mutates the model.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    add_jobAction

    Add one validated job to the canonical scheduling model. References must use IDs returned by get_problem_state.

    View tool JSON
    {
      "name": "add_job",
      "kind": "act",
      "impl": "imperative",
      "description": "Add one validated job to the canonical scheduling model. References must use IDs returned by get_problem_state.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "durationMinutes": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 1440
          },
          "priority": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "earliestStart": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1440
          },
          "deadline": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1440
          },
          "requiredResource": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "predecessors": {
            "default": [],
            "maxItems": 30,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            }
          }
        },
        "required": [
          "name",
          "durationMinutes",
          "priority",
          "predecessors"
        ],
        "additionalProperties": false
      }
    }
    update_jobAction

    Update one existing job by ID. Only name, durationMinutes, priority, earliestStart, deadline, requiredResource, and predecessors are allowed.

    View tool JSON
    {
      "name": "update_job",
      "kind": "act",
      "impl": "imperative",
      "description": "Update one existing job by ID. Only name, durationMinutes, priority, earliestStart, deadline, requiredResource, and predecessors are allowed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "updates": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "durationMinutes": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 1440
              },
              "priority": {
                "type": "integer",
                "minimum": 1,
                "maximum": 5
              },
              "earliestStart": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deadline": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "requiredResource": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "predecessors": {
                "maxItems": 30,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                }
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "updates"
        ],
        "additionalProperties": false
      }
    }
    add_constraintAction

    Add exactly one typed scheduling constraint with a stable ID. Raw solver expressions and custom constraint types are not accepted.

    View tool JSON
    {
      "name": "add_constraint",
      "kind": "act",
      "impl": "imperative",
      "description": "Add exactly one typed scheduling constraint with a stable ID. Raw solver expressions and custom constraint types are not accepted.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "precedence"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "predecessorId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "successorId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  }
                },
                "required": [
                  "predecessorId",
                  "successorId"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "resource_assignment"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "jobId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "resourceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  }
                },
                "required": [
                  "jobId",
                  "resourceId"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "resource_availability"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "resourceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "start": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  },
                  "end": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  }
                },
                "required": [
                  "resourceId",
                  "start",
                  "end"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "deadline"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "jobId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "deadline": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  }
                },
                "required": [
                  "jobId",
                  "deadline"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "earliest_start"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "jobId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "earliestStart": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  }
                },
                "required": [
                  "jobId",
                  "earliestStart"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "type": {
                "type": "string",
                "const": "locked_start"
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "enabled": {
                "type": "boolean"
              },
              "source": {
                "type": "string",
                "enum": [
                  "user",
                  "agent",
                  "system"
                ]
              },
              "parameters": {
                "type": "object",
                "properties": {
                  "jobId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "start": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1440
                  }
                },
                "required": [
                  "jobId",
                  "start"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "type",
              "parameters"
            ],
            "additionalProperties": false
          }
        ]
      }
    }
    remove_constraintAction

    Remove one application-level constraint by its stable ID.

    View tool JSON
    {
      "name": "remove_constraint",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one application-level constraint by its stable ID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    set_objectiveAction

    Set the optimization objective. Only { type: 'makespan' } is supported in this build.

    View tool JSON
    {
      "name": "set_objective",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the optimization objective. Only { type: 'makespan' } is supported in this build.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "const": "makespan"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      }
    }
    solve_problemAction

    Compile the current canonical model to a disjunctive-scheduling MILP, solve it with deterministic HiGHS in a Web Worker, and update shared solve state.

    View tool JSON
    {
      "name": "solve_problem",
      "kind": "act",
      "impl": "imperative",
      "description": "Compile the current canonical model to a disjunctive-scheduling MILP, solve it with deterministic HiGHS in a Web Worker, and update shared solve state.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_solutionAnswer

    Read current job/resource assignments only when the solution matches the current model version. Returns STALE_SOLUTION after any structural change.

    View tool JSON
    {
      "name": "get_solution",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read current job/resource assignments only when the solution matches the current model version. Returns STALE_SOLUTION after any structural change.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    analyze_infeasibilityAction

    When the last solve is infeasible, deterministically analyze typed constraints and return structured conflict facts. No LLM generates these facts.

    View tool JSON
    {
      "name": "analyze_infeasibility",
      "kind": "act",
      "impl": "imperative",
      "description": "When the last solve is infeasible, deterministically analyze typed constraints and return structured conflict facts. No LLM generates these facts.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }