emqx-mcp-server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows interaction with MQTT clusters on EMQX Cloud or self-hosted clusters, enabling clients to list connected MQTT clients, retrieve client information, disconnect clients, and publish messages to MQTT topics

Servidor MCP EMQX

Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que permite la interacción con el agente MQTT de EMQX. Permite a los clientes MCP interactuar con los clústeres MQTT en EMQX Cloud o en clústeres alojados por ellos mismos.

Características

Gestión de clientes MQTT

  • Listado de clientes: vea todos los clientes MQTT conectados con opciones de filtrado flexibles
  • Información del cliente: recupera información detallada sobre clientes específicos
  • Control de conexión: desconecte del bróker a los clientes problemáticos o inactivos
  • Filtrado flexible: filtre clientes por nodo, nombre de usuario, ID de cliente, estado de conexión y más

Publicación de mensajes MQTT

  • Publicación basada en temas: envía mensajes a cualquier tema MQTT
  • Control de QoS: seleccione el nivel de calidad de servicio (0, 1 o 2) para una entrega confiable
  • Retención de mensajes: opción para conservar los mensajes para los nuevos suscriptores
  • Cargas útiles personalizadas: compatibilidad con cualquier formato de contenido de mensajes

Herramientas

lista_clientes_mqtt

  • Enumere los clientes MQTT conectados a su clúster EMQX
  • Entradas:
    • página (número, opcional): Número de página (predeterminado: 1)
    • límite (número, opcional): Resultados por página (predeterminado: 100, máximo 10000)
    • nodo (cadena, opcional): filtrar por nombre de nodo específico
    • clientid (cadena, opcional): Filtrar por ID de cliente específico
    • nombre de usuario (cadena, opcional): filtrar por nombre de usuario específico
    • ip_address (cadena, opcional): Filtrar por dirección IP del cliente
    • conn_state (cadena, opcional): Filtrar por estado de conexión
    • clean_start (booleano, opcional): Filtrar por indicador de inicio limpio
    • proto_ver (cadena, opcional): Filtrar por versión del protocolo
    • like_clientid (cadena, opcional): Búsqueda difusa por patrón de ID de cliente
    • like_username (cadena, opcional): búsqueda difusa por patrón de nombre de usuario
    • like_ip_address (cadena, opcional): Búsqueda difusa por patrón de dirección IP

obtener_cliente_mqtt

  • Obtenga información detallada sobre un cliente MQTT específico por ID de cliente
  • Entradas:
    • clientid (cadena, obligatoria): el identificador único del cliente a recuperar

cliente kick_mqtt

  • Desconectar un cliente del agente MQTT por ID de cliente
  • Entradas:
    • clientid (cadena, obligatoria): el identificador único del cliente que se desconectará

publicar_mensaje_mqtt

  • Publicar un mensaje MQTT en su clúster EMQX en EMQX Cloud o en una implementación autoadministrada
  • Entradas:
    • tema (cadena, obligatorio): tema MQTT en el que publicar
    • carga útil (cadena, obligatoria): contenido del mensaje a publicar
    • qos (número, opcional): nivel de calidad de servicio (0, 1 o 2) (valor predeterminado: 0)
    • retener (booleano, opcional): si se debe conservar el mensaje (valor predeterminado: falso)

Configurar el clúster EMQX

Antes de usar las herramientas del servidor EMQX MCP, debe configurar un clúster EMQX con la clave API y la autenticación de cliente correctamente configuradas. Existen varias opciones:

  1. Implementación sin servidor en la nube de EMQX:
  • La forma más fácil de empezar.
  • Obtenga una implementación sin servidor gratuita de EMQX Cloud
  • Regístrese en EMQX Cloud Serverless
  1. Implementación dedicada en la nube de EMQX:
  • Proporciona recursos dedicados para cargas de trabajo de producción
  • Ofrece un rendimiento mejorado, confiabilidad y opciones de personalización.
  • Admite varios proveedores de nube (AWS, GCP, Azure)
  • Incluye SLA y soporte profesional
  • Crear una implementación en EMQX Cloud Dedicated
  1. Plataforma EMQX autohospedada:
  • Descargue e implemente la plataforma EMQX localmente
  • Siga las instrucciones de instalación en la Plataforma EMQX

Ejecutándose localmente con la aplicación de escritorio Claude

Opción 1: Instalación mediante herrería

Para instalar emqx-mcp-server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @Benniu/emqx-mcp-server --client claude

Opción 2: Docker

  1. Instale la aplicación de escritorio Claude si aún no lo ha hecho.
  2. Tire de la imagen:
    docker pull benniuji/emqx-mcp-server
  3. Agregue lo siguiente a su archivo claude_desktop_config.json :
    • En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
    • En Windows: %APPDATA%/Claude/claude_desktop_config.json
    { "mcpServers": { "EMQX_MCP_Server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "EMQX_API_URL=https://your-emqx-cloud-instance.com:8443/api/v5", "-e", "EMQX_API_KEY=<YOUR-API-KEY>", "-e", "EMQX_API_SECRET=<YOUR-API-SECRET>", "benniuji/emqx-mcp-server" ] } } }

    Nota: Actualice las variables de entorno: EMQX_API_URL , EMQX_API_KEY , EMQX_API_SECRET

  4. Abrir o reiniciar la aplicación Claude Desktop
  5. Intenta pedirle a Claude que haga algo con el agente MQTT (por ejemplo, pedirle que publique un mensaje MQTT en un tema).

Opción 3: Instalación manual

Primero, asegúrate de tener instalado el ejecutable uv . De lo contrario, puedes instalarlo siguiendo las instrucciones aquí .

  1. Instale la aplicación de escritorio Claude si aún no lo ha hecho.
  2. Clonar este repositorio.
  3. Agregue lo siguiente a su archivo claude_desktop_config.json :
    • En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
    • En Windows: %APPDATA%/Claude/claude_desktop_config.json GXP4

    Nota: asegúrese de actualizar path/to/repo/src/emqx_mcp_server a la ruta real y modificar las variables de entorno EMQX_API_URL , EMQX_API_KEY y EMQX_API_SECRET para que coincidan con su instancia de EMQX.

  4. Abrir o reiniciar la aplicación Claude Desktop
  5. Intenta pedirle a Claude que haga algo con el agente MQTT (por ejemplo, pedirle que publique un mensaje MQTT en un tema).

Ejemplos de indicaciones

Usuario:

Please list the clients connected to the MQTT broker.

Maestría en Derecho:

Here are the clients currently connected to your MQTT broker: Connected Client: - Client ID: mqttx_2232bdb1 - Username: test - Protocol: MQTT v5 ... There is currently 1 client connected to your MQTT broker. Would you like more detailed information about this specific client or would you like to perform another action with your MQTT broker?

Usuario:

Yes, please provide the detail info of this client.

Maestría en Derecho:

I'll retrieve the detailed information for this client for you. ... Here's the detailed information for client "mqttx_2232bdb1": **Basic Information:** - **Client ID:** mqttx_2232bdb1 - **Username:** test ... **Connection Details:** - **Connected:** Yes - **Created At:** 2025-03-02T05:29:51.103+00:00 ... Would you like to perform any actions with this client, such as publishing a message to a topic or disconnecting the client?

Usuario:

Please write a poem and send it to the topic '/poem' with QoS 1.

Maestría en Derecho:

I'll create a poem and publish it to the topic '/poem' with QoS 1. Let me do that for you. ... I've successfully published the poem to the topic '/poem' with QoS 1. The message has been delivered with ID: 00062F55A1EFB1156ABC481240B30000. The poem I sent was: - Signals in the ether, - Invisible threads that bind, - Devices speak in whispers, - Across the digital divide. - Messages like leaves falling, - From cloud to waiting ground, - Connected yet untethered, - Where silence makes no sound. - Brokers of the modern age, - Routing dreams from here to there, - In this web of connections, - We find ourselves everywhere. - Like stars in constellation, - Each point of light has worth, - The language of machines, - Redefining our Earth. Is there anything else you'd like to do with your MQTT broker?

Usuario:

Please kick out the client mqttx_2232bdb1

Maestría en Derecho

I'll disconnect the client from the MQTT broker for you. ... The client has been successfully disconnected. The system returned: > Client mqttx_2232bdb1 has been disconnected The MQTT client with ID "mqttx_2232bdb1" is now disconnected from your broker. Is there anything else you would like to do with your MQTT broker?

Licencia

Este proyecto está licenciado bajo la licencia Apache versión 2.0: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Una implementación de servidor de Protocolo de contexto de modelo (MCP) que proporciona interacción con el agente MQTT EMQX.

  1. Features
    1. MQTT Client Management
    2. MQTT Message Publishing
  2. Tools
    1. list_mqtt_clients
    2. get_mqtt_client
    3. kick_mqtt_client
    4. publish_mqtt_message
  3. Setup EMQX Cluster
    1. Running locally with the Claude Desktop App
      1. Option 1: Installing via Smithery
      2. Option 2: Docker
      3. Option 3: Manual Installation
    2. Example Prompts
      1. License
        ID: m7zgbcr053