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
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/devices.js:143-163 (handler)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) }] }; } - src/tools/devices.js:140-142 (schema)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 } ); }); };