Skip to main content
Glama

Approve change request

servicenow_approve_change_request

Approve or reject a ServiceNow change request by providing its sys ID and state (approved or rejected).

Instructions

Approve or reject a change request.

:param change_request_sys_id: Sys ID of the change request. :type change_request_sys_id: str or None :param state: State to set the change request to (approved or rejected). :type state: str or None

:return: Response containing parsed Pydantic model with information about the approval/rejection. :rtype: Response

:raises MissingParameterError: If change_request_sys_id or state is not provided. :raises ParameterError: If invalid parameters or responses are encountered. :raises ParameterError: If state is not valid. :raises ParameterError: If JSON serialization or deserialization fails.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
stateNo
change_typeNo
task_sys_idNo
text_searchNo
model_sys_idNo
sysparm_limitNo
sysparm_queryNo
worker_sys_idNo
api_parametersNo
cmdb_ci_sys_idNo
sysparm_offsetNo
cmdb_ci_sys_idsNo
response_lengthNo
template_sys_idNo
association_typeNo
name_value_pairsNo
change_model_sys_idNo
change_request_sys_idNo
refresh_impacted_servicesNo
change_request_task_sys_idNo
standard_change_template_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.4.0

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the mutation profile is covered structurally. The description adds genuine context beyond that: the valid state values and the specific error behaviors (MissingParameterError, ParameterError on invalid state or serialization). It omits auth requirements and any note on irreversibility or side effects on related records, so it is useful but incomplete.

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

Conciseness2/5

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

The purpose is correctly front-loaded in the first line, but the rest is Sphinx docstring boilerplate with redundant :type: lines and a ':raises ParameterError' entry repeated three times with overlapping meaning. Little of that prose earns its place against the schema.

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

Completeness2/5

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

For a 22-parameter mutation tool with no output schema and 0% schema description coverage, the description explains only the two core arguments. Return behavior is gestured at ('parsed Pydantic model') but not clarified, and the bulk of the input surface is left undocumented, which is insufficient for confident invocation.

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

Parameters2/5

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

Schema description coverage is 0% across 22 parameters, so the description carries the full burden and documents only two of them (change_request_sys_id and state). The parenthetical '(approved or rejected)' is valuable since the schema defines no enum for state, but the remaining 20 parameters (data, sysparm_query, cmdb_ci_sys_ids, refresh_impacted_services, etc.) are unexplained in both places, leaving an agent unable to reason about most of the surface.

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 opening line 'Approve or reject a change request' gives a specific verb pair and resource, and it is distinguishable from siblings like servicenow_update_change_request or servicenow_get_change_request_nextstate. It does not explicitly name those siblings or contrast itself with them, so it falls short of a 5.

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 guidance on when to choose this tool over update_change_request, get_change_request_nextstate, or create_change_request. The description states only what the tool does, never the conditions, prerequisites, or alternatives for invoking it.

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

Deploy Server

Other Tools