Skip to main content
Glama
vandreus

UniFi MCP Server

by vandreus

block_client

Block a client device from accessing the UniFi network to restrict unauthorized usage or manage network security.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • MCP tool handler for 'block_client'. Validates confirmation and invokes the underlying unifi.blockClient function.
    handler: async ({ hostId, siteId, mac, confirm }) => {
      if (!confirm) {
        return {
          content: [{
            type: 'text',
            text: 'Client block cancelled. Set confirm=true to proceed. Note: You can unblock the client later using unblock_client.'
          }]
        };
      }
      const result = await unifi.blockClient(hostId, siteId, mac);
      return {
        content: [{
          type: 'text',
          text: `Client ${mac} has been blocked. Use unblock_client to reverse this action. ${JSON.stringify(result, null, 2)}`
        }]
      };
    }
  • Zod input schema defining parameters: hostId, siteId, mac, confirm.
    schema: z.object({
      hostId: z.string().describe('The host ID'),
      siteId: z.string().describe('The site ID'),
      mac: z.string().describe('The client MAC address'),
      confirm: z.boolean().describe('Confirm you want to block this client')
    }),
  • Tool definition and registration object for 'block_client' within clientTools module.
    block_client: {
      description: 'Block a client from the network. The client will be disconnected and prevented from reconnecting.',
      schema: z.object({
        hostId: z.string().describe('The host ID'),
        siteId: z.string().describe('The site ID'),
        mac: z.string().describe('The client MAC address'),
        confirm: z.boolean().describe('Confirm you want to block this client')
      }),
      handler: async ({ hostId, siteId, mac, confirm }) => {
        if (!confirm) {
          return {
            content: [{
              type: 'text',
              text: 'Client block cancelled. Set confirm=true to proceed. Note: You can unblock the client later using unblock_client.'
            }]
          };
        }
        const result = await unifi.blockClient(hostId, siteId, mac);
        return {
          content: [{
            type: 'text',
            text: `Client ${mac} has been blocked. Use unblock_client to reverse this action. ${JSON.stringify(result, null, 2)}`
          }]
        };
      }
    },
  • src/server.js:30-30 (registration)
    Registers all tools from clientTools (including block_client) to the MCP server.
    registerToolsFromModule(clientTools);
  • Underlying helper function that performs the UniFi Cloud API POST request to block the client.
    export async function blockClient(hostId, siteId, mac) {
      const response = await cloudApi.post(`/v1/hosts/${hostId}/sites/${siteId}/clients/${mac}/block`);
      return response.data;
    }

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