Skip to main content
Glama
using76
by using76

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