Salesforce Experience Cloud Site Management

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.

Run with Naftiko CMSCommunitiesContent ManagementDigital ExperiencesPublishingSalesforce Experience CloudSites

What You Can Do

GET
List sites — List all Experience Cloud sites.
/v1/sites
POST
Create site — Create a new Experience Cloud site.
/v1/sites
GET
Get site — Get an Experience Cloud site by ID.
/v1/sites/{siteId}
PATCH
Update site — Update site configuration.
/v1/sites/{siteId}
POST
Publish site — Publish an Experience Cloud site.
/v1/sites/{siteId}/publish
GET
List cms channels — List all CMS channels.
/v1/cms/channels
GET
List cms contents — List CMS content items.
/v1/cms/contents
POST
Create cms content — Create a new CMS content item.
/v1/cms/contents
GET
Get cms content — Get a CMS content item.
/v1/cms/contents/{contentId}
PATCH
Update cms content — Update a CMS content item.
/v1/cms/contents/{contentId}
POST
Publish cms content — Publish a CMS content item.
/v1/cms/contents/{contentId}/publish

MCP Tools

list-experience-cloud-sites

List all Experience Cloud digital experience sites.

read-only idempotent
get-experience-cloud-site

Get a specific Experience Cloud site by ID.

read-only idempotent
create-experience-cloud-site

Create a new Experience Cloud digital experience site.

publish-experience-cloud-site

Publish an Experience Cloud site to make it publicly accessible.

list-cms-channels

List all CMS delivery channels for content publishing.

read-only idempotent
list-cms-content

List CMS content items across channels.

read-only idempotent
create-cms-content

Create a new CMS content item in Salesforce Experience Cloud.

publish-cms-content

Publish a CMS content item to make it live on digital experiences.

APIs Used

exp-cloud-sites exp-cloud-cms

Capability Spec

site-management.yaml Raw ↑
naftiko: "1.0.0-alpha1"

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-02"

binds:
  - namespace: env
    keys:
      SALESFORCE_OAUTH2_TOKEN: SALESFORCE_OAUTH2_TOKEN
      SALESFORCE_INSTANCE_URL: SALESFORCE_INSTANCE_URL

capability:
  consumes:
    - import: exp-cloud-sites
      location: ./shared/sites-api.yaml
    - import: exp-cloud-cms
      location: ./shared/cms-connect-api.yaml

  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: "$."