{"ok":true,"site":{"host":"webmcp-factory","url":"https://bandarra.me/apps/webmcp-factory/","desc":"Build & test WebMCP tools in-browser","type":"demo","category":"Developer Tools","tools":[{"name":"get_state","kind":"read","impl":"imperative","description":"Returns the current factory state (inventory and all device trays) as a JSON string.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"load","kind":"action","impl":"imperative","description":"Moves items from inventory into a device input tray. device must be exactly \"smelter\", \"forge\", or \"assembler\".","inputSchema":{"type":"object","properties":{"device":{"type":"string","enum":["smelter","forge","assembler"]},"item":{"type":"string"},"qty":{"type":"number"}},"required":["device","item","qty"]},"page":"/"},{"name":"unload","kind":"action","impl":"imperative","description":"Moves items from a device input tray back to inventory. device must be exactly \"smelter\", \"forge\", or \"assembler\".","inputSchema":{"type":"object","properties":{"device":{"type":"string","enum":["smelter","forge","assembler"]},"item":{"type":"string"},"qty":{"type":"number"}},"required":["device","item","qty"]},"page":"/"},{"name":"smelt","kind":"action","impl":"imperative","description":"Runs the Smelter. You MUST call the relevant recipe skill before loading anything. On success the tray is cleared and output goes directly to inventory — do NOT call unload after a successful run.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"forge","kind":"action","impl":"imperative","description":"Runs the Forge. You MUST call the relevant recipe skill before loading anything. On success the tray is cleared and output goes directly to inventory — do NOT call unload after a successful run.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"assemble","kind":"action","impl":"imperative","description":"Runs the Assembler. You MUST call the relevant recipe skill before loading anything. On success the tray is cleared and output goes directly to inventory — do NOT call unload after a successful run.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"mine_iron_ore","kind":"action","impl":"imperative","description":"Mines 1 Iron Ore and adds it to inventory.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"mine_copper_ore","kind":"action","impl":"imperative","description":"Mines 1 Copper Ore and adds it to inventory.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_recipe_iron_plate","kind":"action","impl":"imperative","description":"Recipe for smelting Iron Ore into Iron Plates.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_recipe_iron_gear","kind":"action","impl":"imperative","description":"Recipe for forging Iron Plates into an Iron Gear.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_recipe_copper_plate","kind":"action","impl":"imperative","description":"Recipe for smelting Copper Ore into Copper Plates.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_recipe_copper_coil","kind":"action","impl":"imperative","description":"Recipe for assembling a Copper Plate into Copper Coils.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_recipe_electric_motor","kind":"action","impl":"imperative","description":"Recipe for assembling an Iron Gear and Copper Coils into an Electric Motor.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_assemble_electric_motor","kind":"action","impl":"imperative","description":"Call this first when asked to build an Electric Motor. Returns the complete step-by-step manufacturing protocol.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"skill_salvage_iron_plate","kind":"action","impl":"imperative","description":"Protocol for recovering an Iron Plate by dismantling an Iron Gear when Iron Ore is depleted.","inputSchema":{"type":"object","properties":{}},"page":"/"},{"name":"post_comment","kind":"action","impl":"declarative","description":"Leave a blog post comment","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"website":{"type":"string"},"author_name":{"type":"string"},"author_email":{"type":"string"},"text":{"type":"string"}},"required":["author_name","text"]},"page":"/posts/bringing-the-agent-loop-to-the-web"}],"_scrape":{"etag":null,"lastModified":"Thu, 28 May 2026 13:33:00 GMT","scrapedAt":"2026-05-28T13:33:23.483Z"},"apiSurface":"spec","prominence":3,"favicon":"/favicons/webmcp-factory.png","toolCount":16}}