Connect compatible AI assistants to MACLookup for MAC address and IEEE prefix lookups, including OUI registrations. Look up registered organizations, process up to 50 inputs per call, and inspect address classifications and optional fingerprint candidates.
Registration data identifies a prefix assignee or company identifier, not a specific device. Fingerprint candidates indicate compatible address patterns, not confirmed devices or platforms.
Assistant → MACLookuptools/call
lookup_mac 00:1A:2B:3C:4D:5E
lookupStatus: matched
Ayecom Technology Co., Ltd.
001A2B / 24 bits MA-L
Recorded example · 4 November 2026 Registration data, not device identification.
Get connected
Connect your AI assistant
Add this endpoint to a client that supports remote Streamable HTTP MCP servers.
No API key or OAuth sign-in is required.
Production endpointStreamable HTTP · stateless
https://mcp.maclookup.app/mcp
Add the endpoint using your client’s remote MCP configuration.
Confirm that the client lists lookup_mac and batch_lookup_mac.
Ask the assistant to use MACLookup explicitly, then inspect the tool result.
Cursor
Merge this server into your existing project configuration.
Add this table to your existing Codex configuration, or run the CLI command below instead. After connecting, confirm that both MACLookup tools are listed.
In Antigravity IDE, open MCP Servers, select Manage MCP Servers, then View raw config. Merge this entry into your existing mcpServers configuration. For workspace-only setup, use .agents/mcp_config.json instead of the global file.
Configuration formats follow the linked client documentation. These instructions are not a certification of an editor or account connection.
Tool selection depends on your client, model and permissions. Ask the assistant to use MACLookup explicitly when you need a lookup, and inspect the tool result.
Registered organizations
Use MACLookup to group these MAC addresses by registered organization. Keep unmatched inputs separate, and label locally administered addresses without treating them as necessarily unmatched or randomized.
Fingerprint candidates
Analyze 02:42:0A:00:00:02 with MACLookup using include: ["classificationDetails", "fingerprint"]. Explain the evidence and limitations of each candidate without claiming that a running container was observed.
Available tools
Two read-only, idempotent tools. They look up supplied values without contacting devices. Results can change when the registry snapshot changes.
One address or prefix
lookup_mac
Look up a full Ethernet MAC or a 24-, 28- or 36-bit prefix. The result separates registration, address bits and optional signature analysis.
Full 48-bit MAC or 24-, 28- or 36-bit hexadecimal prefix. Maximum 80 UTF-8 bytes in the original input, before trimming or separator cleanup.
batch_lookup_mac
macAddresses
string[]
Yes
1–50 input strings. Each original string has the same 80-byte limit. Input order and duplicates are preserved.
Both
include
string[]
No
Optional output groups. Names are case-sensitive. Omit the field or pass an empty array for the core response. Unknown names fail the whole tool call; repeated options are computed once.
A batch shares one include list. Requested groups can be omitted when unavailable or inapplicable.
Optional output groups — include
Value
Meaning
formats
Full-MAC colon, hyphen, dotted and plain notation.
derivedAddresses
Theoretical modified EUI-64 and IPv6 link-local values for nonzero unicast full MACs.
addressRange
Matched global block bounds; omitted for CID and misses.
registryDates
Available registry-record update date; not an assignment or device observation date.
registrantDetails
Available registry postal details or a details-withheld indicator.
classificationDetails
First-octet I/G and U/L bits, plus a SLAP quadrant when applicable.
fingerprint
All active matching signature candidates, evidence references and context limits. Full MAC required.
Supported MAC addresses and prefixes
Accept full 48-bit Ethernet MAC addresses or exactly 24-, 28- or 36-bit hexadecimal prefixes. Leading zeros and address bits are preserved. EUI-64 inputs are not supported. The service does not perform Bluetooth-specific address interpretation or device identification.
Inputs are case-insensitive. Surrounding whitespace is trimmed; colons, hyphens, dots, underscores and ASCII spaces may be mixed. The original input must fit within 80 UTF-8 bytes before cleanup. Embedded tabs, embedded newlines and a 0x prefix are not supported.
For a full MAC or prefix, lookup selects the longest eligible registration prefix. The requested prefix length can differ from the matched registration length. Bits are not cleared to force a vendor match.
Registration, address-bit facts, automatic special-use classifications and optional fingerprints answer different questions. A signature candidate can coexist with no registry assignment. Registry country and postal data describe the registration, not a device’s location.
Locally administered does not mean randomized. Docker-, QEMU- or protocol-compatible bytes do not prove an active container, virtual machine or protocol. Keep all competing fingerprint candidates. Decoded IP values are candidates, not an IP inventory.
Some fingerprint rules require packet or frame context that this MCP tool does not accept as input. When contextStatus is missing, interpret the candidate using only the available address-pattern evidence; the missing context has not been checked. For example, ERPS-compatible 01:19:A7:00:00:01 retains its byte-pattern candidate but omits the decoded Ring ID because destination-role and Ethernet OAM context are missing.
Derived IPv6 and modified EUI-64 values are theoretical calculations. MACLookup does not check assignment, SLAAC use or reachability. A fingerprint-decoded IPv6 multicast group is not a device’s unicast IPv6 address.
Four independent result layers
Layer
What it tells you
Registry assignment
matched, not_found or invalid_input. assignment contains the actual matched prefix and registrant when available.
Address bits
For a full MAC: unicast, multicast or broadcast, plus universal or local administration. Prefixes have mac: null.
Special use
Automatic numeric-pattern facts and possible-use hints, independent of include and registration. Multiple facts can apply.
Fingerprint
Requested byte-compatible candidates, rule-pack version, source references and missing-context limits. Attribution labels are not measured probabilities.
Registration families
Family
Prefix length
Meaning
MA-L
24 bits
Global block · 16,777,216 addresses
MA-M
28 bits
Global block · 1,048,576 addresses
MA-S / IAB
36 bits
Global block · 4,096 addresses
CID
24 bits
Company identifier; no allocated global MAC-block count. Can match a local address.
Missing, empty and zero values
Value
Interpretation
assignment: null
No selected registration; a valid miss can still have useful bit facts or fingerprints.
registrant: null on a matched record
Organization details unavailable. detailsWithheld: true means registration details withheld, not a missing registration.
mac: null with query.kind: prefix
Full-MAC classification is inapplicable. Optional classificationDetails can describe prefix bits.
specialUse: null
No automatic catalog fact for this input.
fingerprint omitted
Not requested, or invalid input. Do not interpret as a negative analysis.
fingerprint.status: not_applicable
A prefix returns reason: requires_full_mac; fingerprint analysis requires a full MAC.
fingerprint.matches: []
No fingerprint rule matched this address.
Other requested groups omitted
Unavailable or inapplicable; omitted derivedAddresses does not prove absence of IPv6.
index: 0 · group: 0 · mdLevel: 0 · false
Real values. Preserve them along with empty arrays.
Limits and error handling
These production limits were checked against the server reference on 4 November 2026. MCP allowance is independent of REST API and website quotas. REST API keys do not increase it.
POSTs reaching quota admission count before protocol or tool validation, including initialization, discovery, notifications and schema-invalid calls. One batch costs one POST. Clients sharing a visible IP identity share allowance; IPv6 identities are grouped by /64.
Respect Retry-After when it is provided. Avoid immediate retry loops and unnecessary reinitialization. Check the documented error response before retrying; HTTP 200 alone does not establish that the tool call succeeded. Quota-rejected attempts increment both POST counters. Reduce batch size or optional groups after a response-budget error; no truncated success payload is promised.
HTTP 200 does not guarantee success. Inspect the JSON-RPC error, result.isError and every item’s lookupStatus. A valid registration miss is a normal result. GET on the transport endpoint returns 405; use /mcp/docs for the readable service reference.
Documented deployment limits
Limit
Allowance
Batch
1–50 inputs per call
Original input
80 UTF-8 bytes per string
POST requests
10 per second and 10,000 per six hours per IP identity
Request body
256 KiB
Complete response budget
4 MiB, including envelope and JSON text fallback
Concurrent POST capacity
64 per process
Failure layers
Layer
Handling
HTTP / connection
Handle method, Origin, body-size, capacity and unexpected content-type failures. Browser Origins need an explicit service allowlist.
JSON-RPC
Inspect the error object; HTTP 200 can carry a protocol error.
MCP tool
result.isError: true fails the whole call, including invalid argument schemas and recognizable quota rejections. Other quota failures can use HTTP 429.
Item validation
invalid_input affects one accepted string; valid batch siblings still execute. A wrong property/type, unknown include, empty or oversized batch fails the whole call.
Individual input error codes
Code
Cause
INPUT_TOO_LONG
Original UTF-8 bytes exceed the ceiling before normalization.
INVALID_MAC_FORMAT
Unsupported character remains after cleanup.
INVALID_PREFIX_LENGTH
Unsupported cleaned length below 12 hex digits.
UNSUPPORTED_ADDRESS_LENGTH
More than 12 hex digits.
Request and response examples
Recorded examples from production and test deployments; each example identifies its capture source and dataset. Dataset 2.2.26110320. These are recorded examples; opening them sends no lookup request.
Registered organization
Complete core response for one full MAC. Registration identifies the prefix assignee, not a specific device.
Captured on 4 November 2026 from the production deployment at https://mcp.maclookup.app/mcp. Server v18.2.0; protocol 2025-11-25; dataset 2.2.26110320.
Complete batch response for a registered MAC, a locally administered address with a Docker-compatible candidate, and an invalid input. Order and indices are preserved. The decoded IPv4 candidate does not establish an observed container or assigned IP. This JSON is the complete structuredContent payload, not the JSON-RPC envelope or the full MCP tool result.
Captured on 4 November 2026 from the production deployment at https://mcp.maclookup.app/mcp. Server v18.2.0; protocol 2025-11-25; dataset 2.2.26110320.
Recorded item at index 5 of the 50-input batch. Equivalent single-call arguments are shown; this response is a batch item, not a single-call envelope. This example resolves the requested 28-bit prefix to the 24-bit parent registration held by IEEE Registration Authority. It does not identify the organization holding a more specific assignment within that range. A full MAC address or a more specific prefix may resolve to a more specific registered organization.
Captured on 4 November 2026 from the test deployment. Dataset 2.2.26110320.
Recorded item at index 7 of the same batch. Docker-compatible bytes and the decoded IPv4 candidate do not establish an observed container or assigned IP.
Captured on 4 November 2026 from the test deployment. Dataset 2.2.26110320.
Extended batch example — 50 inputs (response excerpt)
Recorded 50-input request with a response excerpt showing positions 0, 7, 34 and 41. Other result rows are omitted. Duplicate positions remain separate; invalid input does not suppress valid siblings.
Captured on 4 November 2026 from the test deployment. Dataset 2.2.26110320.
Extract MAC addresses from this interface listing, then use batch_lookup_mac. Preserve order and duplicates, and keep invalid inputs separate.
Look up 70B3D5F. Explain the requested prefix length and the actual matched registration length.
Data and privacy
Your MCP client sends the address or prefix arguments required for each call. MACLookup does not scan your network, contact devices, collect an ARP table or require a raw interface listing. Extract addresses before submitting a batch.
Responses echo the submitted input. Your client and model provider may handle tool arguments and results under their own policies. Operational request metadata can include IP address, user agent and Cloudflare metadata; no zero-logging or retention guarantee is made here.
This guide uses recorded demonstration data. Opening this page or copying configuration does not execute an MCP lookup.
It returns a registration associated with a MAC prefix. The registered organization may differ from the finished device’s brand. A match does not identify its model, owner or current location.
Do I need an API key?
No. This MCP service accepts keyless requests. Adding a REST API key does not increase the MCP allowance.
Which addresses and prefixes are supported?
Full 48-bit Ethernet MACs and 24-, 28- or 36-bit hexadecimal prefixes. Supported separators are normalized. The input limit is 80 original UTF-8 bytes.
How many inputs can I submit together?
The production deployment accepts 1–50 strings through batch_lookup_mac. It preserves order and duplicates, and reports invalid address strings individually. Empty or oversized batches fail the whole call.
What happens if the exact prefix is not registered?
Lookup tries eligible shorter prefixes, most specific first. query keeps the requested prefix; assignment reports the actual selected registration. No eligible registration returns not_found.
Can a local address have a registration?
Yes. A CID can match a locally administered address. It identifies an organization without allocating a global MAC block. Local administration alone does not prove randomization.
Can MACLookup identify Docker, a virtual machine or a protocol?
Request include: ["fingerprint"] for byte-compatible candidates. They do not prove a running platform or observed protocol. Multiple candidates can match; missing frame context limits decoding.
Can I analyze a prefix with fingerprinting?
Registration lookup accepts supported prefixes. Fingerprinting requires a complete Ethernet MAC. Prefix analysis returns not_applicable with reason requires_full_mac.
Does a missing registration mean a rogue device?
No. It means no eligible registration was found in the loaded snapshot. Use inventory and network context before drawing security conclusions.
Are returned IPv6 addresses observed on my network?
Read source.datasetVersion and, when available, source.datasetUpdatedAt. The timestamp is the snapshot’s recorded update event, not a live IEEE check or device observation.
Why can HTTP 200 still contain an error?
MCP tool failures, including recognizable quota rejections, can use HTTP 200 with result.isError: true. Inspect protocol, tool and item errors, and respect Retry-After.
Does the server scan my network?
No. It looks up addresses or prefixes supplied by the client. It does not contact devices or observe traffic.
Will an assistant always use the server automatically?
No. Tool selection depends on the client, model, permissions and task. Ask the assistant to use MACLookup and inspect the tool result.
Technical reference and data version
Each result identifies its loaded registry snapshot. datasetUpdatedAt, when available, reports the snapshot’s recorded update event, not a live IEEE verification, a device observation or the serving replica’s load time.
These examples are snapshots, not live configuration. The server, protocol, application schema, dataset and fingerprint rule-pack have independent versions. Later requests can return different registrations.
Use a compatible MCP client or SDK to handle protocol negotiation and requests.
The served technical reference documents protocol framing and error handling. For recognizable quota-rejected tool calls, the tool error text reports the retry delay in seconds as well as the HTTP Retry-After header. If your client hides headers, inspect that error text; other HTTP failures may require access through the client or SDK. Do not assume every assistant reads headers automatically.