Server data from the Official MCP Registry
MCP server for Sparkplug B: node/device discovery, metrics, commands, host state over MQTT.
About
MCP server for Sparkplug B: node/device discovery, metrics, commands, host state over MQTT.
Security Report
This IoT MCP server collection exhibits good architectural design with appropriate authentication mechanisms and sensible permission scoping for its intended purpose. However, several moderate security concerns exist around credential handling in environment variables, missing input validation on user-supplied parameters, and insufficient error handling that could leak sensitive information. The servers are well-structured and follow security best practices like read-only defaults and explicit confirmation gates for destructive operations, but the findings warrant attention before production deployment. Supply chain analysis found 5 known vulnerabilities in dependencies (1 critical, 3 high severity). Package verification found 1 issue (1 critical, 0 high severity).
4 files analyzed · 15 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
Unverified package source
We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.
What You'll Need
Set these up before or after installing:
Environment variable: SPARKPLUG_MQTT_HOST
Environment variable: SPARKPLUG_HOST_ID
Environment variable: SPARKPLUG_MQTT_PORT
Environment variable: SPARKPLUG_MQTT_USERNAME
Environment variable: SPARKPLUG_MQTT_PASSWORD
Environment variable: SPARKPLUG_MQTT_USE_TLS
Environment variable: SPARKPLUG_GROUP_ID
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-nagarjunr-sparkplug-b": {
"env": {
"SPARKPLUG_HOST_ID": "your-sparkplug-host-id-here",
"SPARKPLUG_GROUP_ID": "your-sparkplug-group-id-here",
"SPARKPLUG_MQTT_HOST": "your-sparkplug-mqtt-host-here",
"SPARKPLUG_MQTT_PORT": "your-sparkplug-mqtt-port-here",
"SPARKPLUG_MQTT_USE_TLS": "your-sparkplug-mqtt-use-tls-here",
"SPARKPLUG_MQTT_PASSWORD": "your-sparkplug-mqtt-password-here",
"SPARKPLUG_MQTT_USERNAME": "your-sparkplug-mqtt-username-here"
},
"args": [
"aws-iot-core-mcp-server"
],
"command": "uvx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
IoT MCP Servers
MCP (Model Context Protocol) servers for IoT platforms — giving AI agents full read/write access to device registries, digital twins, and telemetry.
Servers
| Server | Platform | Tools | Package |
|---|---|---|---|
eclipse-ditto | Eclipse Ditto digital twins (open source; also compatible with Bosch IoT Things and other Ditto-based deployments) | 48 | |
mqtt | MQTT 5.0 — the standard IoT pub/sub protocol (any broker: Mosquitto, EMQX, HiveMQ, AWS IoT Core, etc.) | 7 | |
aws-iot-core | AWS IoT Core — device registry, shadows, jobs, rules, messaging | 48 | |
azure-iot-hub | Azure IoT Hub — device registry, twins, direct methods, jobs, messaging | 25 |
Each row links to that server's README for its full tool list, required environment variables, and setup/testing notes.
Structure
Each server is a standalone directory under this repo — its own pyproject.toml, uv.lock, Dockerfile, and mcp.json example config. No shared library layer: every server is independently runnable and dockerizable.
<server-name>/
├── <server-name>mcpserver.py # FastMCP server (single file)
├── pyproject.toml # own dependencies
├── uv.lock
├── Dockerfile
├── mcp.json # example MCP client config
└── README.md # tools, env vars, setup for this server
Requirements
- Python 3.12+
- uv for dependency management and running servers
- Docker, only if you want to run a server's own test suite against a real/emulated instance (see that server's README)
Quick start
Install straight from PyPI with uv or pipx — no clone needed:
uvx eclipse-ditto-mcp-server # or: mqtt5-mcp-server / aws-iot-core-mcp-server / azure-iot-hub-mcp-server
Or run from a clone of this repo:
git clone https://github.com/nagarjunr/iot-mcp-servers.git
cd iot-mcp-servers/<server-name>
uv sync
uv run <server-name>mcpserver.py
Each server reads its configuration from environment variables (connection strings, broker host, credentials, etc.) — see that server's README for the full list.
Using with an MCP client
Each server directory has an mcp.json with a ready-to-use client config example (Claude Desktop / VS Code / any MCP client). Copy the relevant block into your client's config, filling in the environment variables described in that server's README. All four servers are also listed on the official MCP registry under io.github.nagarjunr/<server-name>.
Design principles
- Read-only by default, writes explicit. Tools default to read/list operations. Any write tool is called out explicitly in that server's README. Create/replace tools default to create-only (
overwrite=False) — race-free via conditional headers where the target API supports them (e.g. Ditto'sIf-None-Match), otherwise a documented describe-then-create check. Delete tools, where a server needs them, require an explicitconfirm=True— there is no bulk/cascading delete. - No vendor lock-in. Connectors target the open protocol/API (e.g. Eclipse Ditto's HTTP API, the MQTT wire protocol), not a single vendor's proprietary extension of it, so they work against any compatible deployment. Exception: cloud-provider services like AWS IoT Core are inherently vendor-specific — no lock-in claim applies there, but no cross-vendor abstraction is invented either.
- Tested against the real thing, with documented exceptions where no free real instance exists. Each server is verified against a real instance of the target platform (usually via Docker), not hand-rolled mocks.
aws-iot-coreis tested against moto (AWS IoT Core has no free local emulator; LocalStack's IoT support requires a paid plan).azure-iot-hubis tested against respx for its REST tools; its one AMQP-only tool (send_c2d_message— Azure IoT Hub's cloud-to-device send has no REST binding) is tested against a local fake AMQP endpoint built for this repo, since no moto-equivalent exists for Azure and no free Azure IoT Hub emulator exists at all. Both are genuine emulators/protocol-level fakes, not naive mocks — see each server's README for specifics and caveats.
Contributing
Adding a new server? Follow the structure and design principles above, add its row to the Servers table, and make sure its test suite runs against a real or faithfully-emulated instance of the target platform (document any exception, as aws-iot-core and azure-iot-hub do). Issues and PRs welcome.
License
MIT — see LICENSE.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
