Skip to main content
Glama

bulc_modify_furniture

Adjust furniture properties like position, dimensions, rotation, and visibility in building designs. Update specific attributes without recreating items.

Instructions

Modify properties of an existing furniture item. Only specified properties will be changed. Get furniture IDs from bulc_list_furniture.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesFurniture ID to modify (from bulc_list_furniture)
xNoNew X coordinate (cm)
yNoNew Y coordinate (cm)
elevationNoNew elevation from floor (cm)
angleNoNew rotation angle (degrees)
widthNoNew width (cm)
depthNoNew depth (cm)
heightNoNew height (cm)
nameNoNew display name
visibleNoVisibility state

Implementation Reference

  • Executes the bulc_modify_furniture tool: validates input parameters using Zod schema and sends a 'modify_furniture' command with validated params to the BULC client.
    case "bulc_modify_furniture": { const validated = ModifyFurnitureSchema.parse(args); result = await client.sendCommand({ action: "modify_furniture", params: validated, }); break; }
  • Zod input validation schema for the bulc_modify_furniture tool parameters.
    const ModifyFurnitureSchema = z.object({ id: z.string(), x: z.number().optional(), y: z.number().optional(), elevation: z.number().optional(), angle: z.number().optional(), width: z.number().positive().optional(), depth: z.number().positive().optional(), height: z.number().positive().optional(), name: z.string().optional(), visible: z.boolean().optional(), });
  • MCP tool specification for bulc_modify_furniture: defines name, description, input schema, required fields, and annotations for tool listing.
    { name: "bulc_modify_furniture", description: "Modify properties of an existing furniture item. " + "Only specified properties will be changed. " + "Get furniture IDs from bulc_list_furniture.", inputSchema: { type: "object" as const, properties: { id: { type: "string", description: "Furniture ID to modify (from bulc_list_furniture)", }, x: { type: "number", description: "New X coordinate (cm)", }, y: { type: "number", description: "New Y coordinate (cm)", }, elevation: { type: "number", description: "New elevation from floor (cm)", }, angle: { type: "number", description: "New rotation angle (degrees)", }, width: { type: "number", description: "New width (cm)", }, depth: { type: "number", description: "New depth (cm)", }, height: { type: "number", description: "New height (cm)", }, name: { type: "string", description: "New display name", }, visible: { type: "boolean", description: "Visibility state", }, }, required: ["id"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
  • Dispatch routing in the MCP server's CallToolRequestHandler that routes bulc_modify_furniture calls to the furniture-specific handler.
    // Furniture tools if (name.startsWith("bulc_") && name.includes("furniture")) { return await handleFurnitureTool(name, safeArgs); }
  • src/index.ts:54-58 (registration)
    MCP server handler for ListToolsRequest that returns allTools array, which includes the bulc_modify_furniture specification via furnitureTools spread.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: allTools, }; });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/using76/BULC_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server