Skip to main content
Glama
Benniu
by Benniu

kick_mqtt_client

Disconnect a client from the MQTT broker using its client ID to manage connections and enforce access control.

Instructions

Disconnect a client from the MQTT broker by client ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYes

Implementation Reference

  • MCP tool handler for 'kick_mqtt_client'. Validates input, logs, delegates to EMQXClient.kick_client, and returns result. Also serves as registration via @mcp.tool decorator.
    @mcp.tool(name="kick_mqtt_client", description="Disconnect a client from the MQTT broker by client ID") async def kick_client(request): """Handle kick client request Args: request: MCP request containing client identifier - clientid: Client ID (required) - The unique identifier of the client to disconnect Returns: MCPResponse: Response object with the result of the disconnect operation """ self.logger.info("Handling kick client request") # Extract required client ID parameter clientid = request.get("clientid") if not clientid: self.logger.error("Client ID is required but was not provided") return {"error": "Client ID is required"} # Kick client from EMQX result = await self.emqx_client.kick_client(clientid) self.logger.info(f"Client '{clientid}' disconnect request processed") return result
  • Core helper method in EMQXClient that executes the HTTP DELETE request to /clients/{clientid} to disconnect the MQTT client.
    async def kick_client(self, clientid: str): """ Kick out (disconnect) a client from the MQTT broker. Uses the EMQX HTTP API to forcibly disconnect a client identified by its client ID. Args: clientid (str): The unique identifier of the client to disconnect Returns: dict: Response from the EMQX API or error information """ url = f"{self.api_url}/clients/{clientid}" self.logger.info(f"Kicking out client with ID: {clientid}") async with httpx.AsyncClient() as client: try: response = await client.delete( url, headers=self._get_auth_header(), timeout=30 ) response.raise_for_status() # For successful delete operations, return a success message if response.status_code == 204: # No Content return {"success": True, "message": f"Client {clientid} has been disconnected"} return self._handle_response(response) except Exception as e: self.logger.error(f"Error kicking out client {clientid}: {str(e)}") return {"error": str(e)}

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/Benniu/emqx-mcp-server'

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