{"openapi":"3.1.0","info":{"title":"Mender Fleet Insights (BYOK) API","version":"0.1.0","description":"Mender Fleet Insights (BYOK) lets an AI assistant read your own Mender Fleet Insights data through the Mender Fleet Insights API with a key you supply (Mender personal access token (US hosted server hosted.mender.io; EU accounts use another host)). Read-only: 7 tools (list_cloud_integrations, list_integration_events, get_device_cloud_state, list_filterable_attributes, list_searchable_attributes,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mender-fleet-insights.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mender-fleet-insights/docs"},"termsOfService":"https://connectorbay.com/byok-mender-fleet-insights/terms"},"servers":[{"url":"https://byok-mender-fleet-insights.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mender-fleet-insights/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_cloud_integrations":{"post":{"operationId":"list_cloud_integrations","summary":"List the cloud integrations configured for the tenant (Azure IoT Hub, Google IoT Core, AWS or webhook) with id, provider","description":"List the cloud integrations configured for the tenant (Azure IoT Hub, Google IoT Core, AWS or webhook) with id, provider, credential type and description. Secrets are not returned. Use for \"Which cloud integrations does my Mender tenant have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 500).","title":"Per Page"}},"title":"list_cloud_integrationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_integration_events":{"post":{"operationId":"list_integration_events","summary":"List the stored integration events (device provisioned, decommissioned or status changed) with type, time and delivery s","description":"List the stored integration events (device provisioned, decommissioned or status changed) with type, time and delivery statuses. Use for \"What integration events did Mender record recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 500).","title":"Per Page"}},"title":"list_integration_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device_cloud_state":{"post":{"operationId":"get_device_cloud_state","summary":"Get the desired and reported state of one device as held by its cloud integrations. Use for \"What is the cloud-reported ","description":"Get the desired and reported state of one device as held by its cloud integrations. Use for \"What is the cloud-reported state of Mender device dev-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"device_id":{"description":"Device id from the Mender inventory.","maxLength":80,"title":"Device Id","type":"string"}},"required":["device_id"],"title":"get_device_cloud_stateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_filterable_attributes":{"post":{"operationId":"list_filterable_attributes","summary":"List the inventory attributes that can be used to filter devices, with their scope, plus how many are in use and the ten","description":"List the inventory attributes that can be used to filter devices, with their scope, plus how many are in use and the tenant limit. Use for \"Which inventory attributes can I filter my Mender devices by\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_filterable_attributesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_searchable_attributes":{"post":{"operationId":"list_searchable_attributes","summary":"List the device attributes known to the search index with scope and how many devices report each. Use for \"Which device ","description":"List the device attributes known to the search index with scope and how many devices report each. Use for \"Which device attributes can I search on in Mender and how common are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_searchable_attributesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_group_devices":{"post":{"operationId":"list_group_devices","summary":"List the ids of the devices in a device group. Use for \"Which Mender devices are in the group 'field'\".","description":"List the ids of the devices in a device group. Use for \"Which Mender devices are in the group 'field'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_name":{"description":"Device group name.","maxLength":80,"title":"Group Name","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (1 to 500).","title":"Per Page"}},"required":["group_name"],"title":"list_group_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device_group":{"post":{"operationId":"get_device_group","summary":"Get the group a device belongs to. Use for \"Which group is Mender device dev-1 in\".","description":"Get the group a device belongs to. Use for \"Which group is Mender device dev-1 in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"device_id":{"description":"Device id from the Mender inventory.","maxLength":80,"title":"Device Id","type":"string"}},"required":["device_id"],"title":"get_device_groupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}