← WebMCP Directory

Tool tree

solaris-xi-olive.vercel.app

Developer ToolsTools verified
Website
Solaris
Explore capabilities
    get_model_specAnswer

    Call this FIRST. Returns all parameter names, ranges, units, fixed physical/economic constants, and output metric definitions. Everything you need to form valid inputs for set_params, sweep, and grid_search.

    View tool JSON
    {
      "name": "get_model_spec",
      "kind": "answer",
      "impl": "imperative",
      "description": "Call this FIRST. Returns all parameter names, ranges, units, fixed physical/economic constants, and output metric definitions. Everything you need to form valid inputs for set_params, sweep, and grid_search."
    }
    get_stateAnswer

    Returns current slider values (params), the latest full-fidelity result, pinned run labels, and whether a sweep is loaded. Use this to understand what the user has configured before making changes.

    View tool JSON
    {
      "name": "get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns current slider values (params), the latest full-fidelity result, pinned run labels, and whether a sweep is loaded. Use this to understand what the user has configured before making changes."
    }
    set_paramsAction

    Updates one or more sliders and immediately returns the new full-fidelity result. Partial updates are fine — unspecified params keep their current values. The sliders visibly move on screen when you call this.

    View tool JSON
    {
      "name": "set_params",
      "kind": "act",
      "impl": "imperative",
      "description": "Updates one or more sliders and immediately returns the new full-fidelity result. Partial updates are fine — unspecified params keep their current values. The sliders visibly move on screen when you call this.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "panels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 40
          },
          "batteryKwh": {
            "type": "number",
            "minimum": 0,
            "maximum": 30
          },
          "inverterKw": {
            "type": "number",
            "minimum": 1,
            "maximum": 10
          },
          "dailyLoadKwh": {
            "type": "number",
            "minimum": 3,
            "maximum": 25
          },
          "loadShape": {
            "type": "string",
            "enum": [
              "evening_heavy",
              "flat",
              "daytime_heavy"
            ]
          }
        }
      }
    }
    runAction

    Runs the full-fidelity 8760-hour simulation. Pass a partial params override to evaluate a hypothetical config without moving the sliders. Use this after sweep/grid_search to get precise numbers on a shortlisted config.

    View tool JSON
    {
      "name": "run",
      "kind": "act",
      "impl": "imperative",
      "description": "Runs the full-fidelity 8760-hour simulation. Pass a partial params override to evaluate a hypothetical config without moving the sliders. Use this after sweep/grid_search to get precise numbers on a shortlisted config.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "panels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 40
          },
          "batteryKwh": {
            "type": "number",
            "minimum": 0,
            "maximum": 30
          },
          "inverterKw": {
            "type": "number",
            "minimum": 1,
            "maximum": 10
          },
          "dailyLoadKwh": {
            "type": "number",
            "minimum": 3,
            "maximum": 25
          },
          "loadShape": {
            "type": "string",
            "enum": [
              "evening_heavy",
              "flat",
              "daytime_heavy"
            ]
          }
        }
      }
    }
    sweepAction

    Sweeps one numeric parameter across a range (fast simulation). Use this before grid_search to understand how a single variable moves key metrics. Returns top 10 by annual cost + the best config. Max 500 steps. Shows an approval modal when > 200 configs.

    View tool JSON
    {
      "name": "sweep",
      "kind": "act",
      "impl": "imperative",
      "description": "Sweeps one numeric parameter across a range (fast simulation). Use this before grid_search to understand how a single variable moves key metrics. Returns top 10 by annual cost + the best config. Max 500 steps. Shows an approval modal when > 200 configs.",
      "inputSchema": {
        "type": "object",
        "required": [
          "param",
          "from",
          "to",
          "steps"
        ],
        "properties": {
          "param": {
            "type": "string",
            "enum": [
              "panels",
              "batteryKwh",
              "inverterKw",
              "dailyLoadKwh"
            ]
          },
          "from": {
            "type": "number"
          },
          "to": {
            "type": "number"
          },
          "steps": {
            "type": "integer",
            "minimum": 2,
            "maximum": 500
          }
        }
      }
    }
    grid_searchAction

    Evaluates a Cartesian product of parameter ranges (fast simulation). Use for multi-dimensional optimisation after 1-D sweeps have narrowed the interesting region. Hard cap 20,000 configs. Returns top 10 ranked by your objective. Shows an approval modal when > 200 configs.

    View tool JSON
    {
      "name": "grid_search",
      "kind": "act",
      "impl": "imperative",
      "description": "Evaluates a Cartesian product of parameter ranges (fast simulation). Use for multi-dimensional optimisation after 1-D sweeps have narrowed the interesting region. Hard cap 20,000 configs. Returns top 10 ranked by your objective. Shows an approval modal when > 200 configs.",
      "inputSchema": {
        "type": "object",
        "required": [
          "ranges",
          "objective"
        ],
        "properties": {
          "ranges": {
            "type": "object",
            "description": "Map of paramName → { from, to, steps }",
            "additionalProperties": {
              "type": "object",
              "required": [
                "from",
                "to",
                "steps"
              ],
              "properties": {
                "from": {
                  "type": "number"
                },
                "to": {
                  "type": "number"
                },
                "steps": {
                  "type": "integer",
                  "minimum": 2
                }
              }
            }
          },
          "objective": {
            "type": "string",
            "enum": [
              "min_annual_cost",
              "min_payback",
              "max_self_sufficiency"
            ]
          },
          "constraints": {
            "type": "object",
            "properties": {
              "minSelfSufficiencyPct": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "maxCapexINR": {
                "type": "number",
                "minimum": 0
              }
            }
          }
        }
      }
    }
    pin_runAction

    Pins the current configuration and full-fidelity result under a label. Use this before moving to a different config so you can compare candidates later with compare_runs.

    View tool JSON
    {
      "name": "pin_run",
      "kind": "act",
      "impl": "imperative",
      "description": "Pins the current configuration and full-fidelity result under a label. Use this before moving to a different config so you can compare candidates later with compare_runs.",
      "inputSchema": {
        "type": "object",
        "required": [
          "label"
        ],
        "properties": {
          "label": {
            "type": "string",
            "maxLength": 40
          }
        }
      }
    }
    compare_runsAction

    Returns a metric-by-metric diff table for the given pinned run labels. Use after pinning several candidate configs to pick the winner.

    View tool JSON
    {
      "name": "compare_runs",
      "kind": "act",
      "impl": "imperative",
      "description": "Returns a metric-by-metric diff table for the given pinned run labels. Use after pinning several candidate configs to pick the winner.",
      "inputSchema": {
        "type": "object",
        "required": [
          "labels"
        ],
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "maxItems": 10
          }
        }
      }
    }
    explain_stateAction

    Returns a plain-language paragraph describing the current configuration, what the numbers mean, and the key tradeoffs. Use this to summarise findings for the user or to sanity-check your understanding before making further changes.

    View tool JSON
    {
      "name": "explain_state",
      "kind": "act",
      "impl": "imperative",
      "description": "Returns a plain-language paragraph describing the current configuration, what the numbers mean, and the key tradeoffs. Use this to summarise findings for the user or to sanity-check your understanding before making further changes."
    }