{"ok":true,"site":{"host":"web-mcp-challenge.vercel.app","url":"https://web-mcp-challenge.vercel.app/","type":"live","desc":"Build, configure, and simulate network topologies in your browser.","tools":[{"name":"get_topology","kind":"answer","impl":"imperative","description":"Inspect the current NetLab topology. Returns every device and physical connection in the live network lab. Use this first when you need to understand which devices exist and how they are connected.","title":"Get topology","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_device_state","kind":"answer","impl":"imperative","description":"Inspect the current configuration of one device in NetLab. Use this when diagnosing a specific PC or router after discovering its ID through get_topology. deviceId must be the stable internal device ID, not the display name.","title":"Get device state","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"deviceId":{"type":"string","description":"Stable internal device ID from get_topology (for example pc-1 or router-2)."}},"required":["deviceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"test_connectivity","kind":"act","impl":"imperative","description":"Test bidirectional IP connectivity between two endpoint devices using NetLab's deterministic simulator. Returns success/failure, packet path, routing decisions and structured failure information. Use this when determining whether two devices can communicate or diagnosing where connectivity fails. Updates the human packet-trace UI; does not change topology or configuration.","title":"Test connectivity","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"sourceDeviceId":{"type":"string","description":"Stable internal ID of the source device from get_topology."},"destinationDeviceId":{"type":"string","description":"Stable internal ID of the destination device from get_topology."}},"required":["sourceDeviceId","destinationDeviceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_static_route","kind":"act","impl":"imperative","description":"Add one static route to an existing router in the live NetLab workspace. Use this only when the user wants the network configuration changed. Calls the same add-route action as the human inspector. deviceId must be a router ID from get_topology. destination must be a valid IPv4 CIDR. nextHop must be a valid IPv4 address on a connected network.","title":"Add static route","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"deviceId":{"type":"string","description":"Stable internal router ID from get_topology (for example router-2)."},"destination":{"type":"string","description":"IPv4 destination CIDR to add, for example 192.168.1.0/24."},"nextHop":{"type":"string","description":"IPv4 next-hop address, for example 10.0.0.1."}},"required":["deviceId","destination","nextHop"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_static_route","kind":"act","impl":"imperative","description":"Remove one static route from an existing router in the live NetLab workspace. Use this only when the user wants the network configuration changed. Prefer routeId from get_device_state. If routeId is unknown, provide both destination and nextHop. Calls the same remove-route action as the human inspector.","title":"Remove static route","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"deviceId":{"type":"string","description":"Stable internal router ID from get_topology."},"routeId":{"type":"string","description":"Stable route ID from get_device_state. Prefer this when available."},"destination":{"type":"string","description":"IPv4 destination CIDR of the route to remove, used with nextHop when routeId is not provided."},"nextHop":{"type":"string","description":"IPv4 next-hop of the route to remove, used with destination when routeId is not provided."}},"required":["deviceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"highlight_device","kind":"act","impl":"imperative","description":"Select a device on the shared NetLab canvas and open its inspector so the human can see it. Does not change network configuration. Use this to direct the human's attention to a specific device after diagnosing an issue.","title":"Highlight device","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"deviceId":{"type":"string","description":"Stable internal device ID from get_topology."}},"required":["deviceId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","favicon":"/favicons/web-mcp-challenge.vercel.app.jpg","apiSurface":"spec","toolCount":6}}