How to expose Pega as MCP server for external AI clients (Infinity '26)

This knowledge-sharing article demonstrates how to expose a Pega application as an MCP (Model Context Protocol) server and enable external AI clients, such as Claude, to securely interact with and process Pega cases through natural language conversations.

Pega Infinity version used: 26.1

How to configure

Step 1 - Create an OAuth 2.0 client registration rule.

Select “Public” under Client Credentials > Type of client.

Under the Supported grant types section, configure as in the below screenshot including a redirect URI.

https://claude.ai/api/mcp/auth_callback

The rest of the configurations:

Step 2 - Create a new tool that will be exposed through the Pega MCP server.

This particular tool will start a new grant application intake in the Grant Management system (built in Pega).

Under the ACTION tab:

Under the PARAMETERS tab:

Step 3 - Create a new MCP service rule.

Under the Configure Clients section, select “Claude.ai” and the OAuth 2.0 client registration rule configured above. The Connection Configuration information will be automatically populated. Copy that information to a notepad (which will be later used in Claude).

Under the CASE TYPES tab, select the tool created above.

I also selected additional OOTB tools to provide more capabilities to external AI clients.

This completes the configurations on the Pega side. Let’s now switch to external AI client: Claude.

Step 4 - Login to Claude (https://claude.ai) and click the ‘Customize’ menu on the left navitation panel.

Step 5 - Add a new custom connector.

Enter the remote MCP server URL and OAuth Client ID fields (copied from the Pega MCP service rule above). Click Add.

Click Connect in the following screen.

You will be routed to the Pega Login screen.

Step 6 - Login with your Pega login ID and password.

Upon a successful login, you will be redirected to Claude.

Step 7 - Verify a new connector added in Claude with the available tools from Pega.

Runtime behavior

Step 1 - In the Claude chat session, request the creation of a new grant application case.

Claude will invoke the appropriate tool exposed by the Pega MCP server to create the case in Pega.

Step 2 - Review the result returned by Claude.

Claude used a tool provided by the Pega MCP server to successfully create a new grant application case in Pega.

Step 3 - Verify that the A-3001 case is created in Pega with the parameters passed from Claude.

This demonstrates how external AI clients can seamlessly interact with Pega through MCP, enabling users to initiate business processes and create cases directly from their preferred AI assistants without navigating the Pega application, accelerating user productivity and expanding access to enterprise workflows through conversational AI.

Other references (MCP)

===

Please feel free to leave any question or comment.

13 Likes

@Will_Cho love this post, thank you I was able to recreate what you did.

1 Like

Glad that it helped. Please feel free to share any insight anytime. Thank you.

Amazing post, I am book marking this for my next demo build. Thank you!

1 Like

Very helpful, can we expose pega CDH through MCP ?

Yes, i believe Pega CDH capabilities can be exposed through MCP. Since any Pega application can act as an MCP Server, CDH decisioning services (such as Next-Best-Action recommendations) can be made available as MCP tools that external AI clients, including Claude, Copilot, and ChatGPT, can discover and invoke under Pega’s governance framework. Note that I’m not a CDH expert, thus I would suggest to do a hands-on POC to verify how it actually works and whether there’s any limitation.

I’m unable to connect to Claude it is giving Authorization with the MCP server failed followed above steps, Can you please help me, I tried in both Pega Community Edition and Pega Academy Edition

For the Pega Lab instance I used in this example, I encountered the same connectivity issue between Claude and Pega. After I contacted the Pega Lab administrator and requested that traffic be allowed for my specific instance, the integration worked successfully.

For Pega Community Edition and Pega Academy Edition, I’m not sure whether this type of traffic is permitted. I recommend raising a support ticket to confirm whether inbound/outbound access can be enabled for your environment.

1 Like

Lovely post, Will! I was banging my head against the wall with the Auth config - then I found your post and resolved my issue in about 30 seconds. It is very thorough and I appreciated the screenshots! :slight_smile:

1 Like

Hi @DianeSK, i’m glad that this posting helped you!

1 Like

This is great @Will_Cho . This allows for client agent architectures access to their full Pega footprint that will provide predictability to their agentic solutions and get to production while doing real work!

1 Like

@Will_Cho I’m running into a similar issue with Pega Labs. Could you please share how you resolved it? I raised a support request, but they mentioned I need to whitelist the IPs on my end, and the system isn’t accepting the website’s IP addresses. Any guidance would be greatly appreciated!

I had the same connection issue initially, and then I raised a support ticket with Pega Lab team that they allowed inbound from Claude to my Lab instance. After that, it was working fine.

Great post, @Will_Cho!

Does your tutorial also fully apply to the generation of UI Kit cases?

In my lab environment, I managed to create a UI Kit case successfully, but I’m not able to map the parameters I pass through the prompt (StartingFields JSON) to the properties of the case.

Could you explain how this mapping is supposed to be handled? For example, should I reference a top-level page in the case’s pyDefault Data Transform and initialize the case properties from there, or is there another recommended approach?

@ClaudioR Thanks for the question. Based on my testing, the MCP case creation mechanism should be independent of whether the case type is built with UI Kit or Constellation, as the MCP tool ultimately invokes the underlying case creation capability. However, I have only validated this behavior with Constellation case types, so UI Kit behavior would need to be verified.

In my Constellation example, I did not need any special data mapping. The parameters defined in the MCP tool were sufficient for Pega to populate the corresponding case properties from the values passed by Claude.

If you’re seeing different behavior with UI Kit, I would first verify that the parameter names defined in the tool match the target case properties. As an alternative, using the case’s pyDefault data transform (or another initialization data transform) to copy or transform the incoming values into the desired case structure seems like a reasonable approach.

If you get to try it, please share the results here with others.