← WebMCP Directory

Tool tree

modelo.dmytro.fyi

Productivity & BusinessTools verified
Website
A local-first notebook where prose and a calculation model are one document. Agents edit it through native WebMCP tools.
Explore capabilities
    list_notebooksAnswer

    List the notebooks in the Modelo workspace and identify the currently open notebook.

    View tool JSON
    {
      "name": "list_notebooks",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the notebooks in the Modelo workspace and identify the currently open notebook.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    open_notebookAction

    Open an existing workspace notebook by id.

    View tool JSON
    {
      "name": "open_notebook",
      "kind": "act",
      "impl": "imperative",
      "description": "Open an existing workspace notebook by id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace notebook id."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    create_notebookAction

    Create and open an empty notebook with narrative-first composition guidance.

    View tool JSON
    {
      "name": "create_notebook",
      "kind": "act",
      "impl": "imperative",
      "description": "Create and open an empty notebook with narrative-first composition guidance.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name for the new notebook."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    duplicate_notebookAction

    Duplicate an existing workspace notebook.

    View tool JSON
    {
      "name": "duplicate_notebook",
      "kind": "act",
      "impl": "imperative",
      "description": "Duplicate an existing workspace notebook.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Notebook id to duplicate."
          },
          "name": {
            "description": "Optional name for the copy.",
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    delete_notebookSensitive Action

    Permanently delete a workspace notebook by id.

    View tool JSON
    {
      "name": "delete_notebook",
      "kind": "transact",
      "impl": "imperative",
      "description": "Permanently delete a workspace notebook by id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Notebook id to delete."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    rename_notebookAction

    Rename a workspace notebook by rewriting the title heading it opens with.

    View tool JSON
    {
      "name": "rename_notebook",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename a workspace notebook by rewriting the title heading it opens with.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Notebook id to rename."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "New notebook name."
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      }
    }
    get_documentAnswer

    Get ordered blocks and composition, so you can see whether the page reads like a story.

    View tool JSON
    {
      "name": "get_document",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get ordered blocks and composition, so you can see whether the page reads like a story.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_modelAnswer

    Get slim variables, formulas, computed values, and evaluation errors from the open notebook.

    View tool JSON
    {
      "name": "get_model",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get slim variables, formulas, computed values, and evaluation errors from the open notebook.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "includeDependencies": {
            "description": "Include formula and paragraph block ids that use each variable.",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
    find_referencesAnswer

    Find formula and paragraph block ids that reference one variable by name or stable varId.

    View tool JSON
    {
      "name": "find_references",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find formula and paragraph block ids that reference one variable by name or stable varId.",
      "inputSchema": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "varId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "varId"
            ],
            "additionalProperties": false
          }
        ]
      }
    }
    insert_blocksAction

    Low-level block insert for surgery. Prefer write_section when adding new content.

    View tool JSON
    {
      "name": "insert_blocks",
      "kind": "act",
      "impl": "imperative",
      "description": "Low-level block insert for surgery. Prefer write_section when adding new content.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "blocks": {
            "minItems": 1,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "level": {
                      "anyOf": [
                        {
                          "type": "number",
                          "const": 1
                        },
                        {
                          "type": "number",
                          "const": 2
                        },
                        {
                          "type": "number",
                          "const": 3
                        }
                      ]
                    },
                    "text": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "const": "heading"
                    }
                  },
                  "required": [
                    "text",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string",
                      "description": "Plain text. @name inserts a live value."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "paragraph",
                        "bulletListItem",
                        "numberedListItem",
                        "checkListItem"
                      ]
                    }
                  },
                  "required": [
                    "text",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "enum": [
                        "EUR",
                        "USD",
                        "GBP",
                        "UAH",
                        "PLN",
                        "CHF",
                        "CAD",
                        "AUD",
                        "JPY"
                      ]
                    },
                    "decimals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 8
                    },
                    "format": {
                      "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                      "type": "string",
                      "enum": [
                        "number",
                        "currency",
                        "percent",
                        "unit"
                      ]
                    },
                    "max": {
                      "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                      "type": "number"
                    },
                    "min": {
                      "description": "Slider lower bound, in the same scale as value.",
                      "type": "number"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "label",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "step": {
                      "type": "number"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "mm",
                        "cm",
                        "m",
                        "km",
                        "in",
                        "ft",
                        "yd",
                        "mile",
                        "mg",
                        "g",
                        "kg",
                        "lb",
                        "oz",
                        "s",
                        "min",
                        "hour",
                        "day",
                        "week",
                        "month",
                        "year",
                        "m2",
                        "km2",
                        "ha",
                        "ml",
                        "L",
                        "m3"
                      ]
                    },
                    "value": {
                      "type": "number",
                      "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                    },
                    "id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "const": "number"
                    }
                  },
                  "required": [
                    "name",
                    "value",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "enum": [
                        "EUR",
                        "USD",
                        "GBP",
                        "UAH",
                        "PLN",
                        "CHF",
                        "CAD",
                        "AUD",
                        "JPY"
                      ]
                    },
                    "decimals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 8
                    },
                    "format": {
                      "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                      "type": "string",
                      "enum": [
                        "number",
                        "currency",
                        "percent",
                        "unit"
                      ]
                    },
                    "max": {
                      "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                      "type": "number"
                    },
                    "min": {
                      "description": "Slider lower bound, in the same scale as value.",
                      "type": "number"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "label",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "step": {
                      "type": "number"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "mm",
                        "cm",
                        "m",
                        "km",
                        "in",
                        "ft",
                        "yd",
                        "mile",
                        "mg",
                        "g",
                        "kg",
                        "lb",
                        "oz",
                        "s",
                        "min",
                        "hour",
                        "day",
                        "week",
                        "month",
                        "year",
                        "m2",
                        "km2",
                        "ha",
                        "ml",
                        "L",
                        "m3"
                      ]
                    },
                    "value": {
                      "type": "number",
                      "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                    },
                    "id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "const": "slider"
                    }
                  },
                  "required": [
                    "name",
                    "value",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "enum": [
                        "EUR",
                        "USD",
                        "GBP",
                        "UAH",
                        "PLN",
                        "CHF",
                        "CAD",
                        "AUD",
                        "JPY"
                      ]
                    },
                    "decimals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 8
                    },
                    "format": {
                      "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                      "type": "string",
                      "enum": [
                        "number",
                        "currency",
                        "percent",
                        "unit"
                      ]
                    },
                    "max": {
                      "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                      "type": "number"
                    },
                    "min": {
                      "description": "Slider lower bound, in the same scale as value.",
                      "type": "number"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "label",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "step": {
                      "type": "number"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "mm",
                        "cm",
                        "m",
                        "km",
                        "in",
                        "ft",
                        "yd",
                        "mile",
                        "mg",
                        "g",
                        "kg",
                        "lb",
                        "oz",
                        "s",
                        "min",
                        "hour",
                        "day",
                        "week",
                        "month",
                        "year",
                        "m2",
                        "km2",
                        "ha",
                        "ml",
                        "L",
                        "m3"
                      ]
                    },
                    "value": {
                      "type": "number",
                      "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                    },
                    "id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "const": "select"
                    }
                  },
                  "required": [
                    "name",
                    "value",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "enum": [
                        "EUR",
                        "USD",
                        "GBP",
                        "UAH",
                        "PLN",
                        "CHF",
                        "CAD",
                        "AUD",
                        "JPY"
                      ]
                    },
                    "decimals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 8
                    },
                    "format": {
                      "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                      "type": "string",
                      "enum": [
                        "number",
                        "currency",
                        "percent",
                        "unit"
                      ]
                    },
                    "max": {
                      "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                      "type": "number"
                    },
                    "min": {
                      "description": "Slider lower bound, in the same scale as value.",
                      "type": "number"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "label",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "step": {
                      "type": "number"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "mm",
                        "cm",
                        "m",
                        "km",
                        "in",
                        "ft",
                        "yd",
                        "mile",
                        "mg",
                        "g",
                        "kg",
                        "lb",
                        "oz",
                        "s",
                        "min",
                        "hour",
                        "day",
                        "week",
                        "month",
                        "year",
                        "m2",
                        "km2",
                        "ha",
                        "ml",
                        "L",
                        "m3"
                      ]
                    },
                    "value": {
                      "type": "number",
                      "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                    },
                    "id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "const": "boolean"
                    }
                  },
                  "required": [
                    "name",
                    "value",
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "formula": {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "\\S"
                    },
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "type": {
                      "type": "string",
                      "const": "formula"
                    }
                  },
                  "required": [
                    "formula",
                    "name",
                    "type"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "placement": {
            "type": "string",
            "enum": [
              "before",
              "after"
            ]
          },
          "referenceBlockId": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "blocks"
        ],
        "additionalProperties": false
      }
    }
    write_sectionAction

    Add one prose-first section: a heading, body text that mentions variables as @Name, and the inputs and formulas behind them. Percent inputs store whole percents (21 means 21 %) and reach formulas as ratios (0.21), so a percent slider runs 0 to 100. Use format number for counts and loan terms; unit year means a duration. Supports dry_run.

    View tool JSON
    {
      "name": "write_section",
      "kind": "act",
      "impl": "imperative",
      "description": "Add one prose-first section: a heading, body text that mentions variables as @Name, and the inputs and formulas behind them. Percent inputs store whole percents (21 means 21 %) and reach formulas as ratios (0.21), so a percent slider runs 0 to 100. Use format number for counts and loan terms; unit year means a duration. Supports dry_run.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "minLength": 1,
            "pattern": "\\S",
            "description": "One to three short paragraphs. Newlines start paragraphs; @name inserts a live value."
          },
          "formulas": {
            "description": "Named formulas whose result is reused later.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "formula": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "\\S"
                },
                "name": {
                  "type": "string",
                  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                }
              },
              "required": [
                "formula",
                "name"
              ],
              "additionalProperties": false
            }
          },
          "heading": {
            "type": "string",
            "minLength": 1,
            "description": "Section title."
          },
          "inputs": {
            "description": "Assumptions the reader will change.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "currency": {
                  "type": "string",
                  "enum": [
                    "EUR",
                    "USD",
                    "GBP",
                    "UAH",
                    "PLN",
                    "CHF",
                    "CAD",
                    "AUD",
                    "JPY"
                  ]
                },
                "decimals": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 8
                },
                "format": {
                  "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                  "type": "string",
                  "enum": [
                    "number",
                    "currency",
                    "percent",
                    "unit"
                  ]
                },
                "max": {
                  "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                  "type": "number"
                },
                "min": {
                  "description": "Slider lower bound, in the same scale as value.",
                  "type": "number"
                },
                "name": {
                  "type": "string",
                  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "value": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "label",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "step": {
                  "type": "number"
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "mm",
                    "cm",
                    "m",
                    "km",
                    "in",
                    "ft",
                    "yd",
                    "mile",
                    "mg",
                    "g",
                    "kg",
                    "lb",
                    "oz",
                    "s",
                    "min",
                    "hour",
                    "day",
                    "week",
                    "month",
                    "year",
                    "m2",
                    "km2",
                    "ha",
                    "ml",
                    "L",
                    "m3"
                  ]
                },
                "value": {
                  "type": "number",
                  "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "number",
                    "slider",
                    "select",
                    "boolean"
                  ]
                }
              },
              "required": [
                "name",
                "value",
                "kind"
              ],
              "additionalProperties": false
            }
          },
          "placement": {
            "description": "Position relative to referenceBlockId; defaults to after.",
            "type": "string",
            "enum": [
              "before",
              "after"
            ]
          },
          "referenceBlockId": {
            "description": "Existing block id used as the insertion anchor. Omit to append.",
            "type": "string",
            "minLength": 1
          },
          "dry_run": {
            "description": "Preview without writing.",
            "type": "boolean"
          }
        },
        "required": [
          "body",
          "heading"
        ],
        "additionalProperties": false
      }
    }
    write_sectionsAction

    Add several sections atomically, or preview with dry_run. Percent inputs store whole percents (21 means 21 %) and reach formulas as ratios, so Price * (1 + TaxRate) is right and a percent slider runs 0 to 100. Formula examples: 1 + MortgageRate; Principal * Rate / 12; 5 km + 500 m. Use format number for counts and loan terms; unit year is a duration.

    View tool JSON
    {
      "name": "write_sections",
      "kind": "act",
      "impl": "imperative",
      "description": "Add several sections atomically, or preview with dry_run. Percent inputs store whole percents (21 means 21 %) and reach formulas as ratios, so Price * (1 + TaxRate) is right and a percent slider runs 0 to 100. Formula examples: 1 + MortgageRate; Principal * Rate / 12; 5 km + 500 m. Use format number for counts and loan terms; unit year is a duration.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dry_run": {
            "description": "Preview without writing.",
            "type": "boolean"
          },
          "sections": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "body": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "\\S",
                  "description": "One to three short paragraphs. Newlines start paragraphs; @name inserts a live value."
                },
                "formulas": {
                  "description": "Named formulas whose result is reused later.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "formula": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "\\S"
                      },
                      "name": {
                        "type": "string",
                        "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                      }
                    },
                    "required": [
                      "formula",
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "heading": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Section title."
                },
                "inputs": {
                  "description": "Assumptions the reader will change.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "type": "string",
                        "enum": [
                          "EUR",
                          "USD",
                          "GBP",
                          "UAH",
                          "PLN",
                          "CHF",
                          "CAD",
                          "AUD",
                          "JPY"
                        ]
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "format": {
                        "description": "number, currency, percent, or unit. A percent input stores whole percents: 21 means 21 %, and formulas receive it as the ratio 0.21.",
                        "type": "string",
                        "enum": [
                          "number",
                          "currency",
                          "percent",
                          "unit"
                        ]
                      },
                      "max": {
                        "description": "Slider upper bound, in the same scale as value. A percent slider runs 0 to 100, never 0 to 1.",
                        "type": "number"
                      },
                      "min": {
                        "description": "Slider lower bound, in the same scale as value.",
                        "type": "number"
                      },
                      "name": {
                        "type": "string",
                        "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                      },
                      "options": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "value": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "label",
                            "value"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "step": {
                        "type": "number"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "mm",
                          "cm",
                          "m",
                          "km",
                          "in",
                          "ft",
                          "yd",
                          "mile",
                          "mg",
                          "g",
                          "kg",
                          "lb",
                          "oz",
                          "s",
                          "min",
                          "hour",
                          "day",
                          "week",
                          "month",
                          "year",
                          "m2",
                          "km2",
                          "ha",
                          "ml",
                          "L",
                          "m3"
                        ]
                      },
                      "value": {
                        "type": "number",
                        "description": "The stored value. Whole percents for format percent: write 5 for 5 %, not 0.05."
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "number",
                          "slider",
                          "select",
                          "boolean"
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "value",
                      "kind"
                    ],
                    "additionalProperties": false
                  }
                },
                "placement": {
                  "description": "Position relative to referenceBlockId; defaults to after.",
                  "type": "string",
                  "enum": [
                    "before",
                    "after"
                  ]
                },
                "referenceBlockId": {
                  "description": "Existing block id used as the insertion anchor. Omit to append.",
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "body",
                "heading"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "sections"
        ],
        "additionalProperties": false
      }
    }
    update_blockAction

    Apply a partial update to one block in the open notebook.

    View tool JSON
    {
      "name": "update_block",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a partial update to one block in the open notebook.",
      "inputSchema": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "formula": {
                "type": "string",
                "minLength": 1,
                "pattern": "\\S"
              },
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "formula",
              "id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "level": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  }
                ]
              },
              "text": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "text"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "level": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  }
                ]
              }
            },
            "required": [
              "id",
              "level"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
              },
              "value": {
                "type": "number"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "EUR",
                  "USD",
                  "GBP",
                  "UAH",
                  "PLN",
                  "CHF",
                  "CAD",
                  "AUD",
                  "JPY"
                ]
              },
              "decimals": {
                "type": "integer",
                "minimum": 0,
                "maximum": 8
              },
              "format": {
                "type": "string",
                "enum": [
                  "number",
                  "currency",
                  "percent",
                  "unit"
                ]
              },
              "max": {
                "type": "number"
              },
              "min": {
                "type": "number"
              },
              "step": {
                "type": "number"
              },
              "unit": {
                "type": "string",
                "enum": [
                  "mm",
                  "cm",
                  "m",
                  "km",
                  "in",
                  "ft",
                  "yd",
                  "mile",
                  "mg",
                  "g",
                  "kg",
                  "lb",
                  "oz",
                  "s",
                  "min",
                  "hour",
                  "day",
                  "week",
                  "month",
                  "year",
                  "m2",
                  "km2",
                  "ha",
                  "ml",
                  "L",
                  "m3"
                ]
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
              },
              "value": {
                "type": "number"
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string"
                    },
                    "value": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
              },
              "value": {
                "type": "number"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          }
        ]
      }
    }
    update_blocksAction

    Update multiple blocks atomically.

    View tool JSON
    {
      "name": "update_blocks",
      "kind": "act",
      "impl": "imperative",
      "description": "Update multiple blocks atomically.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "blocks": {
            "minItems": 1,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "formula": {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "\\S"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "formula",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "level": {
                      "anyOf": [
                        {
                          "type": "number",
                          "const": 1
                        },
                        {
                          "type": "number",
                          "const": 2
                        },
                        {
                          "type": "number",
                          "const": 3
                        }
                      ]
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "level": {
                      "anyOf": [
                        {
                          "type": "number",
                          "const": 1
                        },
                        {
                          "type": "number",
                          "const": 2
                        },
                        {
                          "type": "number",
                          "const": 3
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "level"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "value": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string",
                      "enum": [
                        "EUR",
                        "USD",
                        "GBP",
                        "UAH",
                        "PLN",
                        "CHF",
                        "CAD",
                        "AUD",
                        "JPY"
                      ]
                    },
                    "decimals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 8
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "number",
                        "currency",
                        "percent",
                        "unit"
                      ]
                    },
                    "max": {
                      "type": "number"
                    },
                    "min": {
                      "type": "number"
                    },
                    "step": {
                      "type": "number"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "mm",
                        "cm",
                        "m",
                        "km",
                        "in",
                        "ft",
                        "yd",
                        "mile",
                        "mg",
                        "g",
                        "kg",
                        "lb",
                        "oz",
                        "s",
                        "min",
                        "hour",
                        "day",
                        "week",
                        "month",
                        "year",
                        "m2",
                        "km2",
                        "ha",
                        "ml",
                        "L",
                        "m3"
                      ]
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "value": {
                      "type": "number"
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "label",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
                    },
                    "value": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "required": [
          "blocks"
        ],
        "additionalProperties": false
      }
    }
    remove_blocksAction

    Remove one or more blocks from the open notebook in one operation.

    View tool JSON
    {
      "name": "remove_blocks",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one or more blocks from the open notebook in one operation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Block ids to remove."
          }
        },
        "required": [
          "ids"
        ],
        "additionalProperties": false
      }
    }
    remove_variableAction

    Remove an input variable. Refuses referenced variables unless force is true; never rewrites formulas or prose.

    View tool JSON
    {
      "name": "remove_variable",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove an input variable. Refuses referenced variables unless force is true; never rewrites formulas or prose.",
      "inputSchema": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "force": {
                "type": "boolean"
              },
              "name": {
                "type": "string",
                "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "force": {
                "type": "boolean"
              },
              "varId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "varId"
            ],
            "additionalProperties": false
          }
        ]
      }
    }
    replace_paragraphAction

    Replace all plain text in a paragraph block while preserving the block id.

    View tool JSON
    {
      "name": "replace_paragraph",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace all plain text in a paragraph block while preserving the block id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Paragraph block id."
          },
          "text": {
            "type": "string",
            "description": "Replacement plain text. @name inserts a live value."
          }
        },
        "required": [
          "id",
          "text"
        ],
        "additionalProperties": false
      }
    }
    insert_inline_refAction

    Insert an inline reference to a notebook variable into a paragraph.

    View tool JSON
    {
      "name": "insert_inline_ref",
      "kind": "act",
      "impl": "imperative",
      "description": "Insert an inline reference to a notebook variable into a paragraph.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "blockId": {
            "type": "string",
            "minLength": 1,
            "description": "Paragraph block id."
          },
          "offset": {
            "description": "Optional UTF-16 offset into the block's plain text, as get_document reports it; omit to append.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "variable": {
            "type": "string",
            "minLength": 1,
            "description": "Variable name to reference."
          }
        },
        "required": [
          "blockId",
          "variable"
        ],
        "additionalProperties": false
      }
    }
    set_variableAction

    Set the value of an existing variable in the open notebook.

    View tool JSON
    {
      "name": "set_variable",
      "kind": "act",
      "impl": "imperative",
      "description": "Set the value of an existing variable in the open notebook.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Variable name."
          },
          "value": {
            "type": "number",
            "description": "New finite numeric variable value."
          }
        },
        "required": [
          "name",
          "value"
        ],
        "additionalProperties": false
      }
    }
    list_scenariosAnswer

    List saved input scenarios and the active one.

    View tool JSON
    {
      "name": "list_scenarios",
      "kind": "answer",
      "impl": "imperative",
      "description": "List saved input scenarios and the active one.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    save_scenarioAction

    Save or overwrite a named input scenario.

    View tool JSON
    {
      "name": "save_scenario",
      "kind": "act",
      "impl": "imperative",
      "description": "Save or overwrite a named input scenario.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Scenario name."
          },
          "values": {
            "description": "Optional values keyed by input name.",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "number"
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    apply_scenarioAction

    Apply a named input scenario.

    View tool JSON
    {
      "name": "apply_scenario",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a named input scenario.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Scenario name."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    delete_scenarioSensitive Action

    Delete a named input scenario.

    View tool JSON
    {
      "name": "delete_scenario",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a named input scenario.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Scenario name."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }