traffic-webmcp.netlify.app
A signalized intersection a human and an AI agent operate together. The simulation runs entirely in the tab and exposes eight WebMCP tools.
First seen 2026-09-14 · Last seen 2026-09-14 · Source: webmcp.com
Answer 2 · Act 6 · Transact 0 · Score: Not yet scored
Tool inspector
play_sequence
Hand the operator a scrubbable, narrated walkthrough of your reasoning. Each step puts a timing — or a pair of timings — on the cycle diagram with a one-line caption. The operator can pause, scrub and replay it. Two kinds of step: - focus="structure" (default) draws the cycle diagram: where the phases sit, what a protected phase costs in cycle time. - focus="metrics" compares OUTCOMES side by side: mean wait, 95th percentile, left-turn wait, max queue, throughput. Requires compare_config. Use a metrics step whenever the argument is about tail delay, queues or throughput rather than phase layout. Two plans can be structurally near-identical and still differ by twenty seconds of 95th-percentile wait. The cycle diagram cannot show that; a metrics step can. REACH FOR THIS when the answer is structural and a diagram carries it better than a sentence: · the fastest timing is not the one you recommend · a phase was added or removed, and you want to show what it cost · the cycle length moved substantially, or the split rebalanced · the right answer differs between two scenarios · you are explaining a refusal, and the legal timing looks different When two plans are structurally near-identical but differ in outcome, do not skip the replay: use focus="metrics" instead. Fall back to prose only when neither structure nor outcomes differ meaningfully. A comparison step draws both timings to the same seconds-per-pixel scale, so a difference in cycle length is visible rather than asserted. Captions should say what changed and what it cost — the diagram already shows the shape, so do not narrate the shape. This does NOT change the committed timing. It is an explanation, not a deployment. Metrics for every referenced timing are re-measured here so the captions cannot drift from what is on screen.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
title |
string | yes | Short heading for the replay. |
steps |
array | yes | — |
scenario_id |
string | no | Scenario the metrics refer to. Defaults to active. |
Raw JSON schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 80,
"description": "Short heading for the replay."
},
"steps": {
"type": "array",
"minItems": 2,
"maxItems": 8,
"items": {
"type": "object",
"properties": {
"config": {
"type": "object",
"properties": {
"ns_green_s": {
"type": "number",
"minimum": 7,
"maximum": 90,
"description": "North–south through green, seconds."
},
"ew_green_s": {
"type": "number",
"minimum": 7,
"maximum": 90,
"description": "East–west through green, seconds."
},
"yellow_s": {
"type": "number",
"minimum": 4,
"maximum": 6,
"description": "Yellow after every green, seconds. Safety-derived floor of 4 s — see the min_yellow constraint."
},
"all_red_s": {
"type": "number",
"minimum": 2,
"maximum": 4,
"description": "All-red clearance, seconds. Safety-derived floor of 2 s — see the min_all_red constraint."
},
"left_protected": {
"type": "boolean",
"description": "Give NS left turns an exclusive phase."
},
"ns_left_green_s": {
"type": "number",
"minimum": 0,
"maximum": 30,
"description": "Protected left phase duration. Must be 0 when left_protected is false."
}
},
"required": [
"ns_green_s",
"ew_green_s",
"yellow_s",
"all_red_s",
"left_protected",
"ns_left_green_s"
],
"additionalProperties": false
},
"compare_config": {
"type": "object",
"properties": {
"ns_green_s": {
"type": "number",
"minimum": 7,
"maximum": 90,
"description": "North–south through green, seconds."
},
"ew_green_s": {
"type": "number",
"minimum": 7,
"maximum": 90,
"description": "East–west through green, seconds."
},
"yellow_s": {
"type": "number",
"minimum": 4,
"maximum": 6,
"description": "Yellow after every green, seconds. Safety-derived floor of 4 s — see the min_yellow constraint."
},
"all_red_s": {
"type": "number",
"minimum": 2,
"maximum": 4,
"description": "All-red clearance, seconds. Safety-derived floor of 2 s — see the min_all_red constraint."
},
"left_protected": {
"type": "boolean",
"description": "Give NS left turns an exclusive phase."
},
"ns_left_green_s": {
"type": "number",
"minimum": 0,
"maximum": 30,
"description": "Protected left phase duration. Must be 0 when left_protected is false."
}
},
"required": [
"ns_green_s",
"ew_green_s",
"yellow_s",
"all_red_s",
"left_protected",
"ns_left_green_s"
],
"additionalProperties": false,
"description": "Optional second timing, drawn beneath the first at the same time scale for direct comparison."
},
"caption": {
"type": "string",
"maxLength": 160,
"description": "One line on what this step shows. Say what changed and what it cost — the diagram already shows the shape."
},
"focus": {
"type": "string",
"enum": [
"structure",
"metrics"
],
"description": "structure (default) draws the cycle diagram. metrics compares outcomes side by side and requires compare_config."
},
"hold_ms": {
"type": "integer",
"minimum": 1200,
"maximum": 8000,
"description": "How long to dwell before advancing. Defaults to 3500."
}
},
"required": [
"config",
"caption"
],
"additionalProperties": false
}
},
"scenario_id": {
"type": "string",
"description": "Scenario the metrics refer to. Defaults to active."
}
},
"required": [
"title",
"steps"
],
"additionalProperties": false
}
Similar websites
eworker.ca
E-Worker is business infrastructure powered by AI, with focused apps and connected business work.
urban-planning-copilot.heisenbug.in
Urban Planning Copilot
vide.zerdalu.com
Vide
labspace-agent-twin.onrender.com
LabSpace Atlas — design laboratories, index exact locations, and let a browser agent plan, audit, and navigate the spatial twin.