naftiko: 1.0.0-alpha2 info: label: GitLab API — feature_flags description: 'GitLab API — feature_flags. 10 operations. Lead operation: List feature flags for a project. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - feature_flags created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITLAB_CI_API_KEY: GITLAB_CI_API_KEY capability: consumes: - type: http namespace: gitlab-ci-feature-flags baseUri: https://gitlab.com description: GitLab API — feature_flags business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-feature_flags path: /api/v4/projects/{id}/feature_flags operations: - name: getapiv4projectsidfeatureflags method: GET description: List feature flags for a project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: scope in: query type: string description: 'The scope of feature flags, one of: `enabled`, `disabled`' - name: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: postapiv4projectsidfeatureflags method: POST description: Create a new feature flag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: postApiV4ProjectsIdFeatureFlags in: body type: string required: true - name: api-v4-projects-id-feature_flags-feature_flag_name path: /api/v4/projects/{id}/feature_flags/{feature_flag_name} operations: - name: getapiv4projectsidfeatureflagsfeatureflagname method: GET description: Get a single feature flag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: feature_flag_name in: path type: string description: The name of the feature flag required: true - name: putapiv4projectsidfeatureflagsfeatureflagname method: PUT description: Update a feature flag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: feature_flag_name in: path type: string description: The name of the feature flag required: true - name: putApiV4ProjectsIdFeatureFlagsFeatureFlagName in: body type: string required: true - name: deleteapiv4projectsidfeatureflagsfeatureflagname method: DELETE description: Delete a feature flag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: feature_flag_name in: path type: string description: The name of the feature flag required: true - name: api-v4-projects-id-feature_flags_user_lists path: /api/v4/projects/{id}/feature_flags_user_lists operations: - name: getapiv4projectsidfeatureflagsuserlists method: GET description: List all feature flag user lists for a project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: search in: query type: string description: Return user lists matching the search criteria - name: page in: query type: integer description: Current page number - name: per_page in: query type: integer description: Number of items per page - name: postapiv4projectsidfeatureflagsuserlists method: POST description: Create a feature flag user list outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: postApiV4ProjectsIdFeatureFlagsUserLists in: body type: string required: true - name: api-v4-projects-id-feature_flags_user_lists-iid path: /api/v4/projects/{id}/feature_flags_user_lists/{iid} operations: - name: getapiv4projectsidfeatureflagsuserlistsiid method: GET description: Get a feature flag user list outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: iid in: path type: string description: The internal ID of the project's feature flag user list required: true - name: putapiv4projectsidfeatureflagsuserlistsiid method: PUT description: Update a feature flag user list outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: iid in: path type: string description: The internal ID of the project's feature flag user list required: true - name: putApiV4ProjectsIdFeatureFlagsUserListsIid in: body type: string required: true - name: deleteapiv4projectsidfeatureflagsuserlistsiid method: DELETE description: Delete feature flag user list outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: iid in: path type: string description: The internal ID of the project's feature flag user list required: true exposes: - type: rest namespace: gitlab-ci-feature-flags-rest port: 8080 description: REST adapter for GitLab API — feature_flags. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/feature-flags name: api-v4-projects-id-feature-flags description: REST surface for api-v4-projects-id-feature_flags. operations: - method: GET name: getapiv4projectsidfeatureflags description: List feature flags for a project call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflags with: id: rest.id scope: rest.scope page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidfeatureflags description: Create a new feature flag call: gitlab-ci-feature-flags.postapiv4projectsidfeatureflags with: id: rest.id postApiV4ProjectsIdFeatureFlags: rest.postApiV4ProjectsIdFeatureFlags outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/feature-flags/{feature-flag-name} name: api-v4-projects-id-feature-flags-feature-flag-name description: REST surface for api-v4-projects-id-feature_flags-feature_flag_name. operations: - method: GET name: getapiv4projectsidfeatureflagsfeatureflagname description: Get a single feature flag call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsfeatureflagname with: id: rest.id feature_flag_name: rest.feature_flag_name outputParameters: - type: object mapping: $. - method: PUT name: putapiv4projectsidfeatureflagsfeatureflagname description: Update a feature flag call: gitlab-ci-feature-flags.putapiv4projectsidfeatureflagsfeatureflagname with: id: rest.id feature_flag_name: rest.feature_flag_name putApiV4ProjectsIdFeatureFlagsFeatureFlagName: rest.putApiV4ProjectsIdFeatureFlagsFeatureFlagName outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidfeatureflagsfeatureflagname description: Delete a feature flag call: gitlab-ci-feature-flags.deleteapiv4projectsidfeatureflagsfeatureflagname with: id: rest.id feature_flag_name: rest.feature_flag_name outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/feature-flags-user-lists name: api-v4-projects-id-feature-flags-user-lists description: REST surface for api-v4-projects-id-feature_flags_user_lists. operations: - method: GET name: getapiv4projectsidfeatureflagsuserlists description: List all feature flag user lists for a project call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsuserlists with: id: rest.id search: rest.search page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - method: POST name: postapiv4projectsidfeatureflagsuserlists description: Create a feature flag user list call: gitlab-ci-feature-flags.postapiv4projectsidfeatureflagsuserlists with: id: rest.id postApiV4ProjectsIdFeatureFlagsUserLists: rest.postApiV4ProjectsIdFeatureFlagsUserLists outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/feature-flags-user-lists/{iid} name: api-v4-projects-id-feature-flags-user-lists-iid description: REST surface for api-v4-projects-id-feature_flags_user_lists-iid. operations: - method: GET name: getapiv4projectsidfeatureflagsuserlistsiid description: Get a feature flag user list call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsuserlistsiid with: id: rest.id iid: rest.iid outputParameters: - type: object mapping: $. - method: PUT name: putapiv4projectsidfeatureflagsuserlistsiid description: Update a feature flag user list call: gitlab-ci-feature-flags.putapiv4projectsidfeatureflagsuserlistsiid with: id: rest.id iid: rest.iid putApiV4ProjectsIdFeatureFlagsUserListsIid: rest.putApiV4ProjectsIdFeatureFlagsUserListsIid outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidfeatureflagsuserlistsiid description: Delete feature flag user list call: gitlab-ci-feature-flags.deleteapiv4projectsidfeatureflagsuserlistsiid with: id: rest.id iid: rest.iid outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-feature-flags-mcp port: 9090 transport: http description: MCP adapter for GitLab API — feature_flags. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-feature-flags-project description: List feature flags for a project hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflags with: id: tools.id scope: tools.scope page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: create-new-feature-flag description: Create a new feature flag hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-feature-flags.postapiv4projectsidfeatureflags with: id: tools.id postApiV4ProjectsIdFeatureFlags: tools.postApiV4ProjectsIdFeatureFlags outputParameters: - type: object mapping: $. - name: get-single-feature-flag description: Get a single feature flag hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsfeatureflagname with: id: tools.id feature_flag_name: tools.feature_flag_name outputParameters: - type: object mapping: $. - name: update-feature-flag description: Update a feature flag hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-feature-flags.putapiv4projectsidfeatureflagsfeatureflagname with: id: tools.id feature_flag_name: tools.feature_flag_name putApiV4ProjectsIdFeatureFlagsFeatureFlagName: tools.putApiV4ProjectsIdFeatureFlagsFeatureFlagName outputParameters: - type: object mapping: $. - name: delete-feature-flag description: Delete a feature flag hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-feature-flags.deleteapiv4projectsidfeatureflagsfeatureflagname with: id: tools.id feature_flag_name: tools.feature_flag_name outputParameters: - type: object mapping: $. - name: list-all-feature-flag-user description: List all feature flag user lists for a project hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsuserlists with: id: tools.id search: tools.search page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $. - name: create-feature-flag-user-list description: Create a feature flag user list hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-feature-flags.postapiv4projectsidfeatureflagsuserlists with: id: tools.id postApiV4ProjectsIdFeatureFlagsUserLists: tools.postApiV4ProjectsIdFeatureFlagsUserLists outputParameters: - type: object mapping: $. - name: get-feature-flag-user-list description: Get a feature flag user list hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-feature-flags.getapiv4projectsidfeatureflagsuserlistsiid with: id: tools.id iid: tools.iid outputParameters: - type: object mapping: $. - name: update-feature-flag-user-list description: Update a feature flag user list hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-feature-flags.putapiv4projectsidfeatureflagsuserlistsiid with: id: tools.id iid: tools.iid putApiV4ProjectsIdFeatureFlagsUserListsIid: tools.putApiV4ProjectsIdFeatureFlagsUserListsIid outputParameters: - type: object mapping: $. - name: delete-feature-flag-user-list description: Delete feature flag user list hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-feature-flags.deleteapiv4projectsidfeatureflagsuserlistsiid with: id: tools.id iid: tools.iid outputParameters: - type: object mapping: $.