Everything you need to install, configure, and run MQTTBridge.
| Requirement | Details |
|---|---|
| Operating System | Windows 10/11 or Windows Server 2016+ |
| .NET Runtime | .NET 10 ASP.NET Core Runtime (x64) |
| SQL Server | SQL Server 2016+ or SQL Server Express (free). The installer auto-detects localhost instances. |
| MQTT Broker | Any MQTT 3.1.1 or 5.0 broker (Mosquitto, HiveMQ, EMQX, etc.) |
Download and install the .NET 10 ASP.NET Core Runtime (x64) if not already installed.
If you don't have SQL Server, download SQL Server Express (free). The default instance works fine.
Download MQTTBridge-Setup.msi from the product page and run it. The installer will:
MQTTBridge database on your local SQL ServerIf you need to specify a different SQL Server instance, use the command line:
msiexec /i MQTTBridge-Setup.msi SQL_SERVER=myserver\SQLEXPRESS DB_NAME=MQTTBridge
The service is set to start automatically on boot. To start it now:
net start MQTTBridge
Or open services.msc, find "MQTT Bridge Service", and click Start.
Open your browser and go to http://localhost:8080
| Field | Default Value |
|---|---|
| Username | admin |
| Password | admin |
Change the default password after your first login from the Users section in the dashboard.
From the dashboard, go to the Configuration tab and enter your MQTT broker details:
localhost or your broker's IP)1883, or 8883 for TLS)sensors/# to capture all sensor topics)The installer configures this automatically. If you need to change it, go to the Configuration tab and update the database connection string. The default uses Windows Authentication:
Server=localhost;Database=MQTTBridge;Trusted_Connection=True;TrustServerCertificate=True;
Default port is 8080. To change it, edit appsettings.json in the install directory and update the WebManagement.Port value. Restart the service after changes.
MQTTBridge can also consume messages from RabbitMQ. Configure the RabbitMQ connection from the Configuration tab if needed.
Performance Columns let you extract JSON field values from message payloads into persisted computed columns on the MqttMessages table. Instead of parsing JSON on every query, SQL Server materializes the values at write time — turning expensive JSON_VALUE() calls into fast column reads.
Requirements: SQL Server 2016 or later, Professional or Enterprise license tier.
Open the Performance tab in the web dashboard. Fill in the form:
$.temperature, $.sensor.humidity)Click Create Performance Column. MQTTBridge executes an ALTER TABLE to add the persisted computed column and optionally creates the index — all within a single transaction.
If your MQTT payloads look like this:
{ "temperature": 22.5, "humidity": 61, "sensorId": "TH-042" }
You could create three performance columns:
| Column Name | JSON Path | Data Type | Indexed |
|---|---|---|---|
| Temperature | $.temperature | FLOAT | Yes |
| Humidity | $.humidity | INT | No |
| SensorId | $.sensorId | NVARCHAR(50) | Yes |
After creation, queries like SELECT * FROM MqttMessages WHERE Temperature > 30 use the indexed, persisted column instead of parsing JSON on every row.
Performance Columns can also be managed programmatically via the REST API:
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/performance-columns | List all performance columns |
| POST | /api/performance-columns | Create a new performance column |
| DELETE | /api/performance-columns/{columnName} | Remove a performance column |
All endpoints require JWT authentication. See the Swagger docs at /swagger for full request/response schemas.
Click the delete button next to any column in the Performance tab. MQTTBridge drops the index (if present), removes the computed column from the table, and cleans up the registry entry — all in a single transaction.
MQTTBridge runs in Trial mode for 7 days with limited features (5 topics, 1 user). No license file needed.
Your Machine ID is shown on the Status tab. Licenses are locked to a specific machine. If you need to move a license to a different server, contact support.
dotnet --list-runtimeslogs/services.msc → look for "SQL Server"MQTTBridge database exists in SQL ServerSetup-SqlAccess.ps1 from the install directory in an elevated PowerShellSetup-SqlAccess.ps1 from the install directorysc query MQTTBridgehttp://127.0.0.1:8080 instead of localhost