Skip to main content
Glama
using76
by using76

bulc_setup_evac_stair

Configure furniture as evacuation stairs between floors to define entry/exit points, capacity, and travel speed for building safety simulations.

Instructions

Configure a furniture item as an evacuation stair connection between floors. Defines entry/exit positions, capacity, and travel speed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
furnitureIdYesFurniture ID to configure as stair
fromFloorYesSource floor index (0=ground floor)
toFloorYesDestination floor index
entryXNoEntry point X coordinate in cm
entryYNoEntry point Y coordinate in cm
exitXNoExit point X coordinate in cm
exitYNoExit point Y coordinate in cm
widthNoStair width in meters. Default: 1.2
capacityNoMax people on stair at once. Default: 10
travelSpeedNoTravel speed in m/s. Default: 0.6

Implementation Reference

  • Specific handler case for 'bulc_setup_evac_stair' tool within the main handleEvacTool function. Validates input parameters using SetupEvacStairSchema and forwards the command to the BULC client backend.
    case "bulc_setup_evac_stair": {
      const validated = SetupEvacStairSchema.parse(args);
      result = await client.sendCommand({
        action: "setup_evac_stair",
        params: validated,
      });
      break;
  • MCP tool schema definition including name, description, detailed input schema, and annotations. Part of the evacTools array.
    {
      name: "bulc_setup_evac_stair",
      description:
        "Configure a furniture item as an evacuation stair connection between floors. " +
        "Defines entry/exit positions, capacity, and travel speed.",
      inputSchema: {
        type: "object" as const,
        properties: {
          furnitureId: {
            type: "string",
            description: "Furniture ID to configure as stair",
          },
          fromFloor: {
            type: "integer",
            description: "Source floor index (0=ground floor)",
          },
          toFloor: {
            type: "integer",
            description: "Destination floor index",
          },
          entryX: {
            type: "number",
            description: "Entry point X coordinate in cm",
          },
          entryY: {
            type: "number",
            description: "Entry point Y coordinate in cm",
          },
          exitX: {
            type: "number",
            description: "Exit point X coordinate in cm",
          },
          exitY: {
            type: "number",
            description: "Exit point Y coordinate in cm",
          },
          width: {
            type: "number",
            description: "Stair width in meters. Default: 1.2",
          },
          capacity: {
            type: "integer",
            description: "Max people on stair at once. Default: 10",
          },
          travelSpeed: {
            type: "number",
            description: "Travel speed in m/s. Default: 0.6",
          },
        },
        required: ["furnitureId", "fromFloor", "toFloor"],
      },
      annotations: {
        readOnlyHint: false,
        destructiveHint: true,
      },
    },
  • Zod runtime validation schema matching the MCP inputSchema, used in the handler for safe parameter parsing.
    const SetupEvacStairSchema = z.object({
      furnitureId: z.string(),
      fromFloor: z.number().int().min(0),
      toFloor: z.number().int().min(0),
      entryX: z.number().optional(),
      entryY: z.number().optional(),
      exitX: z.number().optional(),
      exitY: z.number().optional(),
      width: z.number().positive().optional(),
      capacity: z.number().int().positive().optional(),
      travelSpeed: z.number().positive().optional(),
    });
  • src/index.ts:40-51 (registration)
    Registration of all tool schemas including evacTools (containing bulc_setup_evac_stair) into the combined allTools array, provided to MCP ListToolsRequest.
    const allTools = [
      ...contextTools,      // 8 tools: spatial context, home info, levels, undo/redo, save
      ...roomTools,         // 5 tools: create, create_polygon, list, modify, delete
      ...wallTools,         // 5 tools: create, create_rectangle, list, modify, delete
      ...furnitureTools,    // 5 tools: catalog, place, list, modify, delete
      ...fdsDataTools,      // 7 tools: get, fire_source, detector, sprinkler, hvac, thermocouple, clear
      ...meshTools,         // 5 tools: list, create, auto, modify, delete
      ...simulationTools,   // 4 tools: get_settings, time, output, ambient
      ...fdsRunTools,       // 6 tools: preview, validate, export, run, status, stop
      ...resultTools,       // 5 tools: open_viewer, list_datasets, point_data, aset, report
      ...evacTools,         // 25 tools: setup, stairs, agents, run, results, advanced features
    ];
  • src/index.ts:135-137 (registration)
    Routing logic in main MCP CallToolRequest handler that directs 'bulc_setup_evac_stair' (matches 'evac') calls to the evac-specific handleEvacTool dispatcher.
    if (name.startsWith("bulc_") && name.includes("evac")) {
      return await handleEvacTool(name, safeArgs);
    }

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