Skip to main content
Glama
vandreus

UniFi MCP Server

by vandreus

find_device_by_mac

Locate specific network devices using MAC addresses to identify and manage equipment within UniFi infrastructure.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler function that normalizes the input MAC address, retrieves all devices using unifi.listAllDevices(), filters devices matching the MAC, and returns a JSON response with search details and matches.
    handler: async ({ mac }) => {
      const normalizedMac = mac.toLowerCase().replace(/[:-]/g, '');
      const allDevices = await unifi.listAllDevices();
      const devices = allDevices.data || [];
    
      const matches = devices.filter(d => {
        const deviceMac = (d.mac || '').toLowerCase().replace(/[:-]/g, '');
        return deviceMac === normalizedMac || deviceMac.includes(normalizedMac);
      });
    
      return {
        content: [{
          type: 'text',
          text: JSON.stringify({
            searchMac: mac,
            matchCount: matches.length,
            matches
          }, null, 2)
        }]
      };
    }
  • Zod schema defining the input parameter 'mac' as a string for the tool.
    schema: z.object({
      mac: z.string().describe('The MAC address to search for')
    }),
  • src/server.js:29-29 (registration)
    Registers the deviceTools module, including the find_device_by_mac tool, by calling registerToolsFromModule which invokes server.tool for each tool in the module.
    registerToolsFromModule(deviceTools);
  • src/server.js:3-3 (registration)
    Import of the deviceTools module containing the find_device_by_mac tool definition.
    import { deviceTools } from './tools/devices.js';

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vandreus/Unifi-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server