← WebMCP Directory

Tool tree

webmcp-macadress.pages.dev

Developer ToolsTools verified
Website
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.
Explore capabilities
    add_mac_addressesAction

    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.

    View tool JSON
    {
      "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"
        ]
      }
    }
    load_sample_dataAction

    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.

    View tool JSON
    {
      "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": {}
      }
    }
    lookup_macAnswer

    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).

    View tool JSON
    {
      "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"
        ]
      }
    }
    enrich_inventoryAction

    Resolve every pending MAC address in the inventory against macadress.com. Safe to call repeatedly; only unresolved rows are fetched.

    View tool JSON
    {
      "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": {}
      }
    }
    summarize_inventoryAnswer

    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.

    View tool JSON
    {
      "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": {}
      }
    }
    filter_inventoryAction

    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.

    View tool JSON
    {
      "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"
        ]
      }
    }
    export_filter_listAction

    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.

    View tool JSON
    {
      "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"
        ]
      }
    }
    clear_inventoryAction

    Remove every row and reset the filter. Use when starting a new investigation.

    View tool JSON
    {
      "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": {}
      }
    }