{"serverId":"pulsemcp/ai-homedesign","tools":[{"name":"create_order","fixed":{"name":"create_order","description":"Upload one or more images and create an order. Provide `image_urls` (public\n    URLs) and/or `image_base64` (raw base64 or data: URLs) — you can use either.\n\n    Returns `order_id` and an `assets` list whose `id`s you map to a tool's input\n    slot when running a process. For two-image tools pass roles like\n    ['primary_angle','secondary_angle'] (or 'mask' for mask tools).","inputSchema":{"type":"object","title":"create_orderArguments","properties":{"image_urls":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Image Urls","default":null},"project_id":{"type":"string","title":"Project Id","default":""},"asset_roles":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Asset Roles","default":null},"image_base64":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Image Base64","default":null}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":259,"tokensAfter":259},{"name":"create_project","fixed":{"name":"create_project","description":"Create a project (a container that groups all work for one property).\n    Returns the new project's `id`.","inputSchema":{"type":"object","title":"create_projectArguments","required":["address"],"properties":{"address":{"type":"string","title":"Address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"describe_tool","fixed":{"name":"describe_tool","description":"Show the input slots, widgets and selectable options for one tool, plus a\n    ready-to-use example payload for `run_process`. Use this before `run_process`\n    when you need the exact widget/item slugs for a tool.","inputSchema":{"type":"object","title":"describe_toolArguments","required":["tool_slug"],"properties":{"tool_slug":{"type":"string","title":"Tool Slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"get_order","fixed":{"name":"get_order","description":"Fetch an order, including its input assets and any processes run on it.","inputSchema":{"type":"object","title":"get_orderArguments","required":["order_id"],"properties":{"order_id":{"type":"string","title":"Order Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"get_process","fixed":{"name":"get_process","description":"Fetch a process: its `status` (pending/processing/done/failed) and, when\n    done, the `final_assets` with downloadable result image URLs. If a webhook\n    result has already arrived for this process, it is returned immediately.","inputSchema":{"type":"object","title":"get_processArguments","required":["process_id"],"properties":{"process_id":{"type":"string","title":"Process Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"get_project","fixed":{"name":"get_project","description":"Fetch a single project by id.","inputSchema":{"type":"object","title":"get_projectArguments","required":["project_id"],"properties":{"project_id":{"type":"string","title":"Project Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"list_capabilities","fixed":{"name":"list_capabilities","description":"List every AI HomeDesign tool this MCP can run, grouped by category.\n\n    Returns each tool's slug, display name, description and whether it needs\n    one or two input images. Start here to discover what is available.","inputSchema":{"type":"object","title":"list_capabilitiesArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"list_projects","fixed":{"name":"list_projects","description":"List your projects (paginated). Optional free-text `search` on address.","inputSchema":{"type":"object","title":"list_projectsArguments","properties":{"page":{"type":"integer","title":"Page","default":1},"limit":{"type":"integer","title":"Limit","default":10},"search":{"type":"string","title":"Search","default":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"list_styles","fixed":{"name":"list_styles","description":"List the allowed design styles, room types and widget options. With no\n    argument, returns the global style/room/area lists. With a tool_slug, returns\n    that tool's widgets and their allowed values. The staging/design helpers\n    ONLY accept these values — anything else is rejected before calling the API.","inputSchema":{"type":"object","title":"list_stylesArguments","properties":{"tool_slug":{"type":"string","title":"Tool Slug","default":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"remove_items","fixed":{"name":"remove_items","description":"Auto-detect and remove furniture/clutter from a room photo (decluttering),\n    leaving a clean empty space. No style needed. Provide image_url OR image_base64.","inputSchema":{"type":"object","title":"remove_itemsArguments","properties":{"wait":{"type":"boolean","title":"Wait","default":true},"image_url":{"type":"string","title":"Image Url","default":""},"project_id":{"type":"string","title":"Project Id","default":""},"image_base64":{"type":"string","title":"Image Base64","default":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"run_process","fixed":{"name":"run_process","description":"Start an AI job on an existing order (full control over every tool).\n\n    `asset_map` maps each of the tool's input-slot keys to an asset id from the\n    order. `widgets` is the raw list of {slug, item_slugs}. Use `describe_tool`\n    to get the exact slugs. Returns `process_ids` to poll with `get_process`.","inputSchema":{"type":"object","title":"run_processArguments","required":["order_id","tool","asset_map"],"properties":{"tool":{"type":"string","title":"Tool"},"widgets":{"anyOf":[{"type":"array","items":{}},{"type":"null"}],"title":"Widgets","default":null},"order_id":{"type":"string","title":"Order Id"},"asset_map":{"type":"object","title":"Asset Map","additionalProperties":true},"process_group_id":{"type":"string","title":"Process Group Id","default":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":226,"tokensAfter":226}],"toolsChanged":11,"tokensSaved":0,"todo":[{"tool":"change_ceiling","params":["wait","space","image_url","project_id","image_base64"]},{"tool":"change_floor","params":["wait","space","image_url","project_id","image_base64"]},{"tool":"change_wall","params":["wait","space","image_url","project_id","image_base64"]},{"tool":"create_order","params":["image_urls","project_id","asset_roles","image_base64"]},{"tool":"create_project","params":["address"]},{"tool":"day_to_dusk","params":["wait","options","image_url","sky_style","project_id","image_base64"]},{"tool":"describe_tool","params":["tool_slug"]},{"tool":"enhance_image","params":["area","wait","options","image_url","project_id","image_base64"]},{"tool":"get_order","params":["order_id"]},{"tool":"get_process","params":["process_id"]},{"tool":"get_project","params":["project_id"]},{"tool":"interior_design","params":["wait","space","style","image_url","project_id","image_base64"]},{"tool":"list_projects","params":["page","limit","search"]},{"tool":"list_styles","params":["tool_slug"]},{"tool":"remove_items","params":["wait","image_url","project_id","image_base64"]},{"tool":"run_process","params":["tool","widgets","order_id","asset_map","process_group_id"]},{"tool":"virtual_restaging","params":["wait","space","style","image_url","project_id","image_base64"]},{"tool":"virtual_staging","params":["wait","space","style","image_url","project_id","image_base64"]},{"tool":"wait_for_result","params":["process_id","poll_seconds","timeout_seconds"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}