Skip to main content
Glama

Cirra AI Salesforce Admin MCP Server

cms_delivery

Read-onlyIdempotent

Read published Salesforce CMS content through delivery channels: list the delivery channels visible to the context user, list, get, and search published content in a channel, and get collection items for a channel or Experience Cloud site. This tool is read-only and returns only content that is already published to a channel — use cms_content to author and publish content, and to inspect unpublished drafts.

Input Schema

NameRequiredDescriptionDefault
bodyNoJSON request body. Required for search: the enhanced-search resource is POST-only. Body fields are queryTerm (required), optional filters (taxonomyQuery, language, contentTypeFQNs), page (starts at 0), and pageSize (1-250, default 25).
sf_userNo(optional) Salesforce username to identify the connection to use. Omit this to use the current default connection.
channelIdNoThe delivery channel ID. Required for every operation except list_channels. Get it from list_channels — this is a delivery channel ID and is not interchangeable with the authoring channel IDs used by cms_content.
operationYesThe operation to perform. All operations are read-only. Start with list_channels to discover the channel IDs available to the context user.
queryParamsNo(optional) Query-string parameters supported by the underlying resource. For list_contents these include contentKeys, managedContentIds, contentTypeFQN, language, includeContentBody, expandReferences, referenceDepth, showAbsoluteUrl, publishStartDate, publishEndDate, page, and pageSize. Search criteria do not go here — search is POST-only and takes its criteria in body.
cirra_ai_teamNo(optional) Cirra team ID or name that owns the Salesforce connection to use for this call. Must be provided together with 'sf_user'. Use it to run against a specific team's connection without changing your default team — e.g. to keep separate chats on Salesforce orgs in different teams. Omit it when this call carries the context_handle from cirra_ai_init, which names the team for the conversation. A user with more than one place to work (several teams, or a team and a personal account) must pass either the context_handle or 'cirra_ai_team' + 'sf_user'.
contentKeyOrIdNoThe content key or ID of a published piece of content. Required for get_content.
context_handleNo(recommended) The conversation context handle returned by cirra_ai_init in this conversation. Pass the exact context_handle value from the most recent cirra_ai_init result so this call runs against the team and Salesforce connection selected for this conversation. A user with more than one place to work (several Cirra AI teams, or a team and a personal account) must pass either this handle or 'cirra_ai_team' + 'sf_user'; a call with neither is refused.
collectionKeyOrIdNoThe collection key or ID. Required for get_collection.

Output Schema

NameRequiredDescriptionDefault
resultNo
messageYes
recordsNo
resultsNo
successYes
warningNo
errorCodeNo
errorCountNo
resultCountNo
artifactTypeNo
requestCountNo
skippedCountNo
successCountNo
collectionFieldNo
artifactCategoryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: it returns only content already published to a channel, so drafts are invisible, and it is channel-scoped. It does not discuss pagination ceilings or result sizes, but those are partly covered in the schema and output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, then the operation inventory, then the routing/exclusion sentence. No filler, and the most decision-relevant information (published-only, use cms_content for authoring) lands before the reader stops.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value documentation is unnecessary; annotations cover safety; and the schema covers all 9 params at full coverage. The description supplies the remaining pieces an agent needs — scope, published-only constraint, sibling disambiguation, and entry point via list_channels.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the search POST-only/queryTerm requirement, the list_contents query params, and the warning that delivery channel IDs differ from authoring channel IDs, so the baseline is 3. The DESCRIPTION text itself adds nothing about parameters, so no credit above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read published Salesforce CMS content through delivery channels') and then enumerates the concrete operations: list channels, list/get/search content, get collection items. It explicitly distinguishes itself from the sibling cms_content, so an agent can choose without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (cms_content) and the exact conditions that select it: authoring, publishing, and inspecting unpublished drafts. It also gives a starting point ('Start with list_channels' is echoed in the operation param) and makes the published-only restriction explicit, which is precisely the routing information an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources