Salesforce Knowledge Management

Unified workflow capability for managing Salesforce Knowledge articles across the full article lifecycle: creation, editing, categorization, publishing, and surfacing relevant articles for case deflection and agent assistance.

Run with Naftiko SalesforceKnowledge ManagementArticlesSupportCRMCustomer Service

What You Can Do

GET
List knowledge articles — List all knowledge articles
/v1/articles
POST
Create knowledge article — Create a knowledge article draft
/v1/articles
GET
Get knowledge article — Get a knowledge article
/v1/articles/{articleId}
GET
Get article detail — Get full article content
/v1/articles/{articleId}/detail
POST
Publish articles — Publish knowledge articles
/v1/articles/publish
GET
Search articles — Search knowledge articles
/v1/search
GET
Get suggestions — Get article suggestions
/v1/suggestions
GET
List categories — List data category groups
/v1/categories

MCP Tools

list-knowledge-articles

List all knowledge articles in the Salesforce org

read-only idempotent
get-knowledge-article

Get metadata for a specific knowledge article by ID

read-only idempotent
get-article-full-content

Get the full body content and metadata of a knowledge article

read-only idempotent
search-knowledge-articles

Search knowledge articles by keywords, channel, and category filters

read-only idempotent
get-article-suggestions-for-case

Get relevant article suggestions based on case subject or description

read-only idempotent
create-knowledge-article

Create a new draft knowledge article

update-knowledge-article

Update an existing knowledge article draft

idempotent
publish-knowledge-articles

Publish knowledge article versions to configured channels

delete-knowledge-article

Delete a knowledge article draft version

idempotent
list-data-category-groups

List data category groups used to organize knowledge articles

read-only idempotent
list-data-categories

List categories within a data category group

read-only idempotent

APIs Used

salesforce-knowledge

Capability Spec

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

info:
  label: "Salesforce Knowledge Management"
  description: >-
    Unified workflow capability for managing Salesforce Knowledge articles across
    the full article lifecycle: creation, editing, categorization, publishing,
    and surfacing relevant articles for case deflection and agent assistance.
  tags:
    - Salesforce
    - Knowledge Management
    - Articles
    - Support
    - CRM
    - Customer Service
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      SALESFORCE_ACCESS_TOKEN: SALESFORCE_ACCESS_TOKEN

capability:
  consumes:
    - import: salesforce-knowledge
      location: ./shared/knowledge-rest-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: knowledge-management-api
      description: "Unified REST API for Salesforce Knowledge Management."
      resources:
        - path: /v1/articles
          name: articles
          description: "Knowledge article management"
          operations:
            - method: GET
              name: list-knowledge-articles
              description: "List all knowledge articles"
              call: "salesforce-knowledge.list-knowledge-articles"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-knowledge-article
              description: "Create a knowledge article draft"
              call: "salesforce-knowledge.create-knowledge-article"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/articles/{articleId}
          name: article
          description: "Individual article operations"
          operations:
            - method: GET
              name: get-knowledge-article
              description: "Get a knowledge article"
              call: "salesforce-knowledge.get-knowledge-article"
              with:
                articleId: "rest.articleId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/articles/{articleId}/detail
          name: article-detail
          description: "Full article content"
          operations:
            - method: GET
              name: get-article-detail
              description: "Get full article content"
              call: "salesforce-knowledge.get-knowledge-article-detail"
              with:
                articleId: "rest.articleId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/articles/publish
          name: publish-articles
          description: "Publish article versions"
          operations:
            - method: POST
              name: publish-articles
              description: "Publish knowledge articles"
              call: "salesforce-knowledge.publish-knowledge-articles"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/search
          name: search
          description: "Knowledge article search"
          operations:
            - method: GET
              name: search-articles
              description: "Search knowledge articles"
              call: "salesforce-knowledge.search-knowledge-articles"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/suggestions
          name: suggestions
          description: "Article suggestions for cases"
          operations:
            - method: GET
              name: get-suggestions
              description: "Get article suggestions"
              call: "salesforce-knowledge.get-suggested-articles"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/categories
          name: categories
          description: "Data category management"
          operations:
            - method: GET
              name: list-categories
              description: "List data category groups"
              call: "salesforce-knowledge.list-data-category-groups"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: knowledge-management-mcp
      transport: http
      description: "MCP server for AI-assisted Salesforce Knowledge Management."
      tools:
        - name: list-knowledge-articles
          description: "List all knowledge articles in the Salesforce org"
          hints:
            readOnly: true
            idempotent: true
            openWorld: true
          call: "salesforce-knowledge.list-knowledge-articles"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-knowledge-article
          description: "Get metadata for a specific knowledge article by ID"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-knowledge.get-knowledge-article"
          with:
            articleId: "tools.articleId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-article-full-content
          description: "Get the full body content and metadata of a knowledge article"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-knowledge.get-knowledge-article-detail"
          with:
            articleId: "tools.articleId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: search-knowledge-articles
          description: "Search knowledge articles by keywords, channel, and category filters"
          hints:
            readOnly: true
            idempotent: true
            openWorld: true
          call: "salesforce-knowledge.search-knowledge-articles"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-article-suggestions-for-case
          description: "Get relevant article suggestions based on case subject or description"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-knowledge.get-suggested-articles"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-knowledge-article
          description: "Create a new draft knowledge article"
          hints:
            readOnly: false
            destructive: false
          call: "salesforce-knowledge.create-knowledge-article"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-knowledge-article
          description: "Update an existing knowledge article draft"
          hints:
            readOnly: false
            idempotent: true
          call: "salesforce-knowledge.update-knowledge-article"
          with:
            versionId: "tools.versionId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: publish-knowledge-articles
          description: "Publish knowledge article versions to configured channels"
          hints:
            readOnly: false
            destructive: false
          call: "salesforce-knowledge.publish-knowledge-articles"
          outputParameters:
            - type: object
              mapping: "$."
        - name: delete-knowledge-article
          description: "Delete a knowledge article draft version"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "salesforce-knowledge.delete-knowledge-article"
          with:
            versionId: "tools.versionId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-data-category-groups
          description: "List data category groups used to organize knowledge articles"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-knowledge.list-data-category-groups"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-data-categories
          description: "List categories within a data category group"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-knowledge.list-data-categories"
          with:
            group: "tools.group"
          outputParameters:
            - type: object
              mapping: "$."