Skip to main content
Glama

bulc_create_room

Create rectangular rooms in building designs by specifying position, dimensions, and floor level for architectural planning and layout development.

Instructions

Create a new rectangular room at the specified position. All coordinates are in centimeters (cm). Use bulc_get_spatial_context first if you need to position relative to existing rooms. Example: To create a 5m x 4m room, use width=500, depth=400.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate of bottom-left corner in centimeters
yYesY coordinate of bottom-left corner in centimeters
widthYesRoom width in centimeters (X direction). 1m = 100cm
depthYesRoom depth in centimeters (Y direction). 1m = 100cm
nameNoRoom name for display (e.g., 'Living Room', '거실')
levelNoFloor level index. 0 = ground floor, 1 = first floor. Default: current level

Implementation Reference

  • Core handler logic for the 'bulc_create_room' tool. Validates input using CreateRoomSchema and sends a 'create_room' command to the BULC client via sendCommand.
    case "bulc_create_room": { const validated = CreateRoomSchema.parse(args); result = await client.sendCommand({ action: "create_room", params: validated, }); break; }
  • Zod validation schema used in the handler to parse and validate parameters for creating a rectangular room (x, y, width, depth, optional name and level).
    const CreateRoomSchema = z.object({ x: z.number(), y: z.number(), width: z.number().positive(), depth: z.number().positive(), name: z.string().optional(), level: z.number().int().optional(), });
  • src/tools/room.ts:8-49 (registration)
    Tool registration object defining name, description, input schema, and annotations for 'bulc_create_room' in the roomTools array, exposed to MCP ListTools.
    { name: "bulc_create_room", description: "Create a new rectangular room at the specified position. " + "All coordinates are in centimeters (cm). " + "Use bulc_get_spatial_context first if you need to position relative to existing rooms. " + "Example: To create a 5m x 4m room, use width=500, depth=400.", inputSchema: { type: "object" as const, properties: { x: { type: "number", description: "X coordinate of bottom-left corner in centimeters", }, y: { type: "number", description: "Y coordinate of bottom-left corner in centimeters", }, width: { type: "number", description: "Room width in centimeters (X direction). 1m = 100cm", }, depth: { type: "number", description: "Room depth in centimeters (Y direction). 1m = 100cm", }, name: { type: "string", description: "Room name for display (e.g., 'Living Room', '거실')", }, level: { type: "integer", description: "Floor level index. 0 = ground floor, 1 = first floor. Default: current level", }, }, required: ["x", "y", "width", "depth"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
  • src/index.ts:68-71 (registration)
    Routing logic in main MCP CallTool handler that dispatches 'bulc_*_room' tool calls to the specific handleRoomTool function.
    // Room tools if (name.startsWith("bulc_") && name.includes("room")) { return await handleRoomTool(name, safeArgs); }
  • src/index.ts:40-42 (registration)
    Includes roomTools (containing bulc_create_room) into the complete allTools list provided to MCP ListToolsRequestHandler.
    const allTools = [ ...contextTools, // 8 tools: spatial context, home info, levels, undo/redo, save ...roomTools, // 5 tools: create, create_polygon, list, modify, delete

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