bulc_run_evac
Start evacuation simulation to analyze building safety using JuPedSim. Monitor progress with status checks for multi-level scenarios.
Instructions
Start evacuation simulation using JuPedSim. Returns immediately; use bulc_get_evac_status to monitor progress.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| multiLevel | No | Use multi-level simulation with stairs. Default: auto-detect |
Implementation Reference
- src/tools/evac.ts:989-996 (handler)Handler implementation for the 'bulc_run_evac' tool. It parses the input arguments using RunEvacSchema and sends the 'run_evac' action command to the BULC client via getBulcClient().case "bulc_run_evac": { const validated = RunEvacSchema.parse(args); result = await client.sendCommand({ action: "run_evac", params: validated, }); break; }
- src/tools/evac.ts:342-360 (schema)Tool definition object for 'bulc_run_evac' exported in evacTools array, including name, description, inputSchema for MCP tool discovery and validation.{ name: "bulc_run_evac", description: "Start evacuation simulation using JuPedSim. " + "Returns immediately; use bulc_get_evac_status to monitor progress.", inputSchema: { type: "object" as const, properties: { multiLevel: { type: "boolean", description: "Use multi-level simulation with stairs. Default: auto-detect", }, }, }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/tools/evac.ts:797-799 (schema)Zod schema used for runtime input validation in the handler for 'bulc_run_evac'.const RunEvacSchema = z.object({ multiLevel: z.boolean().optional(), });
- src/index.ts:54-58 (registration)MCP server registration of all tools (including 'bulc_run_evac' via evacTools spread into allTools) for the ListToolsRequest.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: allTools, }; });
- src/index.ts:135-137 (registration)Routing logic in main MCP CallToolRequestHandler that dispatches 'bulc_run_evac' (and other evac tools) to the handleEvacTool function.if (name.startsWith("bulc_") && name.includes("evac")) { return await handleEvacTool(name, safeArgs); }