{"openapi":"3.1.0","info":{"title":"Mender Deployments (BYOK) API","version":"0.1.0","description":"Mender Deployments (BYOK) lets an AI assistant read your own Mender Deployments data through the Mender Deployments API with a key you supply (Mender personal access token (US hosted server hosted.mender.io; EU accounts use another host)). Read-only: 9 tools (list_deployments, get_deployment, get_deployment_statistics, list_deployment_devices, list_device_deployment_history, list_releases,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mender-deployments.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mender-deployments/docs"},"termsOfService":"https://connectorbay.com/byok-mender-deployments/terms"},"servers":[{"url":"https://byok-mender-deployments.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mender-deployments/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_deployments":{"post":{"operationId":"list_deployments","summary":"List OTA deployments (active and historical) with name, artifact, creation and finish time, status, device count, groups","description":"List OTA deployments (active and historical) with name, artifact, creation and finish time, status, device count, groups and status statistics. Filter by status, type, name or creation time. Use for \"Which Mender deployments are in progress right now\".","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 in this state: inprogress, finished or pending.","title":"Status"},"type":{"anyOf":[{"enum":["software","configuration"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this type: software or configuration.","title":"Type"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only deployments whose name or description contains this text.","title":"Search"},"created_after":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only deployments created at or after this Unix timestamp (seconds, UTC).","title":"Created After"},"created_before":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only deployments created at or before this Unix timestamp (seconds, UTC).","title":"Created Before"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation date: asc or desc.","title":"Sort"},"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_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":{"post":{"operationId":"get_deployment","summary":"Get one deployment: name, artifact, times, status, device count, groups and the per-status device counts. Use for \"Show ","description":"Get one deployment: name, artifact, times, status, device count, groups and the per-status device counts. Use for \"Show Mender deployment 6a1b3e4c-1111-4f2b-9d0a-0a1b2c3d4e5f\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment_id":{"description":"Deployment id (a UUID) from list_deployments.","maxLength":60,"title":"Deployment Id","type":"string"}},"required":["deployment_id"],"title":"get_deploymentArguments","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":"Count the devices of a deployment per status: success, failure, pending, downloading, installing, rebooting, aborted and","description":"Count the devices of a deployment per status: success, failure, pending, downloading, installing, rebooting, aborted and the pause states. Use for \"How many devices succeeded or failed in Mender deployment 6a1b3e4c-1111-4f2b-9d0a-0a1b2c3d4e5f\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment_id":{"description":"Deployment id (a UUID) from list_deployments.","maxLength":60,"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_deployment_devices":{"post":{"operationId":"list_deployment_devices","summary":"List the devices of a deployment with their update status, device type, start and finish time, state and whether a log e","description":"List the devices of a deployment with their update status, device type, start and finish time, state and whether a log exists. Filter by status. Use for \"Which devices failed in Mender deployment 6a1b3e4c-1111-4f2b-9d0a-0a1b2c3d4e5f\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment_id":{"description":"Deployment id (a UUID) from list_deployments.","maxLength":60,"title":"Deployment Id","type":"string"},"status":{"anyOf":[{"enum":["failure","aborted","pause_before_installing","pause_before_committing","pause_before_rebooting","downloading","installing","rebooting","pending","success","noartifact","already-installed","decommissioned","pause","active","finished"],"type":"string"},{"type":"null"}],"default":null,"description":"Only devices in this status, for example failure, success, pending or installing.","title":"Status"},"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"}},"required":["deployment_id"],"title":"list_deployment_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/list_device_deployment_history":{"post":{"operationId":"list_device_deployment_history","summary":"List the deployments a single device took part in, each with the deployment summary and the device's own status in it. U","description":"List the deployments a single device took part in, each with the deployment summary and the device's own status in it. Use for \"What updates has Mender device dev-1 received\".","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"},"status":{"anyOf":[{"enum":["failure","aborted","pause_before_installing","pause_before_committing","pause_before_rebooting","downloading","installing","rebooting","pending","success","noartifact","already-installed","decommissioned","pause","active","finished"],"type":"string"},{"type":"null"}],"default":null,"description":"Only deployments with this device status, for example success or failure.","title":"Status"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 20).","title":"Per Page"}},"required":["device_id"],"title":"list_device_deployment_historyArguments","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 (named groups of artifacts) with modification time, artifacts, tags and notes. Filter by name, description","description":"List releases (named groups of artifacts) with modification time, artifacts, tags and notes. Filter by name, description, device type or update type. Use for \"Which Mender releases support device type raspberrypi4\".","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 contains this text.","title":"Name"},"description":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only releases whose description contains this text.","title":"Description"},"device_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only releases with an artifact for this device type, for example 'raspberrypi4'.","title":"Device Type"},"update_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only releases of this update module type, for example 'rootfs-image'.","title":"Update Type"},"sort":{"anyOf":[{"enum":["artifacts_count:asc","artifacts_count:desc","modified:asc","modified:desc","name:asc","name:desc","tags:asc","tags:desc"],"type":"string"},{"type":"null"}],"default":"name:asc","description":"Order: name, modified, artifacts_count or tags, each with :asc or :desc (default name:asc).","title":"Sort"},"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_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_artifacts":{"post":{"operationId":"list_artifacts","summary":"List the artifacts (update packages) with name, description, compatible device types, signed flag, size and modification","description":"List the artifacts (update packages) with name, description, compatible device types, signed flag, size and modification time. Filter by name, description or device type. Use for \"Which Mender artifacts are compatible with raspberrypi4\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only artifacts whose name contains this text.","title":"Name"},"description":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only artifacts whose description contains this text.","title":"Description"},"device_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only artifacts compatible with this device type.","title":"Device Type"},"sort":{"anyOf":[{"enum":["name:asc","name:desc","modified:asc","modified:desc"],"type":"string"},{"type":"null"}],"default":"name:asc","description":"Order: name or modified with :asc or :desc (default name:asc).","title":"Sort"},"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_artifactsArguments","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_artifact":{"post":{"operationId":"get_artifact","summary":"Get one artifact by id with compatible device types, provides and depends metadata, update contents, size and time. Use ","description":"Get one artifact by id with compatible device types, provides and depends metadata, update contents, size and time. Use for \"Show Mender artifact a1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"artifact_id":{"description":"Artifact id from list_artifacts.","maxLength":80,"title":"Artifact Id","type":"string"}},"required":["artifact_id"],"title":"get_artifactArguments","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_storage_usage":{"post":{"operationId":"get_storage_usage","summary":"Show the artifact storage limit and current usage of the tenant in bytes. Use for \"How much Mender artifact storage have","description":"Show the artifact storage limit and current usage of the tenant in bytes. Use for \"How much Mender artifact storage have I used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_storage_usageArguments","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}}}}