Skip to main content
Glama

bulc_modify_evac_stair

Modify evacuation stair properties like capacity, speed, and position to optimize building safety and compliance in fire simulations.

Instructions

Modify an existing evacuation stair configuration. Update capacity, speed, or position properties.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
furnitureIdYesFurniture ID of the stair to modify
entryXNoNew entry point X coordinate in cm
entryYNoNew entry point Y coordinate in cm
exitXNoNew exit point X coordinate in cm
exitYNoNew exit point Y coordinate in cm
widthNoNew stair width in meters
capacityNoNew maximum capacity
travelSpeedNoNew travel speed in m/s

Implementation Reference

  • Tool registration in evacTools array, defining name, description, input schema, and annotations for MCP tool listing.
    { name: "bulc_modify_evac_stair", description: "Modify an existing evacuation stair configuration. " + "Update capacity, speed, or position properties.", inputSchema: { type: "object" as const, properties: { furnitureId: { type: "string", description: "Furniture ID of the stair to modify", }, entryX: { type: "number", description: "New entry point X coordinate in cm", }, entryY: { type: "number", description: "New entry point Y coordinate in cm", }, exitX: { type: "number", description: "New exit point X coordinate in cm", }, exitY: { type: "number", description: "New exit point Y coordinate in cm", }, width: { type: "number", description: "New stair width in meters", }, capacity: { type: "integer", description: "New maximum capacity", }, travelSpeed: { type: "number", description: "New travel speed in m/s", }, }, required: ["furnitureId"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
  • Zod schema used for runtime input validation in the tool handler.
    const ModifyEvacStairSchema = z.object({ furnitureId: z.string(), 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(), });
  • Handler logic within handleEvacTool switch statement: validates input and sends 'modify_evac_stair' action to BULC client.
    case "bulc_modify_evac_stair": { const validated = ModifyEvacStairSchema.parse(args); result = await client.sendCommand({ action: "modify_evac_stair", params: validated, }); break; }
  • src/index.ts:40-51 (registration)
    MCP tool list registration: evacTools spread into allTools, returned by ListToolsRequestHandler.
    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 ];
  • Main MCP CallToolRequestHandler routing: dispatches 'bulc_*evac*' tools to handleEvacTool.
    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