Pega DX MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pega DX MCP Server Create a travel claim for John Smith with a $500 budget"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Pega DX MCP Server
Enabling conversational interaction with Pega Infinity™ applications
This package transforms Pega Infinity™ interactions into intuitive, conversational experiences through the Model Context Protocol. By bridging Pega DX API with natural language interfaces, it enables GenAI Agents, IDEs, and other MCP-enabled tools to interact with Pega Infinity™ applications using simple, human-readable commands.
Related MCP server: YingDao RPA MCP Server
π§ͺ Experimental
The Pega DX MCP Server is an experimental project exploring the intersection of Model Context Protocol and Pega Infinity™ capabilities. This is not an official Pegasystems product and is not generally available. All commands, parameters, and other features are subject to change or deprecation at any time, with or without notice. Do not use this MCP server for production functionality. This experiment demonstrates the potential of natural language interfaces for Pega Infinity™ interactions. We welcome feedback and contributions to help shape the future of GenAI-powered business automation.
π Key Features
π€ Natural Language Interface - Demonstrates conversational case creation: "Create a travel claim for John"
π Plug-and-Play Integration - Experimental compatibility with GenAI Agents, IDEs, and MCP-enabled tools
π§ͺ Innovation Prototype - Exploring enterprise-grade patterns with comprehensive error handling approaches
π‘ API Integration Exploration - Investigating access to cases, assignments, attachments, and data operations
β‘ Performance Research - Experimenting with intelligent caching and optimization strategies
π‘οΈ Security Framework - Implementing OAuth 2.1 with PKCE and role-based access control patterns
π Quick Start
Prerequisites
Node.js (22+) and npm
Access to Pega Infinity™ (23+) with DX API enabled
OAuth 2.1 client credentials
Installation
# Install from npm (recommended)
npm install -g @marco-looy/pega-dx-mcpIntegration with MCP Clients
Compatible with Claude Desktop, Claude Code, Cline, and many other MCP-enabled applications. Add to your MCP client's configuration file:
{
"mcpServers": {
"pega-dx-mcp": {
"command": "npx",
"args": ["-y", "@marco-looy/pega-dx-mcp"],
"env": {
"PEGA_BASE_URL": "https://your-pega-instance.com",
"PEGA_CLIENT_ID": "your-client-id",
"PEGA_CLIENT_SECRET": "your-client-secret"
}
}
}
}Configuration file locations:
Claude Desktop: See Claude Desktop documentation how to add an MCP Server
Claude Code: See Claude Code documentation how to configure MCP Servers
Cline: See Cline documentation how to edit Cline MCP settings
TIP: Restart your MCP client and confirm the Pega DX MCP tools are available.
ποΈ Architecture
The Pega DX MCP Server bridges GenAI applications with Pega Infinity using the Model Context Protocol:

π οΈ Available Tools
The Pega DX MCP Server provides 60+ comprehensive tools organized into 10+ functional categories. Each category can be enabled or disabled via environment variables for granular control.
π§ Tool Configuration
Control which tool categories are loaded using environment variables in your MCP client configuration. All categories are enabled by default - set to "false" to disable:
Example - Only core case management tools enabled:
{
"mcpServers": {
"pega-dx-mcp": {
"command": "npx",
"args": ["-y", "@marco-looy/pega-dx-mcp"],
"env": {
"PEGA_BASE_URL": "https://your-pega-instance.com",
"PEGA_CLIENT_ID": "your-client-id",
"PEGA_CLIENT_SECRET": "your-client-secret",
"PEGA_SERVICE_TOOLS": "true",
"PEGA_CASETYPE_TOOLS": "true",
"PEGA_CASE_TOOLS": "true",
"PEGA_ASSIGNMENT_TOOLS": "false",
"PEGA_ATTACHMENT_TOOLS": "false",
"PEGA_DATAVIEW_TOOLS": "false",
"PEGA_DOCUMENT_TOOLS": "false",
"PEGA_FOLLOWER_TOOLS": "false",
"PEGA_PARTICIPANT_TOOLS": "false",
"PEGA_RELATED_CASE_TOOLS": "false",
"PEGA_TAG_TOOLS": "false"
}
}
}
}π Complete Tool Inventory
Assignment Tools (9)
get_assignment- Get detailed assignment informationget_assignment_action- Get assignment action details and UI metadataget_next_assignment- Get next work assignment for userjump_to_step- Navigate to specific step in assignment flownavigate_assignment_previous- Navigate to previous step in assignmentperform_assignment_action- Execute assignment actionsrecalculate_assignment_fields- Recalculate assignment form fieldsrefresh_assignment_action- Refresh assignment action form datasave_assignment_action- Save assignment form data without executing
Attachment Tools (7)
add_case_attachments- Attach files/URLs to casesdelete_attachment- Remove attachments from casesget_attachment- Retrieve attachment contentget_attachment_categories- List available attachment categoriesget_case_attachments- List all case attachmentsupdate_attachment- Update attachment metadataupload_attachment- Upload files as temporary attachments
Case Tools (16)
add_optional_process- Add stage or case-wide optional processesbulk_cases_patch- Perform actions on multiple caseschange_to_next_stage- Navigate case to next stagechange_to_stage- Navigate case to specific stagecreate_case- Create new cases with contentdelete_case- Delete cases in create stageget_case- Retrieve detailed case informationget_case_action- Get case action details and metadataget_case_ancestors- Get case ancestor hierarchyget_case_descendants- Get case descendant hierarchyget_case_stages- List case stages and processesget_case_view- Get specific case view detailsget_case_view_calculated_fields- Calculate case view fieldsperform_bulk_action- Execute bulk case operationsperform_case_action- Execute case-wide actionsrecalculate_case_action_fields- Recalculate case action fieldsrefresh_case_action- Refresh case action form datarelease_case_lock- Release pessimistic case locks
Case Type Tools (3)
get_case_type_action- Get case type action metadataget_case_type_bulk_action- Get bulk action metadata for case typesget_case_types- List available case types
Data View Tools (7)
delete_data_record- Delete data records from savable data pagesget_data_objects- List available data objectsget_data_view_count- Get data view result countsget_data_view_metadata- Get data view metadata and parametersget_list_data_view- Query list data views with filteringupdate_data_record_full- Fully update data recordsupdate_data_record_partial- Partially update data records
Document Tools (2)
get_document- Retrieve document content as base64remove_case_document- Remove documents linked to cases
Follower Tools (3)
add_case_followers- Add users as case followersdelete_case_follower- Remove case followersget_case_followers- List case followers
Participant Tools (7)
create_case_participant- Add participants to casesdelete_participant- Remove case participantsget_case_participants- List all case participantsget_participant- Get specific participant detailsget_participant_role_details- Get participant role informationget_participant_roles- List available participant rolesupdate_participant- Update participant information
Related Case Tools (3)
delete_related_case- Remove case relationshipsget_related_cases- List related casesrelate_cases- Create case relationships
Service Tools (1)
ping_pega_service- Test OAuth2 connectivity to Pega Infinity
Tag Tools (3)
add_case_tags- Add tags to casesdelete_case_tag- Remove specific case tagsget_case_tags- List case tags
π¬ Usage Examples
Note: The following examples demonstrate envisioned capabilities and planned user experiences. These scenarios represent the experimental goals of this GenAI Innovation project and may not reflect current implementation status.
Creating a Case
User: "Create a new insurance claim for policy #12345"
AI: I'll create a new insurance claim case. What type of claim is this?
User: "Auto accident claim"
AI: β
Created auto accident claim case INS-CLAIM-789
Case ID: INS-CLAIM-789
Policy: #12345
Status: Open
Next step: Provide accident detailsManaging Assignments
User: "What's my next assignment?"
AI: You have 3 pending assignments:
1. Review claim documentation (INS-CLAIM-789) - Due today
2. Approve travel request (TRAVEL-456) - Due tomorrow
3. Customer callback (SERVICE-123) - Due in 2 hours
User: "Let me work on the claim review"
AI: β
Opening claim documentation review for INS-CLAIM-789
[Displays relevant case data and required actions]βοΈ Configuration
Environment Variables
# Pega Infinity Connection
PEGA_BASE_URL=https://your-pega-instance.com
# OAuth 2.1 Authentication
PEGA_CLIENT_ID=your-oauth-client-id
PEGA_CLIENT_SECRET=your-oauth-client-secretOAuth Setup
Register OAuth Client in your Pega Infinity instance
Configure Scopes for API access
Set Redirect URIs if using authorization code flow
Update Environment with client credentials
For detailed setup instructions, see our Configuration Guide.
π€ Contributing
Join us in this exciting GenAI Innovation experiment! As an experimental project exploring the future of natural language interfaces for enterprise platforms, we welcome community participation in shaping this innovation journey.
Ways to Contribute
π¬ Experiment Feedback - Share your experiences and insights from testing the prototype
π‘ Innovation Ideas - Contribute to the GenAI Innovation roadmap with creative suggestions
π Issue Reports - Help identify challenges in this experimental project
π§ Code Contributions - Contribute to the codebase and proof-of-concept features
π Documentation - Help document learnings and experimental outcomes
π§ͺ Testing & Validation - Participate in testing new experimental capabilities
Development Setup
# Fork and clone the repository
git clone https://github.com/your-username/pega-dx-mcp.git
cd pega-dx-mcp
# Install dependencies
npm install
# Create a feature branch
git checkout -b feature/your-feature-name
# Make changes and test
npm test
# Submit pull requestGuidelines
Follow our Code of Conduct
Ensure tests pass and add new tests for features
Update documentation for any API changes
Use conventional commit messages
π License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Available Tools
67 toolsadd_case_attachmentsA
Attach files and/or URLs to a Pega case regardless of the context or stage of the case lifecycle. Can attach temporary uploaded files using their IDs (from upload_attachment tool), or add URL/link attachments directly. Supports multiple attachments in a single atomic operation - if any attachment fails, no attachments are added to the case.
Inputs: caseID (required), attachments (required), sessionCredentials.
add_case_followersB
Add multiple followers to a work object. Allows users to follow a case to receive notifications and updates about case progress.
Inputs: users (required), caseID (required), sessionCredentials.
add_case_tagsA
Add multiple tags to a case
Inputs: tags (required), caseID (required), sessionCredentials.
add_optional_processB
Add stage or case-wide optional process and return details of the next assignment in the process. The API is invoked when a user tries to initiate an optional action listed under case actions which are configured and designed as a process under case wide actions or stage-only actions.
Inputs: caseID (required), processID (required), viewType, sessionCredentials.
authenticate_pegaA
Authenticate with Pega Infinity server using OAuth2 client credentials or direct access token. Stores the authentication token in session for use by other tools. This tool should be used before making API calls when you want to explicitly manage authentication.
Inputs: sessionCredentials.
bulk_cases_patchA
Perform case action on multiple cases simultaneously using PATCH /api/application/v2/cases endpoint. In Infinity, actions are performed synchronously. In Launchpad, actions are performed asynchronously in the background. Only supports case-wide actions that update cases directly - assignment-level actions like Transfer and Adjust Assignment SLA are not supported.
Inputs: cases (required), actionID (required), content, attachments, +3 more.
change_to_next_stageA
Navigate a Pega case to its next stage in the primary stage sequence. Cannot be used when case is in alternate stage or already in final stage. If no eTag is provided, automatically fetches the latest eTag from the case action for seamless operation.
Inputs: caseID (required), eTag, viewType, cleanupProcesses, +1 more.
change_to_stageB
Change to a specified stage of a case based on stageID passed. Allows navigation to any valid stage (primary, alternate) within a case workflow. If no eTag is provided, automatically fetches the latest eTag from the case action for seamless operation.
Inputs: caseID (required), stageID (required), eTag, viewType, +2 more.
create_caseA
Create a new Pega case. This is the FIRST step in case workflows. Automatically creates the initial assignment (returned in nextAssignmentInfo). Many case types accept empty content {}. If fields required, automatic field discovery provides guidance. Returns: caseID, assignmentID (in nextAssignmentInfo.ID), eTag. Next steps: use get_assignment with assignmentID to view form fields.
Inputs: caseTypeID (required), content, pageName, viewType, +5 more.
create_case_participantA
Create a new participant in a Pega case with specified role and participant information. If no eTag is provided, automatically fetches the latest eTag from the case for seamless operation. Adds users to case access control with appropriate permissions and role assignments.
Inputs: caseID (required), content (required), participantRoleID (required), eTag, +3 more.
delete_attachmentA
Remove the specified attachment from a case. The API validates user authentication and privileges to delete the attachment based on attachment category configuration. Users can delete attachments they uploaded or any attachment of categories they have delete privileges for. After successful deletion, the case history is updated. If an attachment is linked to multiple Link-Attachment objects, only the specific link is removed.
Inputs: attachmentID (required), sessionCredentials.
delete_caseB
Delete a case that is currently in the create stage
Inputs: caseID (required), sessionCredentials.
delete_case_followerA
Remove a follower from a case, ending their subscription to case notifications and updates. Removes the follower association between case and user.
Inputs: caseID (required), followerID (required), sessionCredentials.
delete_case_tagB
Delete a specific tag from a case by case ID and tag ID
Inputs: tagID (required), caseID (required), sessionCredentials.
delete_data_recordB
Delete a data record based on conditional save plan configured for a savable Data Page. Only supported on data object classes. Requires primary key(s) to uniquely identify the record to delete.
Inputs: dataViewID (required), dataViewParameters (required), sessionCredentials.
delete_participantA
Delete a participant from a Pega case by case ID and participant ID. If no eTag is provided, automatically fetches the latest eTag from the case for seamless operation. Requires an eTag value for optimistic locking to ensure data consistency. Returns success confirmation or detailed error information.
Inputs: caseID (required), participantID (required), eTag, sessionCredentials.
diagnose_pega_configA
Diagnose Pega configuration and environment variables to troubleshoot connection issues. Shows what configuration the MCP server is using (without exposing secrets).
Inputs: no named parameters.
get_assignmentA
Get assignment details including form fields, required fields, available actions, and eTag. Used BETWEEN case creation and action performance. Returns form structure, action IDs, and eTag needed for subsequent operations. Required fields marked with "required": true in view config (uiResources.resources.views). Pessimistic locking may apply.
Inputs: assignmentID (required), pageName, viewType, sessionCredentials.
get_assignment_actionA
Get detailed information about a specific action that can be performed on an assignment. Retrieves assignment action defined for an assignment step in a case process, including UI metadata and preprocessing execution. If the case type uses pessimistic locking and the client uses Constellation, this request may lock the case. Get details for ONE specific action. Often optional - most workflows use: get_assignment (all actions + eTag) β perform_assignment_action. Use this when you need action-specific details.
Inputs: actionID (required), assignmentID (required), viewType, sessionCredentials, +1 more.
get_attachmentA
Get the attachment content based on the attachmentID. Returns different content types: Base64 data for file type attachments, URL for URL type attachments, and HTML data for correspondence type attachments. The API validates the attachmentID and checks if the user has access to view the attachment before returning the content.
Inputs: attachmentID (required), sessionCredentials.
get_attachment_categoriesA
Retrieve the list of attachment categories available for a specific Pega case, filtered by attachment type (File or URL). Returns category metadata including user permissions (view, create, edit, delete) for each attachment category associated with the case type. The API uses the class name from the caseID to get attachment categories and filters them based on the type parameter. Only attachment categories configured in the Attachment Category rule are returned. Useful for understanding what attachment categories are available and what operations the current user can perform on each category.
Inputs: caseID (required), type, sessionCredentials.
get_caseA
Get comprehensive case information including status, stage, assignments, and available actions. Use AFTER workflow completion or for case overview. Not recommended immediately after create_case (redundant). For working on assignments, use get_assignment instead.
Inputs: caseID (required), pageName, viewType, originChannel, +1 more.
get_case_actionB
Get detailed information about a case action, including view metadata and available actions
Inputs: caseID (required), actionID (required), viewType, sessionCredentials, +1 more.
get_case_ancestorsA
Get ancestor case hierarchy for a specific case. Retrieves ancestor hierarchy case list for the case ID passed in, showing the parent-child relationships up the case hierarchy chain. Each ancestor includes basic case information (ID, name) and HATEOAS navigation links.
Inputs: caseID (required), sessionCredentials.
get_case_attachmentsA
Get a comprehensive list of all attachments associated with a specific Pega case. Retrieves attachment metadata including file details, URLs, creation information, and available actions (download, edit, delete) for each attachment. Only attachments from categories selected in the Attachment Category rule are returned. Supports optional thumbnail retrieval for image attachments (gif, jpg, jpeg, png, and others) as base64 encoded strings.
Inputs: caseID (required), includeThumbnails, sessionCredentials.
get_case_descendantsA
Get descendants of a case instance. This API loops through all the child cases recursively descending from the specific one, and returns the assignments and actions for each. If the current user does not have access to a given child case, they can only see limited information, and can not drill down into any child cases.
Inputs: caseID (required), sessionCredentials.
get_case_followersB
Get the list of all the Case Followers. Retrieves information about users who are following a case to receive notifications and updates.
Inputs: caseID (required), sessionCredentials.
get_case_participantsA
Get all participants associated with a specific Pega case. Returns comprehensive list of case participants with their roles, permissions, and contact information for case access management.
Inputs: caseID (required), sessionCredentials.
get_casesA
Get all cases created by authenticated user (V1 EXCLUSIVE - max 500 cases, oldest to newest). V2 users should use Data Views instead. Requires pxGetCases privilege.
Inputs: sessionCredentials.
get_case_stagesB
Retrieve the stages list for a given case ID with processes, steps, and visited status information.
Inputs: caseID (required), sessionCredentials.
get_case_tagsC
Get list of tags associated to a case
Inputs: caseID (required), sessionCredentials.
get_case_type_actionB
Get detailed information about a case action, including view metadata and available actions
Inputs: actionID (required), caseTypeID (required), sessionCredentials.
get_case_type_bulk_actionA
Get bulk action metadata for a specific case type and action ID
Inputs: actionID (required), caseTypeID (required), sessionCredentials.
get_case_typesA
Get list of case types that the user can create in the application. Use returned classID as caseTypeID in create_case. create_case automatically discovers required fields if needed.
Inputs: sessionCredentials.
get_case_viewB
Get view details based on case ID and view name. Returns view metadata with customizable logic from pyUpgradeOnOpen Data Transform.
Inputs: caseID (required), viewID (required), sessionCredentials.
get_case_view_calculated_fieldsA
Get calculated fields for a given case view. Retrieves only the requested calculated fields from the case view. All requested calculated fields in the request body must be included in the view. Any requested fields that are not part of the view will be filtered out.
Inputs: caseID (required), viewID (required), calculations (required), sessionCredentials.
get_data_objectsB
Retrieve list of available data objects with metadata and HATEOAS links. Can optionally filter by data object type (data or case).
Inputs: type, sessionCredentials.
get_data_view_countA
Retrieve the total count of results for a specified data view query without fetching the actual data. This is useful for pagination planning, understanding dataset sizes, and performance optimization before executing full data retrieval operations.
Supports the same comprehensive query capabilities as get_list_data_view:
Simple Count: Get total count of all records in a data view Example: { "dataViewID": "D_Employees" }
Count with Parameters: Count records with data view parameters for parameterized data views Example: { "dataViewID": "D_CustomerOrders", "dataViewParameters": { "CustomerID": "C-123", "Status": "Active" } }
Filtered Count: Count records matching specific filter criteria Example: { "dataViewID": "D_Employees", "query": { "filter": { "filterConditions": { "F1": { "lhs": {"field": "Department"}, "comparator": "EQ", "rhs": {"value": "IT"} } }, "logic": "F1" } } }
Distinct Count: Count unique combinations of selected fields Example: { "dataViewID": "D_Employees", "query": { "select": [{"field": "Department"}], "distinctResultsOnly": true } }
Aggregated Count: Count records with aggregation grouping Example: { "dataViewID": "D_Sales", "query": { "aggregations": { "TotalRevenue": { "field": "Revenue", "summaryFunction": "SUM" } }, "select": [{"aggregation": "TotalRevenue"}] } }
Filter comparators supported: boolean (IS_TRUE, IS_FALSE, IS_NULL, IS_NOT_NULL, EQ, NEQ), string (EQ, NEQ, IN, NOT_IN, IS_NULL, IS_NOT_NULL, STARTS_WITH, NOT_STARTS_WITH, ENDS_WITH, NOT_ENDS_WITH, CONTAINS, NOT_CONTAINS), number/date (EQ, NEQ, IN, NOT_IN, GT, GTE, LT, LTE, ISNULL, ISNOTNULL).
Aggregation functions: COUNT, MAX, MIN, DISTINCT_COUNT. For numbers: SUM, AVG.
Calculation functions: YEARS, QUARTERS, MONTHS, WEEKS, DAYS, HOURS, MONTHS_OF_YEAR, DAYS_OF_MONTH, DAYS_OF_WEEK, INTERVAL_GROUPING_FLOOR, INTERVAL_GROUPING_CEILING.
Note: Maximum result count is 5000 for queryable data views. The hasMoreResults field indicates if there are additional results beyond the count limit.
Inputs: dataViewID (required), query, paging, dataViewParameters, +1 more.
get_data_view_metadataA
Retrieve data view metadata which includes data view parameters and list of queryable fields. Supports both queryable and non-queryable data views.
Inputs: dataViewID (required), sessionCredentials.
get_documentB
Get contents of a document as base64 encoded string. Downloads document content based on the documentID parameter. The API validates the documentID and checks if the user has access to view the document before returning the base64 encoded content.
Inputs: documentID (required), sessionCredentials.
get_list_data_viewA
Retrieve list type data view with advanced querying capabilities. Supports 4 distinct use cases:
Standard Data Retrieval: Get data with pagination, filtering, and sorting Example: { "dataViewID": "D_Employees", "query": { "select": [{"field": "Name"}, {"field": "Age"}], "filter": { "filterConditions": { "F1": { "lhs": {"field": "Department"}, "comparator": "EQ", "rhs": {"value": "IT"} } }, "logic": "F1" } }, "paging": { "pageSize": 100 } }
Aggregated Data: Get aggregated data with optional grouping Example: { "dataViewID": "D_Employees", "query": { "aggregations": { "AvgAge": { "field": "age", "summaryFunction": "AVG" } }, "select": [{"field": "Department"}] }, "paging": { "maxResultsToFetch": 2000 } }
Distinct Values: Get unique values from filtered lists Example: { "dataViewID": "D_Employees", "query": { "select": [{"field": "Department"}], "distinctResultsOnly": true }, "paging": { "maxResultsToFetch": 1000 } }
Non-queryable Data Views: Simple data retrieval without querying Example: { "dataViewID": "D_SimpleData", "dataViewParameters": { "param1": "value1", "param2": "value2" } }
Filter comparators supported: boolean (IS_TRUE, IS_FALSE, IS_NULL, IS_NOT_NULL, EQ, NEQ), string (EQ, NEQ, IN, NOT_IN, IS_NULL, IS_NOT_NULL, STARTS_WITH, NOT_STARTS_WITH, ENDS_WITH, NOT_ENDS_WITH, CONTAINS, NOT_CONTAINS), number/date (EQ, NEQ, IN, NOT_IN, GT, GTE, LT, LTE, ISNULL, ISNOTNULL).
Aggregation functions: COUNT, MAX, MIN, DISTINCT_COUNT. For numbers: SUM, AVG.
Inputs: dataViewID (required), query, paging, dataViewParameters, +2 more.
get_next_assignmentB
Get detailed information about the next assignment to be performed by the requestor. Uses Get Next Work functionality to fetch the assignment most suitable for the current user.
Inputs: pageName, viewType, sessionCredentials.
get_participantB
Get detailed information about a specific participant in a Pega case by case ID and participant ID. Returns participant details including personal information, contact details, and optional UI resources for form display.
Inputs: caseID (required), participantID (required), viewType, sessionCredentials.
get_participant_role_detailsB
Get detailed information about a specific participant role in a Pega case, including role configuration, permissions, and user details. Returns participant role metadata with optional UI resources.
Inputs: caseID (required), participantRoleID (required), viewType, sessionCredentials.
get_participant_rolesA
Retrieve list of participant roles for a specific Pega case. Returns available roles that can be assigned to case participants for access control and permission management.
Inputs: caseID (required), sessionCredentials.
jump_to_stepA
Jump to the specified step within an assignment's navigation flow and return the details of the step based on step ID passed. Additional "navigation" node will be returned under "uiResources" to build navigation breadcrumb. This is useful for multi-step assignments, screen flows, and complex processes where you need to navigate directly to a specific step rather than progressing sequentially. To discover valid step IDs: use get_assignment to see current step context, check navigation breadcrumb information for available steps, or examine the assignment's process flow. Step IDs typically follow formats like "SubProcessSF1_ASSIGNMENT66" or "ProcessStep_123".
Inputs: stepID (required), assignmentID (required), eTag, content, +4 more.
perform_assignment_actionA
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.
Inputs: actionID (required), assignmentID (required), eTag, content, +5 more.
perform_bulk_actionA
Perform case action on multiple cases simultaneously (bulk operation). Executes the specified action on all cases provided in the request. In Infinity, actions are performed synchronously. In Launchpad, actions are performed asynchronously in the background. NOTE: Only supports case-wide actions that update cases directly - assignment-level actions like Transfer and Adjust Assignment SLA are not supported.
Inputs: cases (required), actionID (required), content, attachments, +3 more.
perform_case_actionA
Perform an action on a Pega case, updating case data and progressing the workflow. Takes the case ID and action ID as parameters, along with optional content, page instructions, and attachments. If no eTag is provided, automatically fetches the latest eTag from the case action. For manual eTag management, provide an eTag value from a previous get_case_action call. The API handles pre-processing logic, merges request data into the case, performs the action, and validates the results.
Inputs: caseID (required), actionID (required), eTag, content, +6 more.
ping_pega_serviceA
Test connectivity and system availability of Pega Infinity server using existing authentication. Makes a lightweight API call to verify the server is responding. Use authenticate_pega tool first if you need to establish authentication.
Inputs: sessionCredentials.
recalculate_assignment_fieldsA
Recalculate calculated fields & whens for the current assignment action form. If no eTag is provided, automatically fetches the latest eTag from the assignment for seamless operation. Executes field calculations and when conditions based on current form state and user input. Supports recalculating specific fields and when conditions, merging content updates, and applying page instructions during the calculation process. The API validates assignment and action IDs, processes calculation requests, and returns updated field values and states.
Inputs: actionID (required), assignmentID (required), calculations (required), eTag, +3 more.
recalculate_case_action_fieldsA
Recalculate calculated fields & whens for the current case action form. If no eTag is provided, automatically fetches the latest eTag from the case action for seamless operation. Executes field calculations and when conditions based on current form state and user input. Supports recalculating specific fields and when conditions, merging content updates, and applying page instructions during the calculation process. The API validates case and action IDs, processes calculation requests, and returns updated field values and states.
Inputs: caseID (required), actionID (required), calculations (required), eTag, +4 more.
refresh_assignment_actionA
Refresh assignment action form data with updated values after property changes, execute Data Transforms, and handle table row operations in modals. Supports form refresh settings configured in Flow Action rules, generative AI form filling, and embedded list operations with comprehensive validation and preprocessing execution. The API validates assignment and action IDs, retrieves view data, and returns information about fields affected by the refresh action. Supports Pega Infinity '25 features including table row operations in modals. OPTIONAL tool for progressive filling (multiple calls OK). Use refresh for partial updates with validation; use perform_assignment_action for final submission. Same eTag across refresh calls; NEW eTag after perform.
Inputs: actionID (required), assignmentID (required), content, operation, +6 more.
refresh_case_actionA
Refresh case action form data with updated values after property changes, execute Data Transforms, and handle table row operations in modals. If no eTag is provided, automatically fetches the latest eTag from the case action for seamless operation. Supports form refresh settings configured in Flow Action rules, generative AI form filling, and embedded list operations with comprehensive validation and preprocessing execution. The API validates case and action IDs, retrieves view data, and returns information about fields affected by the refresh action. Supports Pega Infinity '25 features including table row operations in modals.
Inputs: caseID (required), actionID (required), eTag, content, +9 more.
relate_casesB
Create relationships between cases by relating a set of case instances to a primary case
Inputs: cases (required), caseID (required), sessionCredentials.
release_case_lockB
Release pessimistic lock on a Pega case and clean up any cached or pending updates. Used when canceling case operations that require locking.
Inputs: caseID (required), viewType, sessionCredentials.
remove_case_documentA
Remove a document that is linked to a specific Pega case. This operation permanently removes the link between the document and the case. The document ID and case ID must both be valid and the user must have appropriate permissions to remove documents from the case.
Inputs: caseID (required), documentID (required), sessionCredentials.
save_assignment_actionA
Save assignment action form data without executing the action. Implements "Save for later" functionality that preserves form data in progress so changes will not be lost when returned to the assignment. If no eTag is provided, automatically fetches the latest eTag from the assignment for seamless operation. Available for Connector actions like Collect info steps, screen flow assignments and customized approval steps. Required field validations are ignored - only server-side validations (dictionary validations) are performed. The saved form data can be retrieved later when the assignment is reopened for continued editing or action execution.
Inputs: actionID (required), assignmentID (required), eTag, content, +4 more.
update_attachmentA
Updates the name and category of an existing attachment for a given attachmentID. The API only updates the title and category of an existing attachment. It does not update the filename and URL. The system verifies user access to the attachment category before allowing the update.
Inputs: name (required), category (required), attachmentID (required), sessionCredentials.
update_caseA
Update a Pega case by directly modifying case properties. V1 EXCLUSIVE - only available in Traditional DX API. V2 uses perform_case_action instead. If eTag is not provided, automatically fetches the latest eTag from the case for seamless operation. Performs case-wide or stage-wide local action (defaults to pyUpdateCaseDetails if actionID not specified).
Inputs: caseID (required), content (required), eTag, actionID, +3 more.
update_data_record_fullA
Fully update an existing data record based on conditional save plan configured for a savable Data Page. Overrides the entire data record with the provided data object.
Inputs: data (required), dataViewID (required), sessionCredentials.
update_data_record_partialA
Partially update an existing data record based on conditional save plan configured for a savable Data Page. Only updates the provided fields, leaving other fields unchanged. Note: Not supported for PEGA System of records.
Inputs: data (required), dataViewID (required), eTag, pageInstructions, +1 more.
update_participantA
Update participant details in a Pega case by case ID and participant ID. If no eTag is provided, automatically fetches the latest eTag from the case for seamless operation. Allows updating participant information such as contact details, personal information, and other properties. Requires an eTag value for optimistic locking and returns updated participant details with optional UI resources.
Inputs: caseID (required), participantID (required), eTag, content, +3 more.
upload_attachmentA
Upload a file to Pega as a temporary attachment that can later be linked to cases. Creates a temporary attachment instance that auto-expires after 2 hours if not linked. Supports multiple input methods for cross-client compatibility.
Inputs: fileUrl, fileName, filePath, mimeType, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 67 tools
Many tools are clearly distinct, but there are some overlapping purposes (e.g., 'bulk_cases_patch' vs 'perform_bulk_action', 'get_case_action' vs 'get_case_type_action') and similar-sounding tools for different versions (e.g., 'update_case' V1 vs 'perform_case_action' V2) that could cause agent confusion.
Most tools follow a verb_noun pattern (e.g., 'create_case', 'get_assignment'), but a few deviate (e.g., 'jump_to_step', 'navigate_assignment_previous'). The pattern is generally predictable and readable.
With 67 tools, the server is excessively large for typical use cases. While the Pega domain is broad, this many tools creates cognitive overload and reduces coherence.
The tool set covers nearly all lifecycle operations for cases, assignments, attachments, participants, data views, and more. Minor gaps exist, such as a dedicated 'list assignments for case' tool, but overall coverage is comprehensive.
Maintenance
Related MCP Connectors
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
Stop copy-pasting client context into your AI. 48 connectable providers via MCP.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceTransforms any API into an intelligent MCP agent in seconds, enabling natural language interaction with APIs through the Model Context Protocol.15Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI to execute RPA applications and workflows through the Model Context Protocol, supporting both local and cloud modes.5 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables access to over 249 APIs through the Model Context Protocol, simplifying integration and usage without extensive technical knowledge.2 npm1MIT
- FlicenseAqualityBmaintenanceEnables interaction with Appian applications through the Model Context Protocol, allowing querying and managing records, executing processes, and querying reports via natural language.4-