Connhex MCP Server
Enables natural language interaction with Connhex IoT platform APIs for managing devices, telemetry, rules, and resources via MCP tools.
README
Connhex MCP Server
An MCP server that exposes Connhex APIs as tools.
Setup
Prerequisites
- Python 3.11+
- uvx
- A Connhex account with access to the target instance
Configure your MCP client
Add the server to your MCP client configuration.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"connhex": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/compiuta-origin/connhex-mcp-server",
"connhex-mcp"
],
"env": {
"CONNHEX_INSTANCE_URL": "<connhex-instance-url>",
"CONNHEX_USERNAME": "your-email@example.com",
"CONNHEX_PASSWORD": "your-password"
}
}
}
}
Authentication
The server requires CONNHEX_INSTANCE_URL set to the base URL of the Connhex instance you want to connect to.
Authentication is configured via CONNHEX_AUTH_TYPE (defaults to credentials):
| Auth type | Required env vars | Description |
|---|---|---|
credentials |
CONNHEX_USERNAME, CONNHEX_PASSWORD |
Logs in with username and password |
token |
CONNHEX_BEARER_TOKEN |
Uses a static bearer token |
session |
(none — provided via transport headers) | Forwards session from the client |
Transport
By default the server uses stdio. You can select a different transport by appending --transport to the args array:
"args": [
"--from",
"git+https://github.com/compiuta-origin/connhex-mcp-server",
"connhex-mcp",
"--transport",
"streamable-http"
]
Available transports: stdio, http, sse, streamable-http.
Updating
uvx caches the built environment on first run and does not re-fetch the git repo on subsequent invocations, so updates to this server are not picked up automatically. To pull the latest version, run:
uvx --refresh --from git+https://github.com/compiuta-origin/connhex-mcp-server connhex-mcp
Then restart your MCP client.
Available Tools
IAM
| Tool | Description |
|---|---|
whoami |
Return information about the currently authenticated user. |
Resources (JSON:API)
Generic CRUD over the Connhex resources service.
| Tool | Description |
|---|---|
list_resources |
List resources of a given type, with filtering, sorting, sparse fieldsets, and pagination. |
get_resource |
Get a specific resource by ID. |
create_resource |
Create a new resource. |
update_resource |
Partially update an existing resource. |
delete_resource |
Delete a resource (irreversible). |
get_schema |
Discover valid resource types, attributes, and relationships across both the resources and manufacturing services. |
Manufacturing (JSON:API)
Same CRUD shape as Resources, against the manufacturing service.
| Tool | Description |
|---|---|
list_manufacturing_resources |
List manufacturing resources. |
get_manufacturing_resource |
Get a manufacturing resource by ID. |
create_manufacturing_resource |
Create a manufacturing resource. |
update_manufacturing_resource |
Partially update a manufacturing resource. |
delete_manufacturing_resource |
Delete a manufacturing resource (irreversible). |
Reader (IoT messages)
Read messages from Connhex IoT channels. Supports the four CMP components (messages, params, infos, metrics) and decimation/aggregation for SenML formats.
| Tool | Description |
|---|---|
read_channel_messages |
Read messages from a channel by its channel ID. |
read_thing_messages |
Read messages for a thing (device/edge) by its thing ID (resolves the channel ID from the thing's metadata). |
Things
Manage IoT things (devices and edges) and inspect their connectivity.
| Tool | Description |
|---|---|
get_thing |
Get a single thing by ID, including its typed metadata (channels, device type...). |
list_things |
List things with optional name filter and pagination. |
get_things_status |
Get current connectivity status for a batch of things by their IDs. |
get_things_status_summary |
Fleet-wide connectivity summary: online, offline, never connected, active last hour. |
get_things_flapping |
List devices with an excessive number of reconnections within a time window. |
get_thing_uptime |
Connect/disconnect timeline and total uptime for a single thing in a time range. |
get_thing_channels |
List the channels connected to a specific thing. |
Models
Manage device models and browse the things assigned to them.
| Tool | Description |
|---|---|
get_model |
Get a single device model by ID. |
list_models |
List models with optional name, tag, and tenant filters. |
get_model_things |
List all things assigned to a specific device model. |
Rules Engine
Manage rules and inspect triggered rule events.
| Tool | Description |
|---|---|
list_rules |
List rules, with filtering and pagination. |
get_rule |
Get a single rule by ID. |
create_rule |
Create a new rule. |
update_rule |
Partially update an existing rule. |
delete_rule |
Delete a rule (irreversible). |
list_rule_events |
List rule events (triggered rule occurrences). |
Usage Examples
Identity
- "Who am I logged in as?"
Discover the data model
- "What resource types are available in this Connhex instance?"
- "What attributes does the
devicesresource type have?"
Browse and search resources
- "List all my devices."
- "Find devices whose serial starts with
ABC." - "Show me plants created in the last week."
- "Get device
<device-id>and include its related site." - "List the 50 most recently created devices, only showing
serialandname."
Create / update / delete resources
- "Create a new installation called
Installation A." - "Update device
<device-id>to set its name toBoiler 3." - "Delete installation
<installation-id>."
Manufacturing
- "List all manufacturing batches."
IoT messages (telemetry)
- "Show me the last 10 messages from thing
<thing-id>." - "Read messages from channel
<channel-id>between yesterday and today." - "Show me the daily max CPU usage (metrics) for device
<connhex-id>this week." - "Filter messages from channel
<channel-id>to only thetemperatureSenML name."
Things
- "List all things in this instance."
- "Get thing
<thing-id>and show me its event and control channel IDs." - "How many devices are currently online?"
- "Are there any devices that are reconnecting excessively?"
- "Show me the connectivity timeline for device
<thing-id>over the last 7 days." - "What channels is thing
<thing-id>connected to?"
Models
- "List all device models."
- "Show me all things assigned to model
<model-id>." - "Which model does thing
<thing-id>use?"
Rules Engine
- "List all enabled rules with severity
critical." - "Show me rule
<rule-id>." - "Disable rule
<rule-id>." - "Show me all rule events from the last 24 hours."
- "List events triggered by rule
<rule-id>between<from>and<to>."
Testing with MCP Inspector
You can test the server locally using MCP Inspector (requires Node.js):
export CONNHEX_INSTANCE_URL=<connhex-instance-url>
export CONNHEX_USERNAME=your-email@example.com
export CONNHEX_PASSWORD=your-password
./scripts/start-mcp-inspector.sh
For token-based auth:
export CONNHEX_INSTANCE_URL=<connhex-instance-url>
export CONNHEX_AUTH_TYPE=token
export CONNHEX_BEARER_TOKEN=your-token
./scripts/start-mcp-inspector.sh
This opens a browser UI where you can interactively call tools and inspect responses.
Development
Clone the repo and install dependencies:
git clone https://github.com/compiuta-origin/connhex-mcp-server.git
cd connhex-mcp-server
uv sync --dev
Run the server locally:
uv run connhex-mcp
Run tests and linting:
uv run pytest
uv run ruff check .
Privacy Policy
The Connhex MCP Server acts as a proxy between AI clients and a Connhex instance. It does not collect, store, or process data on its own behalf.
Data handling: All requests are forwarded exclusively to the Connhex instance URL configured by the operator (CONNHEX_INSTANCE_URL). No data is sent to any other third party.
Third-party services: The server communicates only with the configured Connhex instance. No analytics, telemetry, or tracking services are used.
Contact: For privacy-related inquiries, contact info@compiuta.com.
- Full privacy policy: https://connhex.com/legal/platform-privacy-notice
- Terms and Conditions: https://connhex.com/legal/terms-and-conditions
- Acceptable Use Policy: https://connhex.com/legal/acceptable-use-policy
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.