{"openapi":"3.1.0","info":{"title":"Linode (Akamai Cloud) (BYOK) API","version":"0.1.0","description":"Linode (Akamai Cloud) (BYOK) lets an AI assistant read your own Linode (Akamai Cloud) data through the Linode (Akamai Cloud) API with a key you supply (personal access token (read-only scopes are enough)). Read-only: 8 tools (list_linodes, get_linode, list_domains, list_domain_records, list_volumes, list_nodebalancers, get_account, list_regions). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-linode.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-linode/docs"},"termsOfService":"https://connectorbay.com/byok-linode/terms"},"servers":[{"url":"https://byok-linode.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-linode/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_linodes":{"post":{"operationId":"list_linodes","summary":"List the Linode instances on the account with label, status, region, plan type, tags, IP addresses and creation time. Us","description":"List the Linode instances on the account with label, status, region, plan type, tags, IP addresses and creation time. Use for \"Which of my Linode servers are running, and in which regions\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_linodesArguments","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_linode":{"post":{"operationId":"get_linode","summary":"Get one Linode instance by numeric id: status, region, plan type, specs (disk, memory, vcpus, transfer), IPs and tags. U","description":"Get one Linode instance by numeric id: status, region, plan type, specs (disk, memory, vcpus, transfer), IPs and tags. Use for \"What are the specs and IP address of Linode 123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"linode_id":{"description":"Numeric id of the Linode, as shown by list_linodes.","minimum":1,"title":"Linode Id","type":"integer"}},"required":["linode_id"],"title":"get_linodeArguments","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_domains":{"post":{"operationId":"list_domains","summary":"List DNS domains managed in Linode with type, status, SOA email, TTL and tags. Use for \"Which DNS domains do I manage on","description":"List DNS domains managed in Linode with type, status, SOA email, TTL and tags. Use for \"Which DNS domains do I manage on Linode\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_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_domain_records":{"post":{"operationId":"list_domain_records","summary":"List the DNS records of one Linode domain with type, name, target, TTL and priority. Use for \"What DNS records does Lino","description":"List the DNS records of one Linode domain with type, name, target, TTL and priority. Use for \"What DNS records does Linode domain 5551 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_id":{"description":"Numeric id of the domain, as shown by list_domains.","minimum":1,"title":"Domain Id","type":"integer"},"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"required":["domain_id"],"title":"list_domain_recordsArguments","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_volumes":{"post":{"operationId":"list_volumes","summary":"List block storage volumes with size in GB, region, status and the Linode each is attached to. Use for \"How big are my L","description":"List block storage volumes with size in GB, region, status and the Linode each is attached to. Use for \"How big are my Linode volumes and what are they attached to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_volumesArguments","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_nodebalancers":{"post":{"operationId":"list_nodebalancers","summary":"List NodeBalancers with label, region, hostname, IP addresses, connection throttle and traffic transfer. Use for \"Which ","description":"List NodeBalancers with label, region, hostname, IP addresses, connection throttle and traffic transfer. Use for \"Which NodeBalancers do I have on Linode\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_nodebalancersArguments","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_account":{"post":{"operationId":"get_account","summary":"Show the Linode account's contact email, company, current balance, uninvoiced balance, active-since date and capabilitie","description":"Show the Linode account's contact email, company, current balance, uninvoiced balance, active-since date and capabilities. Use for \"What is my Linode account balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_accountArguments","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_regions":{"post":{"operationId":"list_regions","summary":"List Linode regions with id, label, country, capabilities and status. Use for \"Which Linode regions exist and which are ","description":"List Linode regions with id, label, country, capabilities and status. Use for \"Which Linode regions exist and which are in outage\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_regionsArguments","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}}}}