Skip to main content
Glama

Add Items To HelpCenter Change Set

helpcenter_add_change_set_items
DestructiveIdempotent

Add articles and categories to a change set, many in one call.

A change set is a named release. It groups work that already exists — staged edits on published articles, never-published draft articles, and category visibility changes — and publishes all of it together, now or at a scheduled time. It owns no content: removing an item or deleting the set never deletes the work, which simply stays unreleased.

Use one when several articles have to go live at the same moment — a feature launch, a restructure, a coordinated translation. For one article, helpcenter_publish_staged_changes (or publishing a draft with helpcenter_update_article) is simpler. The flow: stage edits with helpcenter_stage_article_changes, or write drafts with helpcenter_create_article and published: false -> helpcenter_create_change_set -> helpcenter_add_change_set_items -> check readiness with helpcenter_get_change_set -> helpcenter_publish_change_set -> poll helpcenter_get_change_set_status until done.

Change sets are part of the Catalyst plan, behind the same gate as staged changes; on other plans the API answers 402.

What each id adds:

  • a PUBLISHED article: every language it has staged edits in, one item each. It must have some — a live article with nothing staged is rejected, because there is nothing to release. To ship only some languages, remove the others' items afterwards.

  • a DRAFT (never-published) article: the article itself, which the set will PUBLISH. Only add drafts that are meant to go live.

  • a category: a change of its visibility to category_visibility (default 'public') — the usual case is a category built 'unlisted' and revealed by the release.

Adding something already in the set is harmless: it returns the existing item, pointed at the current staged copy.

A PARTLY-REJECTED BATCH IS A NORMAL RESULT (HTTP 207, status 'partial'): read 'rejected' rather than assuming everything landed. One bad id never discards the rest.

Requires a write-scoped API key. The set must be open.

Args:

  • change_set_id (number, required).

  • article_ids (number[], optional, max 500).

  • category_ids (number[], optional, max 500).

  • category_visibility ('public' | 'unlisted' | 'private' | 'team_private', optional): default 'public'. At least one of article_ids and category_ids must have an entry.

Returns: { status: "success" | "partial", added, rejected: [{ article_id | category_id, reason }], change_set: {...} }. 'added' counts items, so an article staged in two languages adds 2. A reason of 'not_found' means the id is not in this help center.

Errors: 403 if the key is read-scoped; 404 if the change set is not in this help center; 409 CHANGE_SET_NOT_OPEN once it is publishing or published; 409 CHANGE_SET_FULL at 500 items.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "change_set_id": "<change_set_id>"
    },
    "name": "helpcenter_add_change_set_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
site_idNoWhich help center to act on: an id from helpcenter_list_sites. Needed when this connection reaches more than one help center; omit it when it reaches one. Applies to this call only — pass it on every call of a task, and ask the user which help center they mean if their request does not say.
article_idsNoArticles to release. A PUBLISHED article is added with every language it has staged changes in (it must have some); a DRAFT article is added to be published by the set.
category_idsNoCategories whose visibility the set changes when it publishes.
change_set_idYesId of the change set.
category_visibilityNoThe visibility category_ids are given at publish. Default 'public' — the usual case is a category built 'unlisted' and revealed by the release.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Much richer than the annotations: it discloses that the set owns no content and that removal or deletion never destroys work, that adding a duplicate is harmless and returns the existing item, that HTTP 207 'partial' is a normal outcome requiring the caller to inspect 'rejected', and that the endpoint returns 402 on non-Catalyst plans. It also states the write-scoped key requirement and the CHANGE_SET_NOT_OPEN / CHANGE_SET_FULL conditions. Nothing here contradicts destructiveHint=true or idempotentHint=true; in fact it explains them.

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?

Purpose is front-loaded, then when-to-use, then the flow, then per-id semantics, then error behavior — a deliberate progression with no filler. The bulleted 'What each id adds' block and the labeled Args/Returns/Errors sections make it scannable despite its length, and every sentence carries operational information.

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 no output schema, the description takes on the return contract itself and does so precisely: status success|partial, added count semantics, rejected entries with reasons, and the 'not_found' meaning. Combined with the error list and plan-gate warning, an agent has everything needed to invoke this correctly and interpret the response.

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

Parameters5/5

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

Although schema coverage is already 100%, the description adds genuinely new meaning: a published article id expands to one item per staged language and is rejected if nothing is staged, a draft id is added to be published, a category id adds a visibility change, and category_visibility defaults to 'public'. It also surfaces the at-least-one-of constraint on article_ids/category_ids that the schema does not enforce, and clarifies that 'added' counts items rather than ids.

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?

The first line gives a specific verb and resource ('Add articles and categories to a change set, many in one call') and immediately distinguishes this bulk add from the single-article publish path. The explanation of what a change set actually is (a named release owning no content) further separates it from create_change_set, publish_change_set, and remove_change_set_item.

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?

It states explicitly when to use it ('several articles have to go live at the same moment — a feature launch, a restructure, a coordinated translation') and when not to ('For one article, helpcenter_publish_staged_changes ... is simpler'). It also lays out the full call sequence with sibling tool names, so an agent knows this is step four of a pipeline and what precedes and follows it.

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