MCP server
The IoT Pulse MCP server exposes your tenant’s fleet to any Model Context Protocol client — Claude Desktop, Cursor, or an agent you build — as a set of read/write tools and a few packaged workflow prompts. It is the second front-end of the Developer Integration Platform, alongside the CLI and the Skills pack.
Like them, it is a thin wrapper over the public API: no business logic and no new endpoints. Your tenant and scopes are resolved server-side from your API key — you never pass a tenant id, and a key can only ever touch its own tenant’s data.
Connect
Section titled “Connect”The server speaks MCP over streamable HTTP at the /mcp path of your IoT Pulse
MCP server URL (your administrator provides the base URL; for local development
it defaults to http://localhost:3005/mcp).
Authenticate with the same scoped API key you use for the public API and CLI. Send it on every request as either header:
X-API-Key: iotp_your_key_here, orAuthorization: Bearer iotp_your_key_here.
A request with no key is rejected with 401 missing_api_key.
Most MCP clients are configured with a small JSON entry. For example:
{ "mcpServers": { "iotpulse": { "url": "https://<your-iotpulse-mcp-host>/mcp", "headers": { "X-API-Key": "iotp_your_key_here" } } }}Mint a key in the admin app under Settings → API Keys (the secret, format
iotp_…, is shown once at creation).
Every tool maps to a public API operation and requires the matching scope on your key.
Read tools
Section titled “Read tools”| Tool | What it does |
|---|---|
list_devices | List the devices in your fleet. |
get_device | Fetch one device by id. |
list_device_groups | List device groups (with alert config and shifts). |
list_thresholds | List your reusable threshold packs. |
list_shifts | List shift definitions. |
get_anomalies | Query anomaly events (filter by device and status; paginated). |
Write tools
Section titled “Write tools”| Tool | What it does |
|---|---|
configure_device | Update a device’s configuration (name, category, criticality, analysis interval, tags, location…). |
acknowledge_anomaly | Mark an anomaly event as handled. |
update_ticket | Update a maintenance ticket (status, severity, assignment, notes…). |
create_ticket | Open a maintenance ticket for a device. |
set_threshold | Create a reusable threshold pack. |
create_device_group | Create a notification group. |
assign_shift | Assign an existing shift to a group. |
Workflow prompts
Section titled “Workflow prompts”The server also exposes three packaged, multi-step workflows as MCP prompts.
Any MCP client lists them with the standard prompts/list call and fetches one
with prompts/get; the prompt expands into instructions that drive the tools
above.
| Prompt | Arguments |
|---|---|
onboard_device_fleet | groupId (optional), namePrefix (optional) |
tune_thresholds_for_process_type | processType (required) |
triage_anomalies_to_tickets | deviceId (optional), status (default open) |
The same three workflows also ship as portable Agent Skills that drive the CLI — see Skills.
Errors and limits
Section titled “Errors and limits”Because tools call the public API, they surface the same structured errors and
limits: 401 invalid_api_key, 403 insufficient_scope when your key lacks a
scope, 404 not_found, and per-key rate limiting (429). See the
public API reference for the full table.