Eclipse Ditto MCP server
MCP server for the Eclipse Ditto digital twin HTTP API (things, policies, connections, more).
0 stars23 downloads/wk
Reviews
Write oneNobody has reviewed Eclipse Ditto yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Eclipse Ditto tools (48, 20 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
claim_thingwrite actionSend a claim message to gain access to a thing. Wraps POST /things/{thingId}/inbox/claim.
count_thingsCount things matching a search filter, without fetching them.
create_connectionwrite actionCreate a new connection; its ID is generated by Ditto. Wraps POST /api/2/connections.
delete_connectionwrite actionDelete a connection. Wraps DELETE /api/2/connections/{connectionId}. Irreversible.
delete_featurewrite actionDelete a whole feature. Wraps DELETE /things/{thingId}/features/{featureId}.
delete_feature_definitionwrite actionRemove a feature's definition. Wraps DELETE .../features/{featureId}/definition.
delete_feature_propertieswrite actionDelete a feature's whole properties (or desiredProperties) object, or one property by path.
delete_policywrite actionDelete a policy. Wraps DELETE /api/2/policies/{policyId}. Irreversible.
delete_policy_entrywrite actionDelete one policy entry. Wraps DELETE /policies/{policyId}/entries/{label}.
delete_thingwrite actionDelete a thing. Wraps DELETE /api/2/things/{thingId}. Irreversible.
delete_thing_attributeswrite actionDelete a thing's whole attributes object, or one attribute by path.
delete_thing_definitionwrite actionRemove a thing's definition. Wraps DELETE /things/{thingId}/definition.
get_connectionFetch a connection's config. Wraps GET /api/2/connections/{connectionId}. Requires devops credentials.
get_connection_logsGet a connection's logs. Wraps GET /connections/{connectionId}/logs.
get_connection_metricsGet a connection's metrics. Wraps GET /connections/{connectionId}/metrics. Requires devops credentials.
get_connection_statusGet a connection's live status. Wraps GET /connections/{connectionId}/status. Requires devops credentials.
get_devops_configGet cluster-wide runtime configuration. Wraps GET /devops/config?path=... Requires devops credentials.
get_featureFetch a single feature (definition + properties + desiredProperties).
get_feature_definitionGet a feature's definition. Wraps GET .../features/{featureId}/definition.
get_feature_propertiesGet a feature's properties (or desiredProperties), or one property by path.
get_logging_configGet currently configured log levels. Wraps GET /devops/logging[/{moduleName}]. Requires devops credentials.
get_policyFetch a policy. Wraps GET /api/2/policies/{policyId}.
get_policy_entriesGet all policy entries, or one entry by label. Wraps GET /policies/{policyId}/entries[/{label}].
get_thingFetch the full digital twin (attributes and features) for a thing.
get_thing_attributesGet a thing's attributes, or one attribute by JSON pointer path.
get_thing_definitionGet a thing's definition (WoT model reference). Wraps GET /things/{thingId}/definition.
get_thing_featuresFetch only the feature state (sensor/actuator data) for a thing.
get_thing_policy_idGet the policy ID controlling access to a thing. Wraps GET /things/{thingId}/policyId.
get_thingsBulk-fetch multiple things by ID in one request.
list_connectionsList all configured connections. Wraps GET /api/2/connections. Requires devops credentials.
list_thingsSearch/list digital twins (things) registered in Ditto.
patch_thingwrite actionPartially update a thing (creates it if it doesn't exist yet).
poll_thing_changesOpen a short-lived SSE connection and collect live thing-change events.
put_featurewrite actionCreate or replace a whole feature. Wraps PUT /things/{thingId}/features/{featureId}.
put_policywrite actionCreate a new policy, or replace an existing one (with overwrite=True).
put_thingwrite actionCreate a new thing, or replace an existing one (with overwrite=True).
send_connection_commandwrite actionSend a lifecycle/diagnostic command to a connection. Wraps POST /connections/{connectionId}/command.
send_devops_piggybackwrite actionSend a low-level admin (piggyback) command to the Ditto cluster.
send_messagewrite actionSend a live message to (or from) a thing or one of its features.
set_feature_definitionSet a feature's definition. Wraps PUT .../features/{featureId}/definition.
set_feature_propertiesSet a feature's whole properties (or desiredProperties) object, or one property by path.
set_logging_configSet a log level for a logger. Wraps PUT /devops/logging[/{moduleName}]. Requires devops credentials.
set_policy_entrywrite actionCreate or replace one policy entry. Wraps PUT /policies/{policyId}/entries/{label}.
set_thing_attributesSet a thing's whole attributes object, or one attribute by path.
set_thing_definitionSet a thing's definition. Wraps PUT /things/{thingId}/definition.
set_thing_policy_idRepoint a thing at a different policy. Wraps PUT /things/{thingId}/policyId.
update_connectionwrite actionUpdate an existing connection's config. Wraps PUT /api/2/connections/{connectionId}.
whoamiReturn the identity Ditto has authenticated this connector as. Wraps GET /api/2/whoami.
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan4 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 51 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Eclipse Ditto compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 78/100
- higher than 57% of 48,273 servers
- Tools
- 48
- the typical server has 7
- Tools that change things
- 42%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 23
- more than 10% of 11,915 servers with a package
What its tools let an agent do: 22 read · 1 create · 13 change · 9 delete · 3 send or post
Install Eclipse Ditto in Claude Code, Cursor or VS Code
claude mcp add eclipse-ditto -- uvx eclipse-ditto-mcp-server
What the publisher says
From the Eclipse Ditto repository's README, as published. We do not edit it. Read it on GitHub
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
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 serverRequirements
- 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 / sparkplug-b-mcp-serverOr 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.pyEach 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
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Eclipse Ditto: common questions
- Is Eclipse Ditto MCP server safe?
- Mostly: it is graded B (78/100). Read the Eclipse Ditto safety report
- How do I install Eclipse Ditto?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Eclipse Ditto need an API key?
- Yes. The registry entry asks for
DITTO_PASSWORD,DITTO_BEARER_TOKEN,DITTO_DEVOPS_PASSWORD. - Is Eclipse Ditto maintained?
- The last commit was 90 days ago (2026-08-04). The latest release is v0.1.1.
- How does Eclipse Ditto compare with other MCP servers?
- safety score 78/100 (higher than 57% of 48,273 servers); tools 48 (the typical server has 7); tools that change things 42% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.