{"openapi":"3.1.0","info":{"title":"Gcore (BYOK) API","version":"0.1.0","description":"Gcore (BYOK) lets an AI assistant read your own Gcore data through the Gcore API with a key you supply (permanent API token). Read-only: 12 tools (get_cdn_service, list_cdn_resources, get_cdn_resource, list_cdn_rules, list_cdn_origin_groups, list_cdn_ssl_certificates, list_cdn_purge_history, list_dns_zones, get_dns_zone, list_dns_rrsets, list_waap_domains, get_waap_domain). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-gcore.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-gcore/docs"},"termsOfService":"https://connectorbay.com/byok-gcore/terms"},"servers":[{"url":"https://byok-gcore.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-gcore/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_cdn_service":{"post":{"operationId":"get_cdn_service","summary":"Show the state of your Gcore CDN service: whether it is enabled, status, utilization level and the default CNAME. Use fo","description":"Show the state of your Gcore CDN service: whether it is enabled, status, utilization level and the default CNAME. Use for \"Is my Gcore CDN service enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_cdn_serviceArguments","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_cdn_resources":{"post":{"operationId":"list_cdn_resources","summary":"List CDN resources with domain, name, active and enabled flags, status, origin group, protocol, HTTPS and shielding flag","description":"List CDN resources with domain, name, active and enabled flags, status, origin group, protocol, HTTPS and shielding flags and dates. Use for \"Which CDN resources do I have on Gcore and are they active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only resources whose name contains this text.","title":"Name"},"cname":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"description":"Only the resource with this delivery domain.","title":"Cname"},"status":{"anyOf":[{"enum":["active","processed","suspended","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this status: active, processed, suspended or deleted.","title":"Status"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for enabled resources only, false for disabled only.","title":"Enabled"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of items to return (up to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"title":"list_cdn_resourcesArguments","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_cdn_resource":{"post":{"operationId":"get_cdn_resource","summary":"Get one CDN resource: delivery domain, status, origin group and protocol, HTTPS, shielding and dates. Option details are","description":"Get one CDN resource: delivery domain, status, origin group and protocol, HTTPS, shielding and dates. Option details are left out. Use for \"Show Gcore CDN resource 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"description":"CDN resource id, a number from list_cdn_resources.","maximum":1000000000000,"minimum":1,"title":"Resource Id","type":"integer"}},"required":["resource_id"],"title":"get_cdn_resourceArguments","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_cdn_rules":{"post":{"operationId":"list_cdn_rules","summary":"List the path rules of one CDN resource with name, pattern, active flag, weight and origin group. Use for \"What rules do","description":"List the path rules of one CDN resource with name, pattern, active flag, weight and origin group. Use for \"What rules does Gcore CDN resource 1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"description":"CDN resource id, a number from list_cdn_resources.","maximum":1000000000000,"minimum":1,"title":"Resource Id","type":"integer"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of items to return (up to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"required":["resource_id"],"title":"list_cdn_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_cdn_origin_groups":{"post":{"operationId":"list_cdn_origin_groups","summary":"List origin groups with name, authentication type, failover flag and whether CDN resources use them. Origin credentials ","description":"List origin groups with name, authentication type, failover flag and whether CDN resources use them. Origin credentials and sources are left out. Use for \"Which origin groups are configured in Gcore CDN\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups with this name.","title":"Name"},"has_related_resources":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for groups used by resources, false for unused.","title":"Has Related Resources"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of items to return (up to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"title":"list_cdn_origin_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_cdn_ssl_certificates":{"post":{"operationId":"list_cdn_ssl_certificates","summary":"List SSL certificates used by CDN resources with name, subject, issuer, validity dates and whether they were issued auto","description":"List SSL certificates used by CDN resources with name, subject, issuer, validity dates and whether they were issued automatically. Use for \"Which Gcore CDN certificates expire soon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"anyOf":[{"maximum":1000000000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only certificates of this CDN resource id.","title":"Resource Id"},"validity_not_after_lte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only certificates that expire at or before this time (ISO 8601, UTC).","title":"Validity Not After Lte"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of items to return (up to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"title":"list_cdn_ssl_certificatesArguments","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_cdn_purge_history":{"post":{"operationId":"list_cdn_purge_history","summary":"List past cache purge requests with id, status, resource, type and creation time. Use for \"When did I last purge the Gco","description":"List past cache purge requests with id, status, resource, type and creation time. Use for \"When did I last purge the Gcore CDN cache\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"description":"Only purges of the resource with this delivery domain.","title":"Cname"},"status":{"anyOf":[{"enum":["In progress","Successful","Failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this status: In progress, Successful or Failed.","title":"Status"},"from_created":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only purges created after this time (ISO 8601, UTC).","title":"From Created"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of items to return (up to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"title":"list_cdn_purge_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_dns_zones":{"post":{"operationId":"list_dns_zones","summary":"List your Gcore DNS zones with name, enabled flag, DNSSEC state, status, serial and record counts. Use for \"Which domain","description":"List your Gcore DNS zones with name, enabled flag, DNSSEC state, status, serial and record counts. Use for \"Which domains do I have in Gcore DNS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"description":"Only zones whose name matches this text.","title":"Name"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for enabled zones only, false for disabled only.","title":"Enabled"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip.","title":"Offset"}},"title":"list_dns_zonesArguments","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_dns_zone":{"post":{"operationId":"get_dns_zone","summary":"Get one DNS zone: SOA values, DNSSEC state, status, and record counts. Use for \"Show the Gcore DNS zone example.com\".","description":"Get one DNS zone: SOA values, DNSSEC state, status, and record counts. Use for \"Show the Gcore DNS zone example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"DNS zone (domain) name, for example 'example.com'.","maxLength":253,"title":"Name","type":"string"}},"required":["name"],"title":"get_dns_zoneArguments","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_dns_rrsets":{"post":{"operationId":"list_dns_rrsets","summary":"List the record sets of a DNS zone with name, type, TTL and record contents. Use for \"What DNS records does example.com ","description":"List the record sets of a DNS zone with name, type, TTL and record contents. Use for \"What DNS records does example.com have on Gcore\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"DNS zone (domain) name, for example 'example.com'.","maxLength":253,"title":"Name","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip.","title":"Offset"}},"required":["name"],"title":"list_dns_rrsetsArguments","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_waap_domains":{"post":{"operationId":"list_waap_domains","summary":"List domains protected by Gcore WAAP with name, status (active, bypass, monitor, locked), aliases and linked CDN resourc","description":"List domains protected by Gcore WAAP with name, status (active, bypass, monitor, locked), aliases and linked CDN resource. Use for \"Which domains are protected by Gcore WAAP\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","bypass","monitor","locked"],"type":"string"},{"type":"null"}],"default":null,"description":"Only domains in this status.","title":"Status"},"name":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"description":"Only domains matching this name; '*' works as a wildcard.","title":"Name"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of domains to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip from the start of the list.","title":"Offset"}},"title":"list_waap_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/get_waap_domain":{"post":{"operationId":"get_waap_domain","summary":"Get one WAAP domain by id: name, status, aliases and creation time. Use for \"Show Gcore WAAP domain 1\".","description":"Get one WAAP domain by id: name, status, aliases and creation time. Use for \"Show Gcore WAAP domain 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_id":{"description":"WAAP domain id, a number from list_waap_domains.","maximum":1000000000000,"minimum":1,"title":"Domain Id","type":"integer"}},"required":["domain_id"],"title":"get_waap_domainArguments","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}}}}