naftiko: 1.0.0-alpha2 info: label: Salesforce Experience Cloud Site Management description: Workflow capability for managing Salesforce Experience Cloud digital experience sites and CMS content. Combines site configuration, CMS content management, and publishing workflows for digital experience administrators and developers. tags: - CMS - Communities - Content Management - Digital Experiences - Publishing - Salesforce Experience Cloud - Sites created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SALESFORCE_OAUTH2_TOKEN: SALESFORCE_OAUTH2_TOKEN SALESFORCE_INSTANCE_URL: SALESFORCE_INSTANCE_URL capability: consumes: - type: http namespace: exp-cloud-sites baseUri: '{{env.SALESFORCE_INSTANCE_URL}}/services/data/v59.0' description: Salesforce Experience Cloud Sites API. authentication: type: bearer token: '{{env.SALESFORCE_OAUTH2_TOKEN}}' resources: - name: sites path: /connect/sites description: Experience Cloud site management. operations: - name: list-sites method: GET description: List all Experience Cloud sites. outputRawFormat: json outputParameters: - name: sites type: object value: $. - name: create-site method: POST description: Create a new Experience Cloud site. outputRawFormat: json outputParameters: - name: site type: object value: $. body: type: json data: name: '{{tools.name}}' urlPathPrefix: '{{tools.urlPathPrefix}}' template: '{{tools.template}}' - name: get-site method: GET description: Get an Experience Cloud site by ID. inputParameters: - name: siteId in: path type: string required: true description: Site ID. outputRawFormat: json outputParameters: - name: site type: object value: $. - name: update-site method: PATCH description: Update site configuration. inputParameters: - name: siteId in: path type: string required: true description: Site ID. outputRawFormat: json outputParameters: - name: site type: object value: $. body: type: json data: status: '{{tools.status}}' - name: publish-site method: POST description: Publish an Experience Cloud site. inputParameters: - name: siteId in: path type: string required: true description: Site ID. outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: exp-cloud-cms baseUri: '{{env.SALESFORCE_INSTANCE_URL}}/services/data/v59.0/connect/cms' description: Salesforce CMS Connect API for content management. authentication: type: bearer token: '{{env.SALESFORCE_OAUTH2_TOKEN}}' resources: - name: channels path: /channels description: CMS content delivery channels. operations: - name: list-channels method: GET description: List all CMS channels. outputRawFormat: json outputParameters: - name: channels type: object value: $. - name: get-channel method: GET description: Get a CMS channel by ID. inputParameters: - name: channelId in: path type: string required: true description: CMS channel ID. outputRawFormat: json outputParameters: - name: channel type: object value: $. - name: contents path: /contents description: CMS content items. operations: - name: list-contents method: GET description: List CMS content items. outputRawFormat: json outputParameters: - name: contents type: object value: $. - name: create-content method: POST description: Create a new CMS content item. outputRawFormat: json outputParameters: - name: content type: object value: $. body: type: json data: title: '{{tools.title}}' contentType: '{{tools.contentType}}' body: '{{tools.body}}' - name: get-content method: GET description: Get a CMS content item by ID. inputParameters: - name: contentId in: path type: string required: true description: Content ID. outputRawFormat: json outputParameters: - name: content type: object value: $. - name: update-content method: PATCH description: Update a CMS content item. inputParameters: - name: contentId in: path type: string required: true description: Content ID. outputRawFormat: json outputParameters: - name: content type: object value: $. body: type: json data: title: '{{tools.title}}' body: '{{tools.body}}' - name: publish-content method: POST description: Publish a CMS content item. inputParameters: - name: contentId in: path type: string required: true description: Content ID. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: exp-cloud-site-management-api description: Unified REST API for Experience Cloud site and content management. resources: - path: /v1/sites name: sites description: Experience Cloud sites. operations: - method: GET name: list-sites description: List all Experience Cloud sites. call: exp-cloud-sites.list-sites outputParameters: - type: object mapping: $. - method: POST name: create-site description: Create a new Experience Cloud site. call: exp-cloud-sites.create-site outputParameters: - type: object mapping: $. - path: /v1/sites/{siteId} name: site-by-id operations: - method: GET name: get-site description: Get an Experience Cloud site by ID. call: exp-cloud-sites.get-site with: siteId: rest.siteId outputParameters: - type: object mapping: $. - method: PATCH name: update-site description: Update site configuration. call: exp-cloud-sites.update-site with: siteId: rest.siteId outputParameters: - type: object mapping: $. - path: /v1/sites/{siteId}/publish name: publish-site operations: - method: POST name: publish-site description: Publish an Experience Cloud site. call: exp-cloud-sites.publish-site with: siteId: rest.siteId outputParameters: - type: object mapping: $. - path: /v1/cms/channels name: cms-channels description: CMS content delivery channels. operations: - method: GET name: list-cms-channels description: List all CMS channels. call: exp-cloud-cms.list-channels outputParameters: - type: object mapping: $. - path: /v1/cms/contents name: cms-contents description: CMS content items. operations: - method: GET name: list-cms-contents description: List CMS content items. call: exp-cloud-cms.list-contents outputParameters: - type: object mapping: $. - method: POST name: create-cms-content description: Create a new CMS content item. call: exp-cloud-cms.create-content outputParameters: - type: object mapping: $. - path: /v1/cms/contents/{contentId} name: cms-content-by-id operations: - method: GET name: get-cms-content description: Get a CMS content item. call: exp-cloud-cms.get-content with: contentId: rest.contentId outputParameters: - type: object mapping: $. - method: PATCH name: update-cms-content description: Update a CMS content item. call: exp-cloud-cms.update-content with: contentId: rest.contentId outputParameters: - type: object mapping: $. - path: /v1/cms/contents/{contentId}/publish name: publish-content operations: - method: POST name: publish-cms-content description: Publish a CMS content item. call: exp-cloud-cms.publish-content with: contentId: rest.contentId outputParameters: - type: object mapping: $. - type: mcp port: 9080 namespace: exp-cloud-site-management-mcp transport: http description: MCP server for AI-assisted Salesforce Experience Cloud site management. tools: - name: list-experience-cloud-sites description: List all Experience Cloud digital experience sites. hints: readOnly: true idempotent: true call: exp-cloud-sites.list-sites outputParameters: - type: object mapping: $. - name: get-experience-cloud-site description: Get a specific Experience Cloud site by ID. hints: readOnly: true idempotent: true call: exp-cloud-sites.get-site with: siteId: tools.siteId outputParameters: - type: object mapping: $. - name: create-experience-cloud-site description: Create a new Experience Cloud digital experience site. hints: readOnly: false destructive: false call: exp-cloud-sites.create-site outputParameters: - type: object mapping: $. - name: publish-experience-cloud-site description: Publish an Experience Cloud site to make it publicly accessible. hints: readOnly: false destructive: false call: exp-cloud-sites.publish-site with: siteId: tools.siteId outputParameters: - type: object mapping: $. - name: list-cms-channels description: List all CMS delivery channels for content publishing. hints: readOnly: true idempotent: true call: exp-cloud-cms.list-channels outputParameters: - type: object mapping: $. - name: list-cms-content description: List CMS content items across channels. hints: readOnly: true idempotent: true call: exp-cloud-cms.list-contents outputParameters: - type: object mapping: $. - name: create-cms-content description: Create a new CMS content item in Salesforce Experience Cloud. hints: readOnly: false destructive: false call: exp-cloud-cms.create-content outputParameters: - type: object mapping: $. - name: publish-cms-content description: Publish a CMS content item to make it live on digital experiences. hints: readOnly: false destructive: false call: exp-cloud-cms.publish-content with: contentId: tools.contentId outputParameters: - type: object mapping: $.