{"openapi":"3.1.0","info":{"title":"Scaleway Managed Databases (BYOK) API","version":"0.1.0","description":"Scaleway Managed Databases (BYOK) lets an AI assistant read your own Scaleway Managed Databases data through the Scaleway Managed Databases API with a key you supply (API secret key (give it read-only IAM permissions)). Read-only: 8 tools (list_instances, get_instance, list_instance_databases, list_instance_acl_rules, list_backups, list_snapshots, list_database_engines, list_node_types). The BYOK...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-scaleway-managed-databases.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-scaleway-managed-databases/docs"},"termsOfService":"https://connectorbay.com/byok-scaleway-managed-databases/terms"},"servers":[{"url":"https://byok-scaleway-managed-databases.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-scaleway-managed-databases/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_instances":{"post":{"operationId":"list_instances","summary":"List Database Instances in one region with engine, node type, status, storage, high-availability mode, endpoint and back","description":"List Database Instances in one region with engine, node type, status, storage, high-availability mode, endpoint and backup schedule. Use for \"Which managed databases do I run on Scaleway in fr-par\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only Instances whose name contains this text.","title":"Name"},"tags":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only Instances with this tag.","title":"Tags"},"project_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only Instances of this Project id (UUID).","title":"Project Id"},"has_maintenances":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list only Instances with pending maintenance.","title":"Has Maintenances"},"order_by":{"anyOf":[{"enum":["created_at_asc","created_at_desc","name_asc","name_desc","region","status_asc","status_desc"],"type":"string"},{"type":"null"}],"default":"created_at_asc","description":"Order of the list.","title":"Order By"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_instancesArguments","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_instance":{"post":{"operationId":"get_instance","summary":"Get one Database Instance with engine, node type, status, volume, endpoint, maintenance windows, read replicas and upgra","description":"Get one Database Instance with engine, node type, status, volume, endpoint, maintenance windows, read replicas and upgradable versions. Use for \"Is my Scaleway database healthy and does it have maintenance planned\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"instance_id":{"description":"Id (UUID) of the Database Instance, as shown by list_instances.","maxLength":64,"title":"Instance Id","type":"string"}},"required":["region","instance_id"],"title":"get_instanceArguments","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_instance_databases":{"post":{"operationId":"list_instance_databases","summary":"List the logical databases inside an Instance with owner, size and whether Scaleway manages them. Use for \"Which databas","description":"List the logical databases inside an Instance with owner, size and whether Scaleway manages them. Use for \"Which databases exist inside my Scaleway database Instance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"instance_id":{"description":"Id (UUID) of the Database Instance, as shown by list_instances.","maxLength":64,"title":"Instance Id","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only databases whose name contains this text.","title":"Name"},"order_by":{"anyOf":[{"enum":["name_asc","name_desc","size_asc","size_desc"],"type":"string"},{"type":"null"}],"default":"name_asc","description":"Order of the list.","title":"Order By"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","instance_id"],"title":"list_instance_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_instance_acl_rules":{"post":{"operationId":"list_instance_acl_rules","summary":"List the network access rules (allowed IP ranges) of an Instance. Use for \"Which IP ranges may connect to my Scaleway da","description":"List the network access rules (allowed IP ranges) of an Instance. Use for \"Which IP ranges may connect to my Scaleway database Instance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"instance_id":{"description":"Id (UUID) of the Database Instance, as shown by list_instances.","maxLength":64,"title":"Instance Id","type":"string"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region","instance_id"],"title":"list_instance_acl_rulesArguments","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_backups":{"post":{"operationId":"list_backups","summary":"List database backups with database, Instance, size, status and expiry (download links are not returned). Use for \"What ","description":"List database backups with database, Instance, size, status and expiry (download links are not returned). Use for \"What backups exist for my Scaleway databases and when do they expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"instance_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only backups of this Instance id (UUID).","title":"Instance Id"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only backups whose name contains this text.","title":"Name"},"order_by":{"anyOf":[{"enum":["created_at_asc","created_at_desc","name_asc","name_desc","status_asc","status_desc"],"type":"string"},{"type":"null"}],"default":"created_at_asc","description":"Order of the list.","title":"Order By"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_backupsArguments","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_snapshots":{"post":{"operationId":"list_snapshots","summary":"List Instance snapshots with Instance, node type, volume type, size, status and expiry. Use for \"Which snapshots of my S","description":"List Instance snapshots with Instance, node type, volume type, size, status and expiry. Use for \"Which snapshots of my Scaleway databases exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"instance_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only snapshots of this Instance id (UUID).","title":"Instance Id"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only snapshots whose name contains this text.","title":"Name"},"order_by":{"anyOf":[{"enum":["created_at_asc","created_at_desc","name_asc","name_desc","expires_at_asc","expires_at_desc"],"type":"string"},{"type":"null"}],"default":"created_at_asc","description":"Order of the list.","title":"Order By"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_snapshotsArguments","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_database_engines":{"post":{"operationId":"list_database_engines","summary":"List the database engines and versions Scaleway can run in a region, with beta and end-of-life information. Use for \"Whi","description":"List the database engines and versions Scaleway can run in a region, with beta and end-of-life information. Use for \"Which PostgreSQL and MySQL versions does Scaleway offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"name":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only engines whose name contains this text, for example 'PostgreSQL'.","title":"Name"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_database_enginesArguments","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_node_types":{"post":{"operationId":"list_node_types","summary":"List Database node types with vCPUs, memory, volume constraints, generation, stock status and whether high availability ","description":"List Database node types with vCPUs, memory, volume constraints, generation, stock status and whether high availability is required. Use for \"Which database node types can I order on Scaleway and are they in stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Scaleway region, for example 'fr-par'. Database Instances exist per region.","enum":["fr-par","nl-ams","pl-waw"],"title":"Region","type":"string"},"include_disabled_types":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include node types that cannot currently be ordered.","title":"Include Disabled Types"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_node_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}}}}