{"openapi":"3.1.0","info":{"title":"LaunchDarkly (BYOK) API","version":"0.1.0","description":"LaunchDarkly (BYOK) lets an AI assistant read your own LaunchDarkly data through the LaunchDarkly API with a key you supply (LaunchDarkly API access token (a Reader role token is enough; commercial site, not EU or federal)). Read-only: 7 tools (list_projects, list_environments, list_feature_flags, get_feature_flag, list_segments, list_metrics, list_audit_log). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-launchdarkly.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-launchdarkly/docs"},"termsOfService":"https://connectorbay.com/byok-launchdarkly/terms"},"servers":[{"url":"https://byok-launchdarkly.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-launchdarkly/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_projects":{"post":{"operationId":"list_projects","summary":"List LaunchDarkly projects with key, name and tags. Use for \"Which LaunchDarkly projects do I have\".","description":"List LaunchDarkly projects with key, name and tags. Use for \"Which LaunchDarkly projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as 'query:mobile' (text in name or key) or 'tags:team-a+beta'.","title":"Filter"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: name or createdOn; prefix with a dash for descending, for example '-createdOn'.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (the API's default is 20; this tool allows 1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; with limit 20, offset 20 is the second page.","title":"Offset"}},"title":"list_projectsArguments","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_environments":{"post":{"operationId":"list_environments","summary":"List the environments of a project with key, name, colour, tags and safety settings (critical, confirm changes, require ","description":"List the environments of a project with key, name, colour, tags and safety settings (critical, confirm changes, require comments). SDK keys are not returned. Use for \"Which environments does LaunchDarkly project default have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_key":{"description":"Key of the LaunchDarkly project, for example 'default'.","maxLength":100,"title":"Project Key","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (the API's default is 20; this tool allows 1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; with limit 20, offset 20 is the second page.","title":"Offset"}},"required":["project_key"],"title":"list_environmentsArguments","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_feature_flags":{"post":{"operationId":"list_feature_flags","summary":"List the feature flags of a project with key, name, kind, tags, creation date and state; add an environment key to inclu","description":"List the feature flags of a project with key, name, kind, tags, creation date and state; add an environment key to include per-environment settings. Creation dates are Unix milliseconds. Use for \"Which feature flags exist in LaunchDarkly project default\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_key":{"description":"Key of the LaunchDarkly project, for example 'default'.","maxLength":100,"title":"Project Key","type":"string"},"env":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Environment key whose configuration to include for each flag, for example 'production'.","title":"Env"},"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only flags with this tag.","title":"Tag"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filters such as 'query:dark-mode', 'state:live', 'state:archived' or 'tags:beta+test', comma-separated.","title":"Filter"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with a dash for descending, for example '-creationDate'.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (the API's default is 20; this tool allows 1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; with limit 20, offset 20 is the second page.","title":"Offset"}},"required":["project_key"],"title":"list_feature_flagsArguments","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_feature_flag":{"post":{"operationId":"get_feature_flag","summary":"Get one feature flag by key with its variations, tags, state and, when an environment is given, that environment's setti","description":"Get one feature flag by key with its variations, tags, state and, when an environment is given, that environment's settings. Use for \"What variations does LaunchDarkly flag new-checkout have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_key":{"description":"Key of the LaunchDarkly project, for example 'default'.","maxLength":100,"title":"Project Key","type":"string"},"flag_key":{"description":"Key of the feature flag, for example 'new-checkout'.","maxLength":200,"title":"Flag Key","type":"string"},"env":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Environment key whose configuration to include, for example 'production'.","title":"Env"}},"required":["project_key","flag_key"],"title":"get_feature_flagArguments","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_segments":{"post":{"operationId":"list_segments","summary":"List the segments of one environment with key, name, tags, creation and modification dates and rules. Use for \"Which use","description":"List the segments of one environment with key, name, tags, creation and modification dates and rules. Use for \"Which user segments does LaunchDarkly project default have in production\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_key":{"description":"Key of the LaunchDarkly project, for example 'default'.","maxLength":100,"title":"Project Key","type":"string"},"environment_key":{"description":"Key of the environment inside the project, for example 'production'.","maxLength":100,"title":"Environment Key","type":"string"},"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter such as 'query:beta' or 'tags:team-a'.","title":"Filter"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: creationDate, name or lastModified; prefix with a dash for descending.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (the API's default is 20; this tool allows 1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; with limit 20, offset 20 is the second page.","title":"Offset"}},"required":["project_key","environment_key"],"title":"list_segmentsArguments","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_metrics":{"post":{"operationId":"list_metrics","summary":"List the experiment metrics of a project with key, name, kind, event key and attached flag count. Use for \"Which metrics","description":"List the experiment metrics of a project with key, name, kind, event key and attached flag count. Use for \"Which metrics are defined in LaunchDarkly project default\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_key":{"description":"Key of the LaunchDarkly project, for example 'default'.","maxLength":100,"title":"Project Key","type":"string"},"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter, for example 'query:checkout'.","title":"Filter"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (the API's default is 20; this tool allows 1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; with limit 20, offset 20 is the second page.","title":"Offset"}},"required":["project_key"],"title":"list_metricsArguments","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_audit_log":{"post":{"operationId":"list_audit_log","summary":"List recent audit log entries (who changed what) with date in Unix milliseconds, kind, name and description; filter by t","description":"List recent audit log entries (who changed what) with date in Unix milliseconds, kind, name and description; filter by time range or text. Use for \"What changed recently in my LaunchDarkly account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search for in resource names.","title":"Q"},"after":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries after this time, in Unix epoch milliseconds.","title":"After"},"before":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries before this time, in Unix epoch milliseconds.","title":"Before"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many entries to return (1 to 20, default 10).","title":"Limit"}},"title":"list_audit_logArguments","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}}}}