Skip to content

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.

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, or
  • Authorization: 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.

ToolWhat it does
list_devicesList the devices in your fleet.
get_deviceFetch one device by id.
list_device_groupsList device groups (with alert config and shifts).
list_thresholdsList your reusable threshold packs.
list_shiftsList shift definitions.
get_anomaliesQuery anomaly events (filter by device and status; paginated).
ToolWhat it does
configure_deviceUpdate a device’s configuration (name, category, criticality, analysis interval, tags, location…).
acknowledge_anomalyMark an anomaly event as handled.
update_ticketUpdate a maintenance ticket (status, severity, assignment, notes…).
create_ticketOpen a maintenance ticket for a device.
set_thresholdCreate a reusable threshold pack.
create_device_groupCreate a notification group.
assign_shiftAssign an existing shift to a group.

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.

PromptArguments
onboard_device_fleetgroupId (optional), namePrefix (optional)
tune_thresholds_for_process_typeprocessType (required)
triage_anomalies_to_ticketsdeviceId (optional), status (default open)

The same three workflows also ship as portable Agent Skills that drive the CLI — see Skills.

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.