EMQX MCP Server
@Benniu
A Model Context Protocol (MCP) server implementation that provides EMQX MQTT broker interaction.
Overview
What is EMQX MCP Server?
A Model Context Protocol (MCP) server that provides EMQX MQTT broker interaction, enabling MCP clients to manage MQTT clusters on EMQX Cloud or self-hosted deployments.
How to use EMQX MCP Server?
Install via Smithery, Docker, or manual clone with uv. Configure EMQX_API_URL, EMQX_API_KEY, and EMQX_API_SECRET environment variables pointing to your EMQX cluster, then add the server configuration to your Claude Desktop App claude_desktop_config.json.
Key features of EMQX MCP Server
- List, inspect, and disconnect MQTT clients
- Publish messages with QoS and retention control
- Subscribe to topics via SSE with duration and message limits
- Flexible client filtering by node, username, client ID
- Support for EMQX Cloud and self-hosted clusters
Use cases of EMQX MCP Server
- List all connected MQTT clients and inspect their details
- Publish custom messages (e.g. poems, sensor data) to any topic
- Subscribe to a topic for a set time and collect incoming messages
- Disconnect problematic or stale clients from the broker
- Manage MQTT infrastructure through natural language prompts in Claude
FAQ from EMQX MCP Server
How do I set up an EMQX cluster to use this server?
You can use EMQX Cloud Serverless (free), EMQX Cloud Dedicated, or a self-hosted EMQX Platform. All require a configured API Key and client authentication.
Does the subscribe_mqtt_topic tool work with self-hosted EMQX?
No, the subscribe tool uses an SSE endpoint that is only available on EMQX Cloud deployments. Self-hosted deployments may not support it.
What environment variables are needed?
EMQX_API_URL (your cluster’s API v5 endpoint), EMQX_API_KEY, and EMQX_API_SECRET must be set for the server to authenticate.
Can I filter clients by IP address or username?
Yes, the list_mqtt_clients tool supports filtering by node, client ID, username, IP address, connection state, and more, including fuzzy search patterns.
What is the maximum number of clients I can retrieve in one call?
The list_mqtt_clients tool accepts a limit parameter with a maximum of 10,000 results per page.