naftiko: 1.0.0-alpha2 info: label: Sitecore Content Management description: Unified capability for managing the full content lifecycle across XM Cloud sites and Content Hub digital assets. Enables developers and content operations teams to automate site provisioning, page management, publishing workflows, and digital asset operations from a single interface. tags: - Sitecore - Content Management - Headless CMS - Digital Asset Management - Publishing created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: XM_CLOUD_API_TOKEN: XM_CLOUD_API_TOKEN CONTENT_HUB_TOKEN: CONTENT_HUB_TOKEN CONTENT_HUB_TENANT: CONTENT_HUB_TENANT capability: consumes: - type: http namespace: xm-cloud-rest baseUri: https://xmapps-api.sitecorecloud.io description: Sitecore XM Cloud REST API for site and publishing management authentication: type: bearer token: '{{XM_CLOUD_API_TOKEN}}' resources: - name: collections path: /api/v1/collections description: Manage site collections within an XM Cloud tenant operations: - name: list-collections method: GET description: List all site collections in the tenant outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-collection method: POST description: Create a new site collection outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' displayName: '{{tools.displayName}}' - name: validate-collection-name method: POST description: Validate a proposed collection name outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' - name: collection path: /api/v1/collections/{collectionId} description: Manage a specific site collection operations: - name: get-collection method: GET description: Get a site collection by ID inputParameters: - name: collectionId in: path type: string required: true description: The unique identifier of the site collection outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-collection method: PUT description: Update a site collection inputParameters: - name: collectionId in: path type: string required: true description: The unique identifier of the site collection outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' - name: delete-collection method: DELETE description: Delete a site collection inputParameters: - name: collectionId in: path type: string required: true description: The unique identifier of the site collection - name: sites path: /api/v1/sites description: Manage sites within an XM Cloud tenant operations: - name: list-sites method: GET description: List all sites in the tenant inputParameters: - name: collectionId in: query type: string required: false description: Filter sites by collection outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-site method: POST description: Create a new site outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' collectionId: '{{tools.collectionId}}' language: '{{tools.language}}' - name: site path: /api/v1/sites/{siteId} description: Manage a specific site operations: - name: get-site method: GET description: Get a site by ID inputParameters: - name: siteId in: path type: string required: true description: The unique identifier of the site outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-site method: DELETE description: Delete a site inputParameters: - name: siteId in: path type: string required: true description: The unique identifier of the site - name: pages path: /api/v1/pages description: Manage pages within an XM Cloud site operations: - name: list-pages method: GET description: List pages for a site inputParameters: - name: siteId in: query type: string required: false description: Filter by site - name: language in: query type: string required: false description: Language code outputRawFormat: json outputParameters: - name: result type: array value: $. - name: create-page method: POST description: Create a new page in a site outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' siteId: '{{tools.siteId}}' parentId: '{{tools.parentId}}' templateId: '{{tools.templateId}}' language: '{{tools.language}}' - name: publishing-jobs path: /authoring/publishing/v1/jobs description: Manage content publishing jobs operations: - name: list-publishing-jobs method: GET description: List publishing jobs for the tenant inputParameters: - name: status in: query type: string required: false description: Filter by job status - name: pageSize in: query type: integer required: false description: Number of jobs per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-publishing-job method: POST description: Create and queue a publishing job outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: targetId: '{{tools.targetId}}' itemIds: '{{tools.itemIds}}' languages: '{{tools.languages}}' - type: http namespace: content-hub-rest baseUri: https://{{CONTENT_HUB_TENANT}}.stylelabs.io/api description: Sitecore Content Hub REST API for digital asset management authentication: type: bearer token: '{{CONTENT_HUB_TOKEN}}' resources: - name: entities path: /entities description: Manage Content Hub entities (assets, metadata, configurations) operations: - name: list-entities method: GET description: List Content Hub entities with filtering inputParameters: - name: take in: query type: integer required: false description: Number of entities to return - name: skip in: query type: integer required: false description: Offset for pagination outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-entity method: POST description: Create a new Content Hub entity outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: identifier: '{{tools.identifier}}' - name: entity path: /entities/{id} description: Manage a specific Content Hub entity operations: - name: get-entity method: GET description: Get a Content Hub entity by ID inputParameters: - name: id in: path type: integer required: true description: The entity ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-entity method: PUT description: Update a Content Hub entity inputParameters: - name: id in: path type: integer required: true description: The entity ID outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: properties: '{{tools.properties}}' - name: search path: /entities/query description: Search Content Hub entities using query language operations: - name: query-entities method: POST description: Search entities using Content Hub query language outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: query: '{{tools.query}}' take: '{{tools.take}}' - name: jobs path: /jobs description: Manage Content Hub processing jobs operations: - name: list-jobs method: GET description: List Content Hub jobs outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: content-management-api description: Unified REST API for Sitecore content management across XM Cloud and Content Hub. resources: - path: /v1/collections name: collections description: Manage XM Cloud site collections operations: - method: GET name: list-collections description: List all site collections in XM Cloud tenant call: xm-cloud-rest.list-collections outputParameters: - type: array mapping: $. - method: POST name: create-collection description: Create a new XM Cloud site collection call: xm-cloud-rest.create-collection outputParameters: - type: object mapping: $. - path: /v1/collections/{id} name: collection description: Manage a specific site collection operations: - method: GET name: get-collection description: Get details of a site collection call: xm-cloud-rest.get-collection with: collectionId: rest.id outputParameters: - type: object mapping: $. - path: /v1/sites name: sites description: Manage XM Cloud sites operations: - method: GET name: list-sites description: List all sites in the tenant call: xm-cloud-rest.list-sites outputParameters: - type: array mapping: $. - method: POST name: create-site description: Create a new XM Cloud site call: xm-cloud-rest.create-site outputParameters: - type: object mapping: $. - path: /v1/pages name: pages description: Manage pages within XM Cloud sites operations: - method: GET name: list-pages description: List pages for a site call: xm-cloud-rest.list-pages outputParameters: - type: array mapping: $. - method: POST name: create-page description: Create a new page in a site call: xm-cloud-rest.create-page outputParameters: - type: object mapping: $. - path: /v1/publishing-jobs name: publishing-jobs description: Manage content publishing workflows operations: - method: GET name: list-publishing-jobs description: List content publishing jobs call: xm-cloud-rest.list-publishing-jobs outputParameters: - type: object mapping: $. - method: POST name: create-publishing-job description: Create and queue a publishing job call: xm-cloud-rest.create-publishing-job outputParameters: - type: object mapping: $. - path: /v1/assets name: assets description: Manage Content Hub digital assets operations: - method: GET name: list-assets description: List Content Hub entities (assets) call: content-hub-rest.list-entities outputParameters: - type: object mapping: $. - method: POST name: search-assets description: Search Content Hub assets using query language call: content-hub-rest.query-entities outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: content-management-mcp transport: http description: MCP server for AI-assisted Sitecore content management. tools: - name: list-collections description: List all XM Cloud site collections hints: readOnly: true idempotent: true call: xm-cloud-rest.list-collections outputParameters: - type: array mapping: $. - name: get-collection description: Get details of a specific site collection hints: readOnly: true idempotent: true call: xm-cloud-rest.get-collection with: collectionId: tools.collectionId outputParameters: - type: object mapping: $. - name: create-collection description: Create a new XM Cloud site collection call: xm-cloud-rest.create-collection outputParameters: - type: object mapping: $. - name: list-sites description: List all XM Cloud sites hints: readOnly: true idempotent: true call: xm-cloud-rest.list-sites outputParameters: - type: array mapping: $. - name: get-site description: Get details of a specific XM Cloud site hints: readOnly: true idempotent: true call: xm-cloud-rest.get-site with: siteId: tools.siteId outputParameters: - type: object mapping: $. - name: create-site description: Create a new XM Cloud site call: xm-cloud-rest.create-site outputParameters: - type: object mapping: $. - name: list-pages description: List pages for an XM Cloud site hints: readOnly: true idempotent: true call: xm-cloud-rest.list-pages outputParameters: - type: array mapping: $. - name: create-page description: Create a new page within an XM Cloud site call: xm-cloud-rest.create-page outputParameters: - type: object mapping: $. - name: list-publishing-jobs description: List XM Cloud content publishing jobs hints: readOnly: true idempotent: true call: xm-cloud-rest.list-publishing-jobs outputParameters: - type: object mapping: $. - name: create-publishing-job description: Create and queue a content publishing job to Experience Edge call: xm-cloud-rest.create-publishing-job outputParameters: - type: object mapping: $. - name: list-assets description: List Content Hub digital assets hints: readOnly: true idempotent: true call: content-hub-rest.list-entities outputParameters: - type: object mapping: $. - name: get-asset description: Get a specific Content Hub digital asset by ID hints: readOnly: true idempotent: true call: content-hub-rest.get-entity with: id: tools.id outputParameters: - type: object mapping: $. - name: search-assets description: Search Content Hub assets using query language hints: readOnly: true openWorld: true call: content-hub-rest.query-entities outputParameters: - type: object mapping: $.