roomwright-phi.vercel.app
A 3D room planner where a person and an AI agent lay out a real room together.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 5 · Act 5 · Transact 1 · Score: Not yet scored
Tool inspector
compose_tool
Define a new tool out of the existing ones when a task needs several steps every time. Give a snake_case name, a description, named parameters ({name: {type, description, required, default}}), and ordered steps that call registered tools with templated args: "{{params.x_in}}" for a parameter, "{{steps.0.placed.x_in}}" for a field of an earlier step, "{{= steps.0.placed.x_in + 6}}" for arithmetic. A step that fails stops the run unless it is marked optional. The new tool is registered with WebMCP immediately (see getTools) and kept in this browser. Steps call registered tools only, so a composed tool is as safe as the tools it is made of.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | yes | snake_case name, e.g. lamp_on_nightstand |
description |
string | yes | what the tool does and when to use it |
parameters |
object | no | named inputs: {x_in: {type: "integer", description: "...", required: true}} |
steps |
array | yes | ordered calls: [{tool: "search_catalog", args: {category: "nightstand"}}, ...] |
returns |
object | no | optional result mapping with templates, e.g. {lamp_id: "{{steps.2.placement_id}}"} |
Raw JSON schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "snake_case name, e.g. lamp_on_nightstand"
},
"description": {
"type": "string",
"description": "what the tool does and when to use it"
},
"parameters": {
"type": "object",
"description": "named inputs: {x_in: {type: \"integer\", description: \"...\", required: true}}",
"additionalProperties": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"string",
"number",
"integer",
"boolean"
]
},
"description": {
"type": "string"
},
"required": {
"type": "boolean"
},
"default": {}
},
"required": [
"type"
]
}
},
"steps": {
"type": "array",
"description": "ordered calls: [{tool: \"search_catalog\", args: {category: \"nightstand\"}}, ...]",
"minItems": 1,
"maxItems": 12,
"items": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "a registered tool name"
},
"args": {
"type": "object",
"description": "arguments, strings may contain {{templates}}"
},
"optional": {
"type": "boolean",
"description": "keep going if this step fails"
}
},
"required": [
"tool"
]
}
},
"returns": {
"type": "object",
"description": "optional result mapping with templates, e.g. {lamp_id: \"{{steps.2.placement_id}}\"}"
}
},
"required": [
"name",
"description",
"steps"
],
"additionalProperties": false
}
Similar websites
econsor.de
German digital agency building portals, e-commerce sites and online marketing, combining strategy, design and AI to grow clients' visibility and customer base.
inkframe-eta.vercel.app
Browser-native Elah video editor for 9:16 and 16:9 exports
agentdesk-demo.vercel.app
Meridian Ops
eworker.ca
E-Worker is business infrastructure powered by AI, with focused apps and connected business work.