Skip to main content
Glama
jschuller

ServiceNow MCP Server

by jschuller

List Update Set Changes

list_update_set_changes
Read-onlyIdempotent

Retrieves all customer updates (changes) in a specified ServiceNow update set by sys_id, with an optional limit on the number of changes returned.

Instructions

List all customer updates (changes) within an update set

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of changes to return
update_set_sys_idYesThe sys_id of the update set

Output Schema

NameRequiredDescriptionDefault
noteNo
countYes
changesYes
truncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.9.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "changes": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "count": {
      +      "type": "integer"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "truncated": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "count",
      +    "changes"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changedv0.7.0
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "type": "object"
      -}New value: +null
  3. First observedv0.5.1

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the description carries a lighter burden. It adds nothing beyond them: it does not say that results are truncated at the default limit of 50, what the maximum of 500 implies, or whether an empty list means no changes versus an invalid sys_id. No contradiction with annotations.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is arguably over-terse for a paginated list tool, but nothing is wasted.

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

Completeness3/5

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

An output schema exists, so return-shape explanation is not required, and the 2-parameter schema is fully documented. What is missing for a list tool is the pagination/truncation behavior — an agent calling with the default limit of 50 could silently miss changes in a large update set, and nothing in the description warns of that.

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% for both parameters, so the schema already explains limit (max 50/500 bounds) and update_set_sys_id. The description adds no meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource: list changes belonging to one update set, scoped by the required update_set_sys_id. That distinguishes it from list_update_sets (which enumerates the sets themselves) and get_update_set (which fetches a single set). It does not explicitly contrast with those siblings, and the phrase 'customer updates (changes)' is slightly loose, but the operation is unambiguous.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool rather than get_update_set, list_update_sets, or get_record, and no prerequisites (e.g., that the sys_id must come from list_update_sets). The 'within an update set' phrasing implies context but provides no routing guidance or exclusions.

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