Skip to main content
Glama
vandreus

UniFi MCP Server

by vandreus

get_cameras_status_summary

Retrieve a summary of camera operational statuses and connectivity details to monitor surveillance system health and identify offline or problematic cameras.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The main handler function for the 'get_cameras_status_summary' tool. It fetches the list of cameras from the UniFi host, processes them to compute summary statistics (total count, online/offline status, recording status, privacy mode, model breakdown), compiles a list of camera details, and returns a JSON-formatted text response.
    handler: async ({ hostId }) => {
      const camerasResponse = await unifi.listCameras(hostId);
      const cameras = camerasResponse.data || [];
    
      const summary = {
        total: cameras.length,
        online: 0,
        offline: 0,
        recording: 0,
        privacyMode: 0,
        byModel: {},
        cameras: []
      };
    
      cameras.forEach(cam => {
        // Count by status
        if (cam.state === 'CONNECTED' || cam.isConnected) {
          summary.online++;
        } else {
          summary.offline++;
        }
    
        // Count recording
        if (cam.isRecording) {
          summary.recording++;
        }
    
        // Count privacy mode
        if (cam.privacyMode) {
          summary.privacyMode++;
        }
    
        // Count by model
        const model = cam.model || 'Unknown';
        summary.byModel[model] = (summary.byModel[model] || 0) + 1;
    
        // Add camera info
        summary.cameras.push({
          id: cam.id,
          name: cam.name,
          model: cam.model,
          state: cam.state,
          isRecording: cam.isRecording,
          privacyMode: cam.privacyMode
        });
      });
    
      return {
        content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }]
      };
    }
  • Zod schema defining the input parameters for the tool: requires a 'hostId' string.
    schema: z.object({
      hostId: z.string().describe('The host ID')
    }),
  • src/server.js:31-31 (registration)
    The protectTools module, which exports the 'get_cameras_status_summary' tool definition (including handler and schema), is registered here using registerToolsFromModule. This makes the tool available in the MCP server.
    registerToolsFromModule(protectTools);

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