Skip to main content
Glama
vandreus

UniFi MCP Server

by vandreus

find_devices_by_name

Locate UniFi network devices by their name to manage and monitor your infrastructure through the UniFi Cloud API.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The main handler function for the 'find_devices_by_name' tool. It normalizes the query, retrieves all devices using unifi.listAllDevices(), filters devices by name or model containing the query, and returns a formatted JSON response with search results.
    handler: async ({ query }) => {
      const queryLower = query.toLowerCase();
      const allDevices = await unifi.listAllDevices();
      const devices = allDevices.data || [];
    
      const matches = devices.filter(d => {
        const name = (d.name || d.model || '').toLowerCase();
        return name.includes(queryLower);
      });
    
      return {
        content: [{
          type: 'text',
          text: JSON.stringify({
            searchQuery: query,
            matchCount: matches.length,
            matches
          }, null, 2)
        }]
      };
    }
  • Zod input schema for the tool, requiring a 'query' string parameter.
    schema: z.object({
      query: z.string().describe('The search query for device name')
    }),
  • src/server.js:28-32 (registration)
    Registration of the deviceTools module (which contains 'find_devices_by_name') into the MCP server via registerToolsFromModule, which calls server.tool() for each tool in the module.
    registerToolsFromModule(networkTools);
    registerToolsFromModule(deviceTools);
    registerToolsFromModule(clientTools);
    registerToolsFromModule(protectTools);
    registerToolsFromModule(accessTools);
  • src/server.js:16-25 (registration)
    Helper function used to register each tool from a module object like deviceTools, by invoking MCP server's tool() method with name, schema, handler, and description.
    const registerToolsFromModule = (toolsModule) => {
      Object.entries(toolsModule).forEach(([name, toolConfig]) => {
        server.tool(
          name,
          toolConfig.schema,
          toolConfig.handler,
          { description: toolConfig.description }
        );
      });
    };

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