Skip to main content
Glama
marco-looy

Pega DX MCP Server

by marco-looy

perform_assignment_action

Submit completed work and progress workflow by executing an assignment action after required fields are filled. Returns next assignment info or confirmation note when workflow completes.

Instructions

Perform an assignment action to submit completed work and progress workflow. This is the FINAL step after all required fields are filled. Auto-fetches eTag if not provided. Returns updated case with either nextAssignmentInfo (more work) or confirmationNote (workflow complete). Local actions stay at current assignment; connector actions progress to next assignment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assignmentIDYesAssignment ID. Format: ASSIGN-WORKLIST {caseID}!{processID}. Example: "ASSIGN-WORKLIST MYORG-APP-WORK C-1001!PROCESS""ASSIGN-WORKLIST O1UGTM-TESTAPP13-WORK T-35005!APPROVAL_FLOW". This is the complete assignment identifier that uniquely identifies the specific assignment instance.
actionIDYesAction ID from assignment (Example: "pyApproval", "Submit"). CRITICAL: Action IDs are CASE-SENSITIVE and have no spaces even if display names do ("Complete Review" → "CompleteReview"). Use get_assignment to find correct ID from actions array - use "ID" field not "name" field.
eTagNoOptional. Auto-fetched if omitted. For faster execution, use eTag from previous response.
contentNoField values to submit. ALL required fields must have valid values (see get_assignment to identify required fields with "required": true). Only fields in the assignment action view can be modified.
pageInstructionsNoOptional list of page-related operations for embedded pages, page lists, or page groups. Required for setting embedded page references. Only pages included in the assignment action's view can be modified.
attachmentsNoOptional list of binary file attachments to upload inline during action execution. NOTE: This is NOT the correct way to link a previously uploaded temporary attachment (from upload_attachment) to an attachment field in the form. For that use case, use pageInstructions with instruction "REPLACE", target ".FieldName", and content {"ID": "temporary-attachment-id"} instead.
viewTypeNoType of UI resources to return in the response. "none" returns no UI resources (default), "form" returns form UI metadata in read-only review mode without page-specific metadata, "page" returns full page UI metadata in read-only review mode. Use "form" or "page" when you need UI structure information for displaying the results.none
originChannelNoOptional origin channel identifier for this service request. Indicates the source of the request for tracking and audit purposes. Examples: "Web", "Mobile", "WebChat". Default value is "Web" if not specified.
sessionCredentialsNoOptional session-specific credentials. If not provided, uses environment variables. Supports two authentication modes: (1) OAuth mode - provide baseUrl, clientId, and clientSecret, or (2) Token mode - provide baseUrl and accessToken.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.1.17
    • changedInput schema / properties / attachments / description
      Previous value: -"Optional list of attachments to be added to or deleted from specific attachment fields included in the assignment action's view. Each attachment entry specifies the operation (add/delete) and attachment details. Only attachment fields included in the assignment action's view can be modified."New value: +"Optional list of binary file attachments to upload inline during action execution. NOTE: This is NOT the correct way to link a previously uploaded temporary attachment (from upload_attachment) to an attachment field in the form. For that use case, use pageInstructions with instruction \"REPLACE\", target \".FieldName\", and content {\"ID\": \"temporary-attachment-id\"} instead."
  2. Changed14 schema fields changedv1.0.0
    • changedInput schema / properties / actionID / description
      Previous value: -"Name of the assignment action to perform - ID of the flow action rule to be executed on the assignment. This corresponds to a specific flow action configured in the Pega application. Example: \"CompleteVerification\", \"Approve\", \"Reject\"."New value: +"Action ID from assignment (Example: \"pyApproval\", \"Submit\"). CRITICAL: Action IDs are CASE-SENSITIVE and have no spaces even if display names do (\"Complete Review\" → \"CompleteReview\"). Use get_assignment to find correct ID from actions array - use \"ID\" field not \"name\" field."
    • changedInput schema / properties / assignmentID / description
      Previous value: -"Full handle of the assignment to perform the action on. Format: ASSIGN-WORKLIST {caseID}!{processID}. Example: \"ASSIGN-WORKLIST O1UGTM-TESTAPP13-WORK T-35005!APPROVAL_FLOW\". This is the complete assignment identifier that uniquely identifies the specific assignment instance."New value: +"Assignment ID. Format: ASSIGN-WORKLIST {caseID}!{processID}. Example: \"ASSIGN-WORKLIST MYORG-APP-WORK C-1001!PROCESS\"\"ASSIGN-WORKLIST O1UGTM-TESTAPP13-WORK T-35005!APPROVAL_FLOW\". This is the complete assignment identifier that uniquely identifies the specific assignment instance."
    • removedInput schema / properties / attachments / items / properties
      Removed value: -{
      -  "fileContent": {
      -    "description": "Base64 encoded file content",
      -    "type": "string"
      -  },
      -  "fileName": {
      -    "description": "Name of the attachment file",
      -    "type": "string"
      -  },
      -  "mimeType": {
      -    "description": "MIME type of the attachment",
      -    "type": "string"
      -  }
      -}
    • changedInput schema / properties / content / description
      Previous value: -"Optional map of scalar and embedded page values to be set to the fields included in the assignment action's view. Only fields that are part of the submitted assignment action's view can be modified. Field names should match the property names defined in the Pega application. Example: {\"EmployeeName\": \"Celine\", \"EmployeeAge\": 55, \"EmployeeStatus\": \"Active\"}. Values will overwrite any settings made from pre-processing Data Transforms."New value: +"Field values to submit. ALL required fields must have valid values (see get_assignment to identify required fields with \"required\": true). Only fields in the assignment action view can be modified."
    • changedInput schema / properties / eTag / description
      Previous value: -"Required eTag unique value representing the most recent save date time (pxSaveDateTime) of the case. This must be equal to the eTag header from the response of the most recent case update request, or from a get_assignment_action request for this assignment. Used for optimistic locking to prevent concurrent modification conflicts."New value: +"Optional. Auto-fetched if omitted. For faster execution, use eTag from previous response."
    • changedInput schema / properties / pageInstructions / description
      Previous value: -"Optional list of page-related operations to be performed on embedded pages, page lists, or page groups included in the assignment action's view. These operations allow manipulation of complex data structures within the case. Each instruction specifies the operation type and target page structure. Only pages included in the assignment action's view can be modified."New value: +"Optional list of page-related operations for embedded pages, page lists, or page groups. Required for setting embedded page references. Only pages included in the assignment action's view can be modified."
    • changedInput schema / properties / pageInstructions / items / description
      Previous value: -"Page operation object with instruction type and target"New value: +"Page operation for embedded pages. Use REPLACE instruction to set embedded page references with full object including pzInsKey. Example: {\"instruction\": \"REPLACE\", \"target\": \"PageName\", \"content\": {\"Property\": \"value\", \"pyID\": \"ID-123\", \"pzInsKey\": \"CLASS-NAME ID-123\"}}"
    • addedInput schema / properties / pageInstructions / items / properties / content
      Added value: +{
      +  "description": "Content to set on the embedded page (required for UPDATE and REPLACE)",
      +  "type": "object"
      +}
    • changedInput schema / properties / pageInstructions / items / properties / instruction / description
      Previous value: -"The type of page instruction to perform"New value: +"Page instruction type. UPDATE (add fields to page), REPLACE (replace entire page), DELETE (remove page), APPEND (add item to page list), INSERT (insert item in page list), MOVE (reorder page list items)"
    • addedInput schema / properties / pageInstructions / items / properties / instruction / enum
      Added value: +[
      +  "UPDATE",
      +  "REPLACE",
      +  "DELETE",
      +  "APPEND",
      +  "INSERT",
      +  "MOVE"
      +]
    • changedInput schema / properties / pageInstructions / items / properties / target / description
      Previous value: -"The target page or page list for the instruction"New value: +"Target embedded page name"
    • addedInput schema / properties / pageInstructions / items / required
      Added value: +[
      +  "instruction",
      +  "target"
      +]
    • addedInput schema / properties / sessionCredentials
      Added value: +{
      +  "description": "Optional session-specific credentials. If not provided, uses environment variables. Supports two authentication modes: (1) OAuth mode - provide baseUrl, clientId, and clientSecret, or (2) Token mode - provide baseUrl and accessToken.",
      +  "properties": {
      +    "accessToken": {
      +      "description": "Direct access token (required for token mode)",
      +      "type": "string"
      +    },
      +    "apiVersion": {
      +      "default": "v2",
      +      "description": "API version (optional, defaults to v2)",
      +      "type": "string"
      +    },
      +    "baseUrl": {
      +      "description": "Pega base URL (required if providing credentials)",
      +      "type": "string"
      +    },
      +    "clientId": {
      +      "description": "OAuth2 client ID (required for OAuth mode)",
      +      "type": "string"
      +    },
      +    "clientSecret": {
      +      "description": "OAuth2 client secret (required for OAuth mode)",
      +      "type": "string"
      +    },
      +    "sessionId": {
      +      "description": "Optional session ID. If not provided, a new session will be created.",
      +      "type": "string"
      +    },
      +    "tokenExpiry": {
      +      "description": "Token expiry in seconds from now (optional for token mode)",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "assignmentID",
      -  "actionID",
      -  "eTag"
      -]New value: +[
      +  "assignmentID",
      +  "actionID"
      +]
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Discloses key behaviors: auto-fetches eTag if not provided, returns updated case with either nextAssignmentInfo (more work) or confirmationNote (workflow complete), and explains local vs connector action progression. Since no annotations exist, description fully covers behavioral aspects.

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?

Description is comprehensive yet well-structured. It front-loads the purpose and then details parameters. While relatively long, every sentence adds value and avoids redundancy. Could be slightly more concise, but still efficient.

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?

Given the complexity (9 parameters with nested objects, no output schema), the description covers usage, parameter behavior, return outcomes, and edge cases (eTag auto-fetch, attachment vs pageInstructions). It explains the two possible results (nextAssignmentInfo or confirmationNote) and handles all necessary context for the agent.

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?

With 100% schema coverage, baseline is 3 but description adds significant value: explains assignmentID format with examples, actionID case-sensitivity and ID vs name, eTag optionality, content requirement, pageInstructions usage with examples, and a crucial clarification about attachments (not for linking temporary uploads). Greatly enhances understanding.

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?

Description clearly states the tool performs an assignment action to submit work and progress workflow, specifying it's the final step after filling required fields. It distinguishes itself from sibling tools like get_assignment by being the action execution step.

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

Usage Guidelines4/5

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

Explicitly says to use after all required fields are filled and notes auto-fetch of eTag. Provides context for when it's appropriate (final step) but does not explicitly list when not to use or alternative tools like save_assignment_action.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marco-looy/pega-dx-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server