Reference

The Salesforce Docs MCP Server exposes tools to access official Salesforce, MuleSoft, and Tableau documentation. Some tools operate on a single slice, which is a combination of collection, version, and locale. To query multiple collections, make separate tool calls.

list — Discover available content

Returns a catalog of all available collections, their versions, supported languages, output formats, prominent product areas, and retrieval hints. Call this first to understand what the server offers.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
collectionsstring[]Filter to specific collections. Valid values:

All collectionsNo

Example Request

JSON
{
  "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": {
    "name": "list",
    "arguments": { "collections": ["tableau"] }
  }
}

Example Response

JSON
{
  "collections": [
    {
      "collection": "tableau",
      "description": "Tableau product documentation: Desktop, Server, Cloud, Prep, ...",
      "versions": ["current", "next"],
      "versionLabels": {
        "current": "shipped/GA documentation — behavior available today",
        "next": "release-preview — upcoming, not-yet-shipped behavior"
      },
      "locales": ["de-de", "en-gb", "en-us", "es-es", "fr-ca", "fr-fr", "it-it", "ja-jp", "ko-kr", "nl-nl", "pt-br", "sv-se", "th-th", "zh-cn", "zh-tw"],
      "formats": ["text", "markdown", "html"],
      "extraFields": ["description", "filename", "guides", "product", "products", "taxonomyIds"],
      "retrievalHints": "Tableau documentation across desktop, server, cloud, ... Default to EXPANDING with bare `guides:` boosts ...",
      "landmarks": [
        {
          "version": "current",
          "landmarks": [
            { "slug": "_server", "members": ["_server_linux", "_server_windows"] },
            { "slug": "_api", "members": ["_rest_api", "_js_api", "_metadata_api"] },
            { "slug": "_desktop", "label": "Tableau Desktop and Web Authoring" }
          ]
        }
      ],
      "fetchHints": "A search-result ID identifies the exact document slice."
    }
  ]
}

list-landmarks — Discover guide slugs for a slice

A slug is a short identifier for a documentation area, such as _dataweave or _desktop. Use slugs to boost or filter search results.

Returns the prominent guides: slugs for one collection, version, and locale. Use them to scope search results.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
collectionstringOne collection returned by list.Yes
versionstringA version supported by that collection.Yes
localestringA locale supported by that collection.Yes

Example Request

{
  "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": {
    "name": "list-landmarks",
    "arguments": {
      "collection": "tableau",
      "version": "current",
      "locale": "en-us"
    }
  }
}

Example Response

{
  "collection": "tableau",
  "version": "current",
  "locale": "en-us",
  "landmarks": [
    { "slug": "_server", "members": [{ "slug": "_server_linux" }, { "slug": "_server_windows" }] },
    { "slug": "_api", "locales": ["en-us"], "members": [{ "slug": "_rest_api", "locales": ["en-us"] }] },
    { "slug": "_desktop", "label": "Tableau Desktop and Web Authoring" }
  ],
  "retrievalHints": "..."
}

Performs ranked retrieval over a single collection. Returns a list of matching documents, ordered by relevance.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
querystringYour search terms, up to 2,000 characters. Supports query operators.Yes
collectionstringA collection returned by list.Yes
versionstringA version supported by that collection.currentNo
localestringA locale supported by that collection. Omit it or use auto to select from the query language and fall back to en-us.autoNo
pagenumberPage number for paginated results.1No
pageSizenumberNumber of results per page, from 1 through 60.12No
formatstringInclude document bodies in results. Omit it for the initial metadata-only search, then pass selected IDs to fetch. Valid values per collection:

  • admin: text, markdown, html
  • architect: text, markdown
  • developer: text, markdown
  • legacydeveloper: text, markdown, html
  • mulesoft: text, markdown, html
  • tableau: text, markdown, html
No

Query Operators

OperatorWhat It DoesCollectionsExample
+termResults must contain this termAll+apex triggers
-termResults must not contain this termAllflows -process builder
"phrase"Matches the exact phraseAll"governor limits"
term*Matches any term starting with this prefixAlldeploy*
term~1Matches similar spellings within N editsAlltableau~1
term^10Ranks this term higher in resultsAllapex^10 triggers
guides:<slug>Boosts a product area without excluding relevant documents from other areas. Prefer this form by default.Allguides:_desktop "calculated field"
+guides:<slug>Hard-filters to a product area. Use when the request explicitly requires only that area. Get valid slugs from list-landmarks.All+guides:_dataweave transformation
+release:<n>Narrows results to a release:

  • In admin, use a quarterly major release number such as 264.
  • In mulesoft, use a component version. For example, +release:6.5 is exact and +release:6.* matches the 6.x line.
admin, mulesoft+release:264 order management
+latest:trueKeeps only the latest released version of each component. Use this for current MuleSoft product docs unless the user asks for a specific version.mulesoft+guides:_dataweave +latest:true
+updated:<yyyymmdd>*Finds documentation updated in a given period, by year (+updated:2026*) or month (+updated:202607*)architect+updated:202607*
+pill:newFinds newly added contentarchitect+pill:new agentforce
+pill:updatedFinds revised contentarchitect+pill:updated agentforce
+taxonomyIds:<guid>Narrows results by Semaphore taxonomy GUIDadmin, tableau+taxonomyIds:abc123... reports

Example Request

JSON
{
  "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": {
    "name": "search",
    "arguments": {
      "query": "+guides:_salesforce_order_management \"Order Management Console\"",
      "collection": "admin",
      "version": "current",
      "locale": "en-us",
      "page": 1,
      "pageSize": 1
    }
  }
}

Example Response

JSON
{
  "results": [
    {
      "id": "07124862881193e7...",
      "url": "https://help.salesforce.com/s/articleView?id=commerce.om_order_management.htm&type=5",
      "title": "Salesforce Order Management",
      "content": "...",          // present only when format is set
      "collection": "admin",
      "version": "current",
      "locale": "en-us",
      "product": "Commerce",
      "guides": "commerce"
    }
  ],
  "totalCount": 42              // results are in ranked order, best match first
}

fetch — Get full document content

Retrieves the complete content of one or more specific documents, typically after search, answer, or explain.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
idsstring[]Up to 12 document IDs from previous search, answer, or explain results. Don't provide urls in the same call.One of ids or urls
urlsstring[]Up to 12 public documentation URLs. Don't provide ids in the same call.One of ids or urls
collectionstringA collection returned by list. Optional for an ID; use it with version and locale to disambiguate a URL.No
versionstringA version supported by the collection.No
localestringA locale supported by the collection.No
formatstringOutput format. Use text for triage or bulk reading, markdown when document structure matters, and html when source markup is required. Valid values per collection:

  • admin: text, markdown, html
  • architect: text, markdown
  • developer: text, markdown
  • legacydeveloper: text, markdown, html
  • mulesoft: text, markdown, html
  • tableau: text, markdown, html
textNo

Example Request

JSON
{
  "jsonrpc": "2.0", "id": 3, "method": "tools/call",
  "params": {
    "name": "fetch",
    "arguments": {
      "urls": ["https://developer.salesforce.com/docs/data/agentforce-coworker/guide/agentforce-coworker-a-home.html"],
      "collection": "developer",
      "version": "current",
      "locale": "en-us",
      "format": "markdown"
    }
  }
}

Errors

A batch can contain successful documents and per-document errors together. Fix or retry only the affected entries.

CodeScopeMeaning
not_foundDocumentNo document matched that ID or URL.
ambiguous_urlDocumentThe URL matched more than one slice. Use a search-result ID or retry with a matching collection, version, and locale from diagnostics.retryWith.slices.
format_resolve_failed: ...DocumentThe document was found, but its requested body format couldn't be resolved.
missing_fetch_targetRequestNeither a non-empty ids array nor a non-empty urls array was provided.
conflicting_fetch_targetsRequestBoth ids and urls were provided. Send only one.
invalid_fetch_formatRequestThe format wasn't text, markdown, or html.
admission_shedRequestThe server is temporarily under load. Retry after retry_after_seconds, preferably with a smaller batch.

Example Response

JSON
{
  "documents": [
    {
      "id": "a3f19bc4e7...",
      "url": "https://developer.salesforce.com/docs/data/agentforce-coworker/guide/agentforce-coworker-a-home.html",
      "title": "Agentforce Coworker",
      "content": "## Agentforce Coworker\nAgentforce Coworker enables you to...",
      "collection": "developer",
      "version": "current",
      "locale": "en-us"
    },
    // Per-document errors are returned alongside successful entries:
    { "id": "...", "error": "not_found", "available": { ... } }
  ]
}

answer — Get a cited answer

Ask a question in plain language and get a synthesized answer with citations to the source documentation. The server finds the right documents for you.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
querystringYour question in natural language, up to 2,000 characters.Yes
collectionstringA collection returned by list.Yes
versionstringA version supported by that collection.currentNo
localestringA locale supported by that collection. Omit it or use auto to select from the query language and fall back to en-us.autoNo
citebooleanInclude source citations in the response. Valid values:

  • true
  • false
trueNo

Example Request

JSON
{
  "jsonrpc": "2.0", "id": 4, "method": "tools/call",
  "params": {
    "name": "answer",
    "arguments": {
      "query": "How do I configure Amazon Bedrock Connector?",
      "collection": "mulesoft",
      "version": "current",
      "locale": "en-us",
      "cite": true
    }
  }
}

Example Response

JSON
{
  "answer": "To configure Amazon Bedrock Connector, add it as a dependency in your Mule project",
  "citations": [
    // search-result-shaped, no body, no score
    {
      "id": "...",
      "url": "https://docs.mulesoft.com/amazon-bedrock-connector/latest/",
      "title": "Amazon Bedrock Connector",
      "collection": "mulesoft",
      "version": "current",
      "locale": "en-us"
    }
  ],
  // Optional: additional relevant docs beyond the answer's grounding content.
  "related": {
    "urls": ["https://docs.mulesoft.com/amazon-bedrock-connector/latest/amazon-bedrock-connector-reference"],
    "note": "Citations whose content was not included in the answer; fetch them directly for additional detail."
  }
}

explain — Answer from one specific document

Like answer, but grounded in a single document that you specify. Use this when you already know which page has the information you need.

When to Use

Parameters

ParameterTypeDescriptionDefaultRequired?
querystringYour question about this document, up to 2,000 characters.Yes
idstringDocument ID from a previous search, answer, or explain citation. Don't also provide url.One of id or url
urlstringPublic documentation URL. Don't also provide id.One of id or url
citebooleanInclude source citations in the response. Valid values:

  • true
  • false
trueNo

Example Request

JSON
{
  "jsonrpc": "2.0", "id": 5, "method": "tools/call",
  "params": {
    "name": "explain",
    "arguments": {
      "query": "How does Agent Script separate deterministic logic from LLM reasoning?",
      "url": "https://architect.salesforce.com/docs/architect/fundamentals/guide/hybrid-reasoning-agentforce-builder-agent-script.html",
      "cite": true
    }
  }
}

Example Response

JSON
{
  "explanation": "Agent Script separates deterministic logic from LLM reasoning by using two types of instructions: logic instructions that execute as code with no LLM involvement, and prompt instructions that trigger LLM calls only where judgment or natural language generation is needed...",
  "citations": [
    // one entry: the grounded document
    {
      "id": "...",
      "url": "https://architect.salesforce.com/docs/architect/fundamentals/guide/hybrid-reasoning-agentforce-builder-agent-script.html",
      "title": "Hybrid Reasoning with New Agentforce Builder and Agent Script",
      "collection": "architect",
      "version": "current",
      "locale": "en-us"
    }
  ]
}
Markdown