{"ok":true,"site":{"host":"webmcp-macadress.pages.dev","url":"https://webmcp-macadress.pages.dev/","type":"live","desc":"A WebMCP workbench where a human and a browser agent triage a network's MAC addresses together: paste raw data, enrich it against macadress.com, filter, and export an allowlist.","tools":[{"name":"add_mac_addresses","kind":"act","impl":"imperative","description":"Extract every MAC address from a block of text (ARP table, DHCP leases, nmap/pcap output, a spreadsheet paste) and add each one to the inventory as a pending row.","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"Raw text containing MAC addresses in any common format."}},"required":["text"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_sample_data","kind":"act","impl":"imperative","description":"Load the bundled sample capture (a messy mix of ARP, DHCP and nmap output, about a dozen MAC addresses across real vendors, VMs and randomized addresses) into the input box and add every address to the inventory as a pending row. Use this to run the workflow without the human pasting data.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lookup_mac","kind":"answer","impl":"imperative","description":"Look up a single MAC address and add it to the inventory. Returns the full macadress.com record (vendor, device category, virtualization, special-use, randomization).","inputSchema":{"type":"object","properties":{"mac":{"type":"string","description":"A MAC address in any format (colon, hyphen, dotted, or bare hex)."}},"required":["mac"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"enrich_inventory","kind":"act","impl":"imperative","description":"Resolve every pending MAC address in the inventory against macadress.com. Safe to call repeatedly; only unresolved rows are fetched.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"summarize_inventory","kind":"answer","impl":"imperative","description":"Return counts across the enriched inventory: totals, how many are privacy-randomized, locally administered or unregistered, and breakdowns by vendor, device category and virtualization platform.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"filter_inventory","kind":"act","impl":"imperative","description":"Set the table filter so the human sees a specific slice. field is one of: all, randomized, unregistered, virtualization, vendor, device. For vendor and device also pass value.","inputSchema":{"type":"object","properties":{"field":{"type":"string","enum":["all","randomized","unregistered","virtualization","vendor","device"]},"value":{"type":"string","description":"Required when field is \"vendor\" (exact organization name) or \"device\" (category)."}},"required":["field"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_filter_list","kind":"act","impl":"imperative","description":"Turn the currently visible (filtered) rows into a text artifact: an nftables ether_addr set, a Zeek annotation file, or CSV. Use after filter_inventory to hand the human something actionable.","inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["nftables","zeek","csv"],"default":"nftables"}},"required":["format"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_inventory","kind":"act","impl":"imperative","description":"Remove every row and reset the filter. Use when starting a new investigation.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","apiSurface":"spec","toolCount":8}}