{"openapi":"3.1.0","info":{"title":"Mender (BYOK) API","version":"0.1.0","description":"Mender (BYOK) lets an AI assistant read your own Mender data through the Mender API with a key you supply (Mender personal access token (US hosted server hosted.mender.io; EU accounts use another host)). Read-only: 11 tools (get_tenant, list_inventory_devices, get_inventory_device, list_device_authentication, count_devices_by_status, list_groups, list_deployments, get_deployment_statistics,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mender.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mender/docs"},"termsOfService":"https://connectorbay.com/byok-mender/terms"},"servers":[{"url":"https://byok-mender.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mender/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/get_tenant":{"post":{"operationId":"get_tenant","summary":"Show your Hosted Mender organization: name, plan, status, trial, device count and limit. The tenant token is not returne","description":"Show your Hosted Mender organization: name, plan, status, trial, device count and limit. The tenant token is not returned. Use for \"How many devices does my Mender organization have and what is the limit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_tenantArguments","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_inventory_devices":{"post":{"operationId":"list_inventory_devices","summary":"List devices with their inventory: system attributes (OS, device type, installed artifact, last check-in), identities an","description":"List devices with their inventory: system attributes (OS, device type, installed artifact, last check-in), identities and update time. Use for \"Which devices are in my Mender fleet and what software do they run\".","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":10,"description":"How many results per page (default 10).","title":"Per Page"},"group":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices in this group name.","title":"Group"},"has_group":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for devices in a group, false for ungrouped ones.","title":"Has Group"},"sort":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Sort by attribute, for example 'artifact_name:asc'.","title":"Sort"}},"title":"list_inventory_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_inventory_device":{"post":{"operationId":"get_inventory_device","summary":"Get one device's inventory: attributes with scope (system, identity, inventory, monitor, tags) and update time. Use for ","description":"Get one device's inventory: attributes with scope (system, identity, inventory, monitor, tags) and update time. Use for \"What software does Mender device 6f1b3a5c run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Mender device id (a UUID).","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_inventory_deviceArguments","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_device_authentication":{"post":{"operationId":"list_device_authentication","summary":"List devices with their authentication status (pending, accepted, rejected, preauthorized), check-in time and identity d","description":"List devices with their authentication status (pending, accepted, rejected, preauthorized), check-in time and identity data. Use for \"Which devices are waiting for authorization in Mender\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["pending","accepted","rejected","preauthorized","noauth"],"type":"string"},{"type":"null"}],"default":null,"description":"Only devices with this authentication status.","title":"Status"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 500, default 20).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_device_authenticationArguments","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/count_devices_by_status":{"post":{"operationId":"count_devices_by_status","summary":"Count devices, optionally only those with one authentication status. Use for \"How many Mender devices are accepted or pe","description":"Count devices, optionally only those with one authentication status. Use for \"How many Mender devices are accepted or pending\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["pending","accepted","rejected","preauthorized","noauth"],"type":"string"},{"type":"null"}],"default":null,"description":"Only count devices with this status (leave out for all).","title":"Status"}},"title":"count_devices_by_statusArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List the names of the device groups. Use for \"Which device groups exist in Mender\".","description":"List the names of the device groups. Use for \"Which device groups exist in Mender\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["pending","accepted","rejected","preauthorized","noauth"],"type":"string"},{"type":"null"}],"default":null,"description":"Only groups with devices of this authentication status.","title":"Status"}},"title":"list_groupsArguments","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_deployments":{"post":{"operationId":"list_deployments","summary":"List deployments with name, artifact, status, device count, type and start and finish times, filtered by status, type or","description":"List deployments with name, artifact, status, device count, type and start and finish times, filtered by status, type or name. Use for \"Which Mender deployments are in progress\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["inprogress","finished","pending"],"type":"string"},{"type":"null"}],"default":null,"description":"Only deployments with this status.","title":"Status"},"type":{"anyOf":[{"enum":["software","configuration"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this deployment type.","title":"Type"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only deployments with this name.","title":"Name"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by creation time: asc or desc.","title":"Sort"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 500, default 20).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_deploymentsArguments","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_deployment_statistics":{"post":{"operationId":"get_deployment_statistics","summary":"Get the count of devices per deployment status for one deployment: success, failure, pending, installing, rebooting and ","description":"Get the count of devices per deployment status for one deployment: success, failure, pending, installing, rebooting and more. Use for \"How many devices succeeded or failed in Mender deployment abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment_id":{"description":"Deployment id (a UUID) from list_deployments.","maxLength":200,"title":"Deployment Id","type":"string"}},"required":["deployment_id"],"title":"get_deployment_statisticsArguments","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_releases":{"post":{"operationId":"list_releases","summary":"List releases with name, modification time, tags, notes and their artifacts. Use for \"What releases have I uploaded to M","description":"List releases with name, modification time, tags, notes and their artifacts. Use for \"What releases have I uploaded to Mender\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only releases whose name matches this text.","title":"Name"},"sort":{"anyOf":[{"enum":["name:asc","name:desc","modified:asc","modified:desc","artifacts_count:asc","artifacts_count:desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 500, default 20).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_releasesArguments","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_audit_logs":{"post":{"operationId":"list_audit_logs","summary":"List audit log entries (who did what to which object, and when), with filters for time, actor, object type and action. U","description":"List audit log entries (who did what to which object, and when), with filters for time, actor, object type and action. Use for \"What actions were taken in my Mender organization recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"created_after":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries created at or after this Unix timestamp (UTC).","title":"Created After"},"created_before":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries created before this Unix timestamp (UTC).","title":"Created Before"},"object_type":{"anyOf":[{"enum":["tenant","user","deployment","artifact","device","software"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this kind of object.","title":"Object Type"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by time: asc or desc.","title":"Sort"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (default 10).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_audit_logsArguments","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_latest_device_alerts":{"post":{"operationId":"list_latest_device_alerts","summary":"List the latest alerts of one device (monitor checks such as service or log alerts), optionally only critical ones. Use ","description":"List the latest alerts of one device (monitor checks such as service or log alerts), optionally only critical ones. Use for \"Does Mender device 6f1b3a5c have critical alerts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Mender device id (a UUID).","maxLength":200,"title":"Id","type":"string"},"level_from":{"anyOf":[{"enum":["OK","CRITICAL"],"type":"string"},{"type":"null"}],"default":null,"description":"Minimum severity: OK or CRITICAL.","title":"Level From"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page.","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["id"],"title":"list_latest_device_alertsArguments","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}}}}