Skip to main content
Glama
midPoint MCP Server

midPoint MCP Server

Decide work item

decide_work_item

Approve or reject an open approval work item assigned to you, with an optional comment. It checks the item is open and in your inbox, refusing unclaimed group items until claimed.

Instructions

Approve or reject an open approval work item assigned to the authenticated user, with an optional comment. Before writing anything it reads the case as that user and refuses a work item that is not open or not in their approval inbox (list_work_items), and one offered to their group that nobody has claimed yet: claim it first (claim_work_item). The decision executes as that user, and the result names the case, the outcome midPoint recorded, and the identity it ran as. userName and roleName are the midPoint names (the unique name attribute, such as a login, not display names) of the objects the OIDs point to, as list and get results give them; the call is refused when they don't match, so the person confirming it reads the right names. Respects the write gate. When you write to a person, name people, roles and requests by their display names rather than OIDs.

Input Schema

NameRequiredDescriptionDefault
caseOidYesOID of the case (caseOid from list_work_items or get_case)
commentNooptional comment recorded with the decision
decisionYesapprove or reject
roleNameYesmidPoint name of the role (or other object) the request adds or removes; empty only when midPoint doesn't show you its name
userNameYesmidPoint name (login) of the person the request is for; empty only when midPoint doesn't show you their name
workItemIdYesid of the work item within the case (id from list_work_items or get_case)

Output Schema

NameRequiredDescriptionDefault
bodyNothe JSON body of the midPoint REST request, when it has one
caseNothe case name
toolYesthe tool that produced this result
actingYeswho midPoint executed this call as
dryRunYes
methodYes
objectNothe focus the case changes
resultNo
serverYeswrite gate, features and versions of this server
targetNowhat was requested
appliedYes
caseOidYes
commentNo
subjectYesthe identity midPoint executed the decision as (or, in a dry run, would)
summaryYes
decisionYesapprove or reject, as submitted
endpointYes
caseStateNothe case state read back after the decision; it stays open while later approval stages remain
requestorNo
workItemIdYes
nextApproversYesassignees of the case's open work items, read back after the decision
recordedOutcomeNothe outcome midPoint shows on the work item, read back after the decision

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the pre-write validation read, the refusal conditions, that the decision executes as the authenticated user, that the result reports case, recorded outcome and acting identity, and that mismatched userName/roleName aborts the call. Gaps remain — the "write gate" is named but never explained, and it does not say whether an already-recorded decision can be reversed or re-submitted.

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?

Front-loaded with purpose before behavior, and nearly every sentence carries operational content. The trailing sentence about naming people, roles and requests by display names rather than OIDs sits awkwardly against the earlier instruction that userName/roleName must be midPoint names, which reads as mildly inconsistent and costs a point.

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?

For a six-parameter mutation tool with an output schema, the definition covers preconditions, refusal behavior, execution identity, and return contents. An agent has everything needed to decide whether to call it and what arguments to supply, with the display-name/OID tension being the only minor ambiguity.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by specifying that userName and roleName are the midPoint unique-name attribute (a login, not a display name) of the objects the OIDs reference, and that a mismatch causes refusal. That adds cross-parameter semantics the schema alone does not convey, though it does not clarify the accepted values of decision or comment conventions.

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 pair and resource: "Approve or reject an open approval work item assigned to the authenticated user, with an optional comment." The scope qualifiers (open, assigned to the authenticated user) plus the pointer to list_work_items and claim_work_item let an agent separate this from the sibling read and claim tools immediately.

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?

Gives an explicit precondition sequence: the tool reads the case as the user before writing, and it refuses work items that are not open or not in the approval inbox (routing to list_work_items). It also names a concrete exclusion case with its alternative — a group-offered item nobody has claimed must be claimed first via claim_work_item.

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