naftiko: 1.0.0-alpha2 info: label: VTEX Headless CMS — Pages description: 'VTEX Headless CMS — Pages. 3 operations. Lead operation: VTex Get all content types. Self-contained Naftiko capability covering one Vtex business surface.' tags: - Vtex - Pages created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: VTEX_API_KEY: VTEX_API_KEY capability: consumes: - type: http namespace: headless-cms-pages baseUri: https://{accountName}.myvtex.com description: VTEX Headless CMS — Pages business capability. Self-contained, no shared references. resources: - name: _v-cms-api-projectId path: /_v/cms/api/{projectId} operations: - name: getallcontenttypes method: GET description: VTex Get all content types outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: Project ID specified in the settings of the CMS (alpha) app. required: true - name: _v-cms-api-projectId-content-type path: /_v/cms/api/{projectId}/{content-type} operations: - name: getpagesbycontenttype method: GET description: VTex Get all CMS pages by content type outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: Project ID specified in the settings of the CMS (alpha) app. required: true - name: content-type in: path type: string description: Content type identifier defined in the FastStore project. required: true - name: versionId in: query type: string description: Version ID presented in the URL path of a CMS preview. - name: releaseId in: query type: string description: Release ID presented in the URL path of a CMS preview. - name: filters[{field}] in: query type: string description: Filter results by a property of the page (e.g., `filters[status]`) or by a nested custom field of the `parameters` object (e.g., `filters[parameters.collection. - name: _v-cms-api-projectId-content-type-document-id path: /_v/cms/api/{projectId}/{content-type}/{document-id} operations: - name: getcmspage method: GET description: VTex Get CMS page outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: Project ID specified in the settings of the CMS (alpha) app. required: true - name: content-type in: path type: string description: Content type ID defined in the FastStore project. required: true - name: document-id in: path type: string description: Document ID presented in the URL path of a CMS preview. required: true - name: versionId in: query type: string description: Version ID presented in the URL path of a CMS preview. - name: releaseId in: query type: string description: Release ID presented in the URL path of a CMS preview. exposes: - type: rest namespace: headless-cms-pages-rest port: 8080 description: REST adapter for VTEX Headless CMS — Pages. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v/cms/api/{projectid} name: v-cms-api-projectid description: REST surface for _v-cms-api-projectId. operations: - method: GET name: getallcontenttypes description: VTex Get all content types call: headless-cms-pages.getallcontenttypes with: projectId: rest.projectId outputParameters: - type: object mapping: $. - path: /v1/v/cms/api/{projectid}/{content-type} name: v-cms-api-projectid-content-type description: REST surface for _v-cms-api-projectId-content-type. operations: - method: GET name: getpagesbycontenttype description: VTex Get all CMS pages by content type call: headless-cms-pages.getpagesbycontenttype with: projectId: rest.projectId content-type: rest.content-type versionId: rest.versionId releaseId: rest.releaseId filters[{field}]: rest.filters[{field}] outputParameters: - type: object mapping: $. - path: /v1/v/cms/api/{projectid}/{content-type}/{document-id} name: v-cms-api-projectid-content-type-document-id description: REST surface for _v-cms-api-projectId-content-type-document-id. operations: - method: GET name: getcmspage description: VTex Get CMS page call: headless-cms-pages.getcmspage with: projectId: rest.projectId content-type: rest.content-type document-id: rest.document-id versionId: rest.versionId releaseId: rest.releaseId outputParameters: - type: object mapping: $. - type: mcp namespace: headless-cms-pages-mcp port: 9090 transport: http description: MCP adapter for VTEX Headless CMS — Pages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: vtex-get-all-content-types description: VTex Get all content types hints: readOnly: true destructive: false idempotent: true call: headless-cms-pages.getallcontenttypes with: projectId: tools.projectId outputParameters: - type: object mapping: $. - name: vtex-get-all-cms-pages description: VTex Get all CMS pages by content type hints: readOnly: true destructive: false idempotent: true call: headless-cms-pages.getpagesbycontenttype with: projectId: tools.projectId content-type: tools.content-type versionId: tools.versionId releaseId: tools.releaseId filters[{field}]: tools.filters[{field}] outputParameters: - type: object mapping: $. - name: vtex-get-cms-page description: VTex Get CMS page hints: readOnly: true destructive: false idempotent: true call: headless-cms-pages.getcmspage with: projectId: tools.projectId content-type: tools.content-type document-id: tools.document-id versionId: tools.versionId releaseId: tools.releaseId outputParameters: - type: object mapping: $.