{"openapi":"3.1.0","info":{"title":"Prefect Cloud Ops (BYOK) API","version":"0.1.0","description":"Prefect Cloud Ops (BYOK) lets an AI assistant read your own Prefect Cloud Ops data through the Prefect Cloud Ops API with a key you supply (API key). Read-only: 11 tools (list_work_queues, list_work_pool_queues, list_work_pool_workers, list_flow_run_task_runs, list_automations, list_global_concurrency_limits, list_block_types, list_artifacts, list_variable_names, get_flow_run, get_deployment)....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-prefect-cloud-ops.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-prefect-cloud-ops/docs"},"termsOfService":"https://connectorbay.com/byok-prefect-cloud-ops/terms"},"servers":[{"url":"https://byok-prefect-cloud-ops.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-prefect-cloud-ops/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_work_queues":{"post":{"operationId":"list_work_queues","summary":"List work queues of a Prefect workspace with pool, priority, paused flag, concurrency limit, active slots, status and la","description":"List work queues of a Prefect workspace with pool, priority, paused flag, concurrency limit, active slots, status and last poll time. Use for \"Which Prefect work queues are paused or backed up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id","workspace_id"],"title":"list_work_queuesArguments","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_work_pool_queues":{"post":{"operationId":"list_work_pool_queues","summary":"List the work queues of one work pool with priority, paused flag, concurrency limit, status and last poll time. Use for ","description":"List the work queues of one work pool with priority, paused flag, concurrency limit, status and last poll time. Use for \"Which queues does the Prefect work pool default-pool have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"work_pool_name":{"description":"Name of the work pool.","maxLength":200,"title":"Work Pool Name","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id","workspace_id","work_pool_name"],"title":"list_work_pool_queuesArguments","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_work_pool_workers":{"post":{"operationId":"list_work_pool_workers","summary":"List the workers of one work pool with status and last heartbeat time. Use for \"Are the workers of Prefect work pool def","description":"List the workers of one work pool with status and last heartbeat time. Use for \"Are the workers of Prefect work pool default-pool alive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"work_pool_name":{"description":"Name of the work pool.","maxLength":200,"title":"Work Pool Name","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id","workspace_id","work_pool_name"],"title":"list_work_pool_workersArguments","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_flow_run_task_runs":{"post":{"operationId":"list_flow_run_task_runs","summary":"List the task runs of one flow run with state, run count, start and end time and run time. Inputs and results are not re","description":"List the task runs of one flow run with state, run count, start and end time and run time. Inputs and results are not returned. Use for \"Which tasks of Prefect flow run 7a3b2c1d-0000-0000-0000-000000000000 failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"flow_run_id":{"description":"Id (UUID) of the flow run whose task runs to list.","maxLength":64,"title":"Flow Run Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["ID_DESC","EXPECTED_START_TIME_ASC","EXPECTED_START_TIME_DESC","NAME_ASC","NAME_DESC","NEXT_SCHEDULED_START_TIME_ASC","END_TIME_DESC"],"type":"string"},{"type":"null"}],"default":"EXPECTED_START_TIME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id","flow_run_id"],"title":"list_flow_run_task_runsArguments","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_automations":{"post":{"operationId":"list_automations","summary":"List automations (triggers and the actions they run) with name, description, enabled flag and tags. Trigger and action d","description":"List automations (triggers and the actions they run) with name, description, enabled flag and tags. Trigger and action definitions are not returned. Use for \"Which Prefect automations are enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["CREATED_DESC","UPDATED_DESC","NAME_ASC","NAME_DESC"],"type":"string"},{"type":"null"}],"default":"NAME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_automationsArguments","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_global_concurrency_limits":{"post":{"operationId":"list_global_concurrency_limits","summary":"List global concurrency limits with limit, active slots, slot decay and active flag. Use for \"Which Prefect concurrency ","description":"List global concurrency limits with limit, active slots, slot decay and active flag. Use for \"Which Prefect concurrency limits are fully used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id","workspace_id"],"title":"list_global_concurrency_limitsArguments","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_block_types":{"post":{"operationId":"list_block_types","summary":"List block types (the kinds of configuration blocks a workspace can hold) with name, slug, description and protected fla","description":"List block types (the kinds of configuration blocks a workspace can hold) with name, slug, description and protected flag. No block contents are returned. Use for \"Which block types are available in my Prefect workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"}},"required":["account_id","workspace_id"],"title":"list_block_typesArguments","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 artifacts (markdown, links, tables and progress records created by runs) with key, type, description and the run th","description":"List artifacts (markdown, links, tables and progress records created by runs) with key, type, description and the run that created them. Artifact data is not returned. Use for \"Which artifacts did my Prefect flows publish recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["CREATED_DESC","UPDATED_DESC","ID_DESC","KEY_DESC","KEY_ASC"],"type":"string"},{"type":"null"}],"default":"CREATED_DESC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"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/list_variable_names":{"post":{"operationId":"list_variable_names","summary":"List the names, tags and timestamps of workspace variables. Variable values are not returned. Use for \"Which variables a","description":"List the names, tags and timestamps of workspace variables. Variable values are not returned. Use for \"Which variables are defined in my Prefect workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 200).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip.","title":"Offset"},"sort":{"anyOf":[{"enum":["CREATED_DESC","UPDATED_DESC","NAME_ASC","NAME_DESC"],"type":"string"},{"type":"null"}],"default":"NAME_ASC","description":"Sort order.","title":"Sort"}},"required":["account_id","workspace_id"],"title":"list_variable_namesArguments","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_flow_run":{"post":{"operationId":"get_flow_run","summary":"Get one flow run: state, deployment, work pool and queue, start and end time, run time, run count, tags and who created ","description":"Get one flow run: state, deployment, work pool and queue, start and end time, run time, run count, tags and who created it. Parameters and logs are not returned. Use for \"What is the state of Prefect flow run 7a3b2c1d-0000-0000-0000-000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"flow_run_id":{"description":"Id (UUID) of the flow run.","maxLength":200,"title":"Flow Run Id","type":"string"}},"required":["account_id","workspace_id","flow_run_id"],"title":"get_flow_runArguments","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: flow, paused flag, schedules, work pool and queue, tags, entrypoint, concurrency limit, status and l","description":"Get one deployment: flow, paused flag, schedules, work pool and queue, tags, entrypoint, concurrency limit, status and last poll. Parameters, job variables and pull steps are not returned. Use for \"When does Prefect deployment 3f1e2d3c-0000-0000-0000-000000000000 run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Prefect Cloud account id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Account Id","type":"string"},"workspace_id":{"description":"Prefect Cloud workspace id (UUID). Your dashboard URLs contain it.","maxLength":200,"title":"Workspace Id","type":"string"},"deployment_id":{"description":"Id (UUID) of the deployment.","maxLength":200,"title":"Deployment Id","type":"string"}},"required":["account_id","workspace_id","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}}}}