{"openapi":"3.1.0","info":{"title":"RunCloud (BYOK) API","version":"0.1.0","description":"RunCloud (BYOK) lets an AI assistant read your own RunCloud data through the RunCloud API with a key you supply (API token). Read-only: 8 tools (list_servers, get_server, list_web_apps, list_web_app_domains, list_databases, list_cron_jobs, list_system_users, list_ssh_keys). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-runcloud.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-runcloud/docs"},"termsOfService":"https://connectorbay.com/byok-runcloud/terms"},"servers":[{"url":"https://byok-runcloud.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-runcloud/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_servers":{"post":{"operationId":"list_servers","summary":"List the servers connected to RunCloud with provider, stack, IP address, OS, online state, PHP CLI version and pending u","description":"List the servers connected to RunCloud with provider, stack, IP address, OS, online state, PHP CLI version and pending updates. Use for \"What servers do I manage in RunCloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"title":"list_serversArguments","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_server":{"post":{"operationId":"get_server","summary":"Get one RunCloud server by id: provider, stack, IP address, OS, online state, agent version and pending updates. Use for","description":"Get one RunCloud server by id: provider, stack, IP address, OS, online state, agent version and pending updates. Use for \"Show details of this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"}},"required":["server_id"],"title":"get_serverArguments","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_web_apps":{"post":{"operationId":"list_web_apps","summary":"List the web applications on a RunCloud server with name, paths, PHP version, stack, type and creation time. Pull keys a","description":"List the web applications on a RunCloud server with name, paths, PHP version, stack, type and creation time. Pull keys are not returned. Use for \"Which web apps run on this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only web applications whose name matches this text.","title":"Search"},"sort_column":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Column to sort by, for example name.","title":"Sort Column"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort Direction"}},"required":["server_id"],"title":"list_web_appsArguments","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_web_app_domains":{"post":{"operationId":"list_web_app_domains","summary":"List the domain names of a RunCloud web application with type, www and redirect setting, wildcard flag and DNS integrati","description":"List the domain names of a RunCloud web application with type, www and redirect setting, wildcard flag and DNS integration. Use for \"Which domains does this RunCloud web app serve\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"webapp_id":{"description":"RunCloud web application id, as returned by list_web_apps.","minimum":1,"title":"Webapp Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"required":["server_id","webapp_id"],"title":"list_web_app_domainsArguments","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_databases":{"post":{"operationId":"list_databases","summary":"List the databases on a RunCloud server with name, collation and creation time. Use for \"Which databases are on this Run","description":"List the databases on a RunCloud server with name, collation and creation time. Use for \"Which databases are on this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"required":["server_id"],"title":"list_databasesArguments","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_cron_jobs":{"post":{"operationId":"list_cron_jobs","summary":"List the cron jobs on a RunCloud server with label, user, schedule and enabled flag. The command text is not returned. U","description":"List the cron jobs on a RunCloud server with label, user, schedule and enabled flag. The command text is not returned. Use for \"What cron jobs run on this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"required":["server_id"],"title":"list_cron_jobsArguments","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_system_users":{"post":{"operationId":"list_system_users","summary":"List the system users on a RunCloud server with username and whether each can be deleted. Deployment keys are not return","description":"List the system users on a RunCloud server with username and whether each can be deleted. Deployment keys are not returned. Use for \"Which system users exist on this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"required":["server_id"],"title":"list_system_usersArguments","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_ssh_keys":{"post":{"operationId":"list_ssh_keys","summary":"List the SSH keys registered on a RunCloud server with label, user and creation time. The key text is not returned. Use ","description":"List the SSH keys registered on a RunCloud server with label, user and creation time. The key text is not returned. Use for \"Which SSH keys are on this RunCloud server\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"RunCloud server id, as returned by list_servers.","minimum":1,"title":"Server Id","type":"integer"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":40,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"Items per page (1 to 40, default 15).","title":"Per Page"}},"required":["server_id"],"title":"list_ssh_keysArguments","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}}}}