Wednesday, July 22, 2026

#1155 - MCP Tools, MCP Apps and MCP Tasks

Introduction 

MCP - Model Context Protocol is like a magic adapter for AI Agents. Within the context of MCP Tools, you can expose your existing enterprise integrations as AI Agent tools, thus allowing controlled/governed access to your enterprise apps and technologies. These "tools/apis" can be consumed by any AI agents, be they within the Oracle eco-system (Fusion's AI Agent Studio, AI Database Private Agent Factory, AI DP, OCI Gen AI, to name but 4) or without.  

Now we see the emergence of MCP Apps and MCP Tasks. So what do these offer, and how could they play a role within OIC, going forward? To make this easy, let's begin with an order entry use case and see how it can be addressed by MCP Tools, Apps and Tasks.  

MCP Tools

I've covered the ability to expose OIC Integrations as MCP Tools in many previous posts. Net, net - this is a compelling add-on, available in OIC Projects.

MCP Tools return data, while MCP Apps, as the name suggests, return GUIs. Simple enough, so let's begin with an MCP-Tools based example. Again, think of tools as allowing agents to invoke apis. It will be somewhat different in this use case though - 

I have a requirement to provide access to an Order Entry UI from Claude. Net, net, I need a tool to open the UI to allow orders to be entered. This app, including UI, has been generated by Codex and runs on Node. 

Here is the local app structure -

Now I configure Claude to access this MCP server; here is the relevant entry -

All done! So now I can start processing orders in Claude -

Note, the UI is surfaced in my Chrome browser, i.e. external to Claude

This is the MCP Tools approach, now let's look at doing the same with MCP Apps -

MCP Apps 

Here's a succinct AI generated description of MCP Apps - 

MCP Apps are an extension of the Model Context Protocol (MCP) that allow AI agents to render interactive graphical user interfaces (GUIs) directly inside your chat window, rather than just returning raw text or JSON.

I let Codex generate an MCP-App flavour of the order app - 

I register the MCP Server, pointing Claude to main.js

I ask Claude to open the order entry form - 

The form is rendered in Claude itself. I enter the new order details and click Save Order.



That looks good! 

MCP Tasks


Now for a quick look at MCP Tasks - here also in a succinct, AI generated description of what this offers - 

Tasks are a built-in mechanism for handling long-running operations or asynchronous workflows. Instead of an AI agent blocking its connection while waiting minutes for a task to finish, MCP servers use a "call-now, fetch-later" pattern, allowing agents to submit work, poll for progress, and retrieve the final result later.

Applying this to OIC, MCP Tasks could offer us the ability to leverage long running async integrations via MCP. 

In our order processing use case, let's consider an order approval scenario. Codex generated all the required artifacts -


Back in Claude

Let's submit an order -




Note the ability MCP Tasks offer us in respect of long running processes. We can start the process, getting a task id.

We can list tasks, we can also use the task id to check on progress of individual tasks.

We can take actions on tasks, e.g. approve an order.

We get the callback when the task is completed.

This is a huge value add - consider a scheduled job that processes order files - with MCP tasks we can start a run, we can check on progress, we get informed on job completion etc, etc.

Summa Summarum

I hope this post has given you some insight into these new MCP offerings and the value add they will bring to the process automation space. Watch this space!  











 




 

Friday, July 17, 2026

#1154 - OIC 26.07 - Support for Dynamic JSON

Introduction

So what do we mean here by dynamic JSON? 

Here's a very simple example of such - I have an integration that processes product returns. The trigger request payload is as follows - 

Now I need to add support for possible extra fields such as product
I've clicked Allow Dynamic JSON and have defined the response as follows - 

Let's misuse the status field and fill it with the product value.

Here I need to edit the XSLT in the Mapper. First, let's map the orderNr to status - 

Check out the XSLT - 

  <ns14:response-wrapper>
                          <ns14:status>
                                <xsl:value-of select="/nstrgmpr:execute/ns14:request-wrapper/ns14:details/ns14:orderNr"/>
                          </ns14:status>
                    </ns14:response-wrapper>




Now I edit the value-of as follows - 

 <ns14:response-wrapper>
                          <ns14:status>
                                <xsl:value-of select="/nstrgmpr:execute/ns14:request-wrapper/ns14:details/*[local-name()='product']"/>
                          </ns14:status>
                    </ns14:response-wrapper>

Note the format I need to use. Now let's try this in a Switch action. I need to log the product value, if it is present. 

Here I use - string-length(/ns13:execute/ns10:request-wrapper/ns10:details/*[(local-name() = 'product')]) > 0

The Logger action is configured as follows - 


/ns13:execute/ns10:request-wrapper/ns10:details/*[(local-name() = 'product')]



Let's run the integration - run with no product field - 

Run with product field - 

I check the Switch







 


Monday, July 13, 2026

#1153 - 26.07 New Features

Introduction 


Your dev shape instances should have been upgraded to 26.07, so let's check out the new features you get. I'm attempting to adhere, as much as possible, to the new features list in the official what's new doc, available here.

Human in the Loop 

  • new approval patterns/recipes
  • new HITL actions
26.07 sees the addition of 2 more approval recipes for HITL -

  • HITL - Parallel Approval Workflow
  • HITL - Tiered Approval Flow
I create a tool based on Parallel Approval Workflow and see the following artifacts have been created - 

Let's look at it - 

Now to the HITL Workflow - 

A demo form is also generated - 

As you can see from the generated workflow, we now support new actions; these can also be leveraged in your own custom workflows -

Note the support for If/Else and Parallel gateways, also see the support for Notifications -  

Now to the Tiered Approval Flow - 

As you can see, just a variation on the "approval" theme.

AI Assistant

The 26.07 release ushers in assistant support for OIC best practices -

Make sure you try this out, may save a lot of heartache and re-work later.

AI Generated Test Cases

I can save the test cases as PDF, and I can also regenerate the test cases, for example, after making major changes to the integration.

New Data Translate Action

According to the what's new doc- You can directly translate data between a native JSON payload and flat, stringified JSON with the data translate action. The data translate action simplifies integration design by removing the need for multiple stage file actions and a JavaScript action function to perform the translation.
 
You can check out the new feature details in the OIC doc here

Here's a simple example - I have an app driven integration with the following request/response -

Net, net - input is an order in JSON fomat, output should be stringified json.

The new action supports the following operations - 




I run the integration - 

Enable Retry in Parallel Action

Selecting Enable Retry will retry the branch, on error during runtime. Unchecked? No retry!

Enable Retry in For-Each Action

Here I have a scheduled integration that invokes the ftp adapter to list files in a certain directory. I then add the For-Each action to process each file -

I check Process items in parallel and then get the option to Enable Retry -  

This feature is only available in scheduled integrations.

REST Adapter - Disable Retries on 504

So what does an HTTP 504 error  indicate? 
An HTTP 504 (Gateway Timeout) error means a server acting as a gateway or proxy did not receive a timely response from an upstream server. This usually indicates the website's backend is overloaded, experiencing network issues, or struggling with slow queries etc.

Net, net, this option gives you flexibility to decide whether it makes sense to retry or not. For example, your target backend system may already be overloaded, so OIC doing auto-retires will only exacerbate the situation. 


REST Adapter - support for dynamic JSON


Please check out the separate post here.

New OCI Cache Adapter

This is a great addition to our adapter toolset - 

OCI Cache - Achieve submillisecond latency with Oracle Cloud Infrastructure (OCI) Cache, a fully managed Valkey and Redis service engineered for exceptional scalability and consistent high availability. Propel your applications to perform faster and more reliably than ever.

The adapter provides the following functionality - 

The Cluster-mode can be set to Sharded or Non-sharded. The difference is as follows - Non-sharded caches duplicate all data across 1 to 5 nodes for high availability, while sharded caches split large datasets across up to 100 partitions ("shards") to handle massive volumes and heavier write traffic.

Check out my colleague Madhav's excellent post here for all thing new Connectivity with 26.07.

Observability

With this release, we audit user viewing of the activity stream of integration flows.

Summa Summarum


OIC 26.07 provides a rich set of new features, that really accelerate the development f your process automations. I'm looking forward to your feedback!