naftiko: 1.0.0-alpha2 info: label: GrowthBook REST API — features-v2 description: 'GrowthBook REST API — features-v2. 9 operations. Lead operation: Get list of feature keys. Self-contained Naftiko capability covering one Growthbook business surface.' tags: - Growthbook - features-v2 created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GROWTHBOOK_API_KEY: GROWTHBOOK_API_KEY capability: consumes: - type: http namespace: growthbook-features-v2 baseUri: https://api.growthbook.io/api description: GrowthBook REST API — features-v2 business capability. Self-contained, no shared references. resources: - name: v2-feature-keys path: /v2/feature-keys operations: - name: getfeaturekeysv2 method: GET description: Get list of feature keys outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-features path: /v2/features operations: - name: listfeaturesv2 method: GET description: Get all features outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postfeaturev2 method: POST description: Create a single feature outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v2-features-id path: /v2/features/{id} operations: - name: getfeaturev2 method: GET description: Get a single feature outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatefeaturev2 method: POST description: Partially update a feature outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletefeaturev2 method: DELETE description: Deletes a single feature outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-features-id-revert path: /v2/features/{id}/revert operations: - name: revertfeaturev2 method: POST description: Revert a feature to a specific revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v2-features-id-toggle path: /v2/features/{id}/toggle operations: - name: togglefeaturev2 method: POST description: Toggle a feature in one or more environments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v2-stale-features path: /v2/stale-features operations: - name: getfeaturestalev2 method: GET description: Get stale status for one or more features outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.GROWTHBOOK_API_KEY}}' exposes: - type: rest namespace: growthbook-features-v2-rest port: 8080 description: REST adapter for GrowthBook REST API — features-v2. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v2/feature-keys name: v2-feature-keys description: REST surface for v2-feature-keys. operations: - method: GET name: getfeaturekeysv2 description: Get list of feature keys call: growthbook-features-v2.getfeaturekeysv2 outputParameters: - type: object mapping: $. - path: /v1/v2/features name: v2-features description: REST surface for v2-features. operations: - method: GET name: listfeaturesv2 description: Get all features call: growthbook-features-v2.listfeaturesv2 outputParameters: - type: object mapping: $. - method: POST name: postfeaturev2 description: Create a single feature call: growthbook-features-v2.postfeaturev2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/features/{id} name: v2-features-id description: REST surface for v2-features-id. operations: - method: GET name: getfeaturev2 description: Get a single feature call: growthbook-features-v2.getfeaturev2 outputParameters: - type: object mapping: $. - method: POST name: updatefeaturev2 description: Partially update a feature call: growthbook-features-v2.updatefeaturev2 with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefeaturev2 description: Deletes a single feature call: growthbook-features-v2.deletefeaturev2 outputParameters: - type: object mapping: $. - path: /v1/v2/features/{id}/revert name: v2-features-id-revert description: REST surface for v2-features-id-revert. operations: - method: POST name: revertfeaturev2 description: Revert a feature to a specific revision call: growthbook-features-v2.revertfeaturev2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/features/{id}/toggle name: v2-features-id-toggle description: REST surface for v2-features-id-toggle. operations: - method: POST name: togglefeaturev2 description: Toggle a feature in one or more environments call: growthbook-features-v2.togglefeaturev2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/stale-features name: v2-stale-features description: REST surface for v2-stale-features. operations: - method: GET name: getfeaturestalev2 description: Get stale status for one or more features call: growthbook-features-v2.getfeaturestalev2 outputParameters: - type: object mapping: $. - type: mcp namespace: growthbook-features-v2-mcp port: 9090 transport: http description: MCP adapter for GrowthBook REST API — features-v2. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-list-feature-keys description: Get list of feature keys hints: readOnly: true destructive: false idempotent: true call: growthbook-features-v2.getfeaturekeysv2 outputParameters: - type: object mapping: $. - name: get-all-features description: Get all features hints: readOnly: true destructive: false idempotent: true call: growthbook-features-v2.listfeaturesv2 outputParameters: - type: object mapping: $. - name: create-single-feature description: Create a single feature hints: readOnly: false destructive: false idempotent: false call: growthbook-features-v2.postfeaturev2 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-single-feature description: Get a single feature hints: readOnly: true destructive: false idempotent: true call: growthbook-features-v2.getfeaturev2 outputParameters: - type: object mapping: $. - name: partially-update-feature description: Partially update a feature hints: readOnly: false destructive: false idempotent: false call: growthbook-features-v2.updatefeaturev2 with: body: tools.body outputParameters: - type: object mapping: $. - name: deletes-single-feature description: Deletes a single feature hints: readOnly: false destructive: true idempotent: true call: growthbook-features-v2.deletefeaturev2 outputParameters: - type: object mapping: $. - name: revert-feature-specific-revision description: Revert a feature to a specific revision hints: readOnly: false destructive: false idempotent: false call: growthbook-features-v2.revertfeaturev2 with: body: tools.body outputParameters: - type: object mapping: $. - name: toggle-feature-one-more-environments description: Toggle a feature in one or more environments hints: readOnly: false destructive: false idempotent: false call: growthbook-features-v2.togglefeaturev2 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-stale-status-one-more description: Get stale status for one or more features hints: readOnly: true destructive: false idempotent: true call: growthbook-features-v2.getfeaturestalev2 outputParameters: - type: object mapping: $.