Skip to main content
Glama
using76
by using76

bulc_setup_evac_stair

Destructive

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);
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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