{"ok":true,"site":{"host":"modelo.dmytro.fyi","url":"https://modelo.dmytro.fyi/","type":"live","desc":"A local-first notebook where prose and a calculation model are one document. Agents edit it through native WebMCP tools.","tools":[{"name":"list_notebooks","kind":"answer","impl":"imperative","description":"List the notebooks in the Modelo workspace and identify the currently open notebook.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_document","kind":"answer","impl":"imperative","description":"Get ordered blocks and composition, so you can see whether the page reads like a story.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_model","kind":"answer","impl":"imperative","description":"Get slim variables, formulas, computed values, and evaluation errors from the open notebook.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"includeDependencies":{"description":"Include formula and paragraph block ids that use each variable.","type":"boolean"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_references","kind":"answer","impl":"imperative","description":"Find formula and paragraph block ids that reference one variable by name or stable varId.","annotations":{"readOnlyHint":true},"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}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_scenarios","kind":"answer","impl":"imperative","description":"List saved input scenarios and the active one.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/modelo.dmytro.fyi.svg","apiSurface":"spec","toolCount":23}}