Operaton MCP server

I have worked on creating a MCP server for Operaton. You can find it at https://www.npmjs.com/package/operaton-mcp

The MCP server is in an early development phase. However, it covers already large portions of the Operaton REST API. It provides already

  • Process Definition inspection and process instances
  • Task claim, edit, complete
  • User administration
  • Process instance migration
  • Incident management
  • Job management
  • Deployment
❯ Show me tasks claimed by me   
⏺ Tasks Claimed by "demo" User (2 tasks):
                                                                                                                              
  1. Assign Reviewer (Task ID: 264338f2)                                                                                      
    - Process: ReviewInvoice
    - Priority: 50                                                                                                            
    - Created: 2026-03-17                                                                                                   
    - Status: Created                                                                                                         
    - Form: embedded:app:forms/assign-reviewer.html                                                                         
  2. Assign Reviewer (Task ID: 266abdf2)                                                                                      
    - Process: ReviewInvoice
    - Priority: 50                                                                                                            
    - Created: 2026-03-17                                                                                                   
    - Status: Created
    - Form: embedded:app:forms/assign-reviewer.html
                                                                                                                              
  Other Available Tasks (5 unassigned):                                                                                       
  - 3x "Approve Invoice" tasks                                                                                                
  - 2x "Prepare Bank Transfer" tasks (due 2026-03-24)   
❯ Which process instances can be migrated?                                                                                    

⏺ Migratable Process Instances:                                                                                               
                                                                                                                              
  There are 5 eligible instances that can be migrated:                                                                        
   
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                            
  β”‚             Instance ID              β”‚ Version β”‚   Status    β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                            
  β”‚ 25341320-2225-11f1-ba79-feb948cfc98c β”‚ V1      β”‚ βœ… Eligible β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                            
  β”‚ 261cc5a0-2225-11f1-ba79-feb948cfc98c β”‚ V1      β”‚ βœ… Eligible β”‚                                                            
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                            
  β”‚ 2649c8b1-2225-11f1-ba79-feb948cfc98c β”‚ V2      β”‚ βœ… Eligible β”‚                                                            
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                            
  β”‚ 2650cdc1-2225-11f1-ba79-feb948cfc98c β”‚ V2      β”‚ βœ… Eligible β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                            
  β”‚ a64bf595-222b-11f1-ba79-feb948cfc98c β”‚ V2      β”‚ βœ… Eligible β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                            
                  
  Blocked Instances (cannot migrate):                                                                                         
                  
  There are 2 instances with active call activities that block migration:                                                     
  - 26341e7a-2225-11f1-ba79-feb948cfc98c (V1)
  - 265fc22a-2225-11f1-ba79-feb948cfc98c (V2)                                                                                 
                                             
  These instances have active child processes that fall outside migration scope. You'd need to wait for their call activities 
  to complete before migrating them.                                                                                          
   
❯ migrate eligible instances          

⏺ Migration successful! βœ…                                           
                                                                                                                              
  Both eligible V1 instances have been migrated to V2:                                                                        
   
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                     
  β”‚             Instance ID              β”‚   Status    β”‚ New Definition β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                     
  β”‚ 25341320-2225-11f1-ba79-feb948cfc98c β”‚ βœ… Migrated β”‚ invoice:2      β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                                     
  β”‚ 261cc5a0-2225-11f1-ba79-feb948cfc98c β”‚ βœ… Migrated β”‚ invoice:2      β”‚                                                     
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                     
                                                                                                                              
  Summary:                                                                                                                    
  - 2 instances migrated from Invoice V1 β†’ V2
  - 2 instances blocked (active call activities) - remain unmigrated                                                          
  - Batch completed in 129ms                                                                                        
                             
⏺ I'll migrate the eligible instances from V1 to V2. Let me start by generating a migration plan:

I kindly ask for testing it. Please report issues & ideas to

1 Like

I’m aware that the same instance ids are displayed, which indicates a bug. As said, early stage.

Please provide me a form for the first task on the plate for me in a preview and fill in input variables and have fields for output variables so that I can enter data and complete it.

Create a deployment diagram for the deployments, the Operaton engine and its database

I think this is a great tool to have, and I’m interested in the direction this is taking!

If brainstorming is already allowed in this early stage, my first thought was that I would probably want a config value to prevent the MCP server to do any mutating operations. LLM tend to be too eager sometimes, so if I would provide access to a critical prod application for insights and analytics, it would be nice to know that the MCP server itself could prevent write access entirely

Delete the process definition of ReviewInvoice:1:24b211d4-2225-11f1-ba79-feb948cfc98c

The deletion failed because there are 2 active process instances still running under this definition.

You have two options:

  1. Cascade delete β€” deletes the process definition and all 2 running instances (including their tasks and history)

  2. Cancel instances first β€” manually terminate the running instances, then delete the definition cleanly

Shall I proceed with a cascade delete? :warning: This will also remove all running instances and their data.

It first tried to do exactly this, and maybe have to ask before. I think we have to explore what it can do and what it should not, or guardrail. I’m pretty sure it is more a matter of requirements to forge the tool how we want it to have.

If you want to test it, just add a file `.mcp.json` to your directory like this:

{

  "mcpServers": {

"operaton": {

      "command": "npx",
      "args": [
        "-y",
        "operaton-mcp"
      ],

"env": {

"OPERATON_BASE_URL": "http://localhost:8080/engine-rest",

"OPERATON_USERNAME": "demo",

"OPERATON_PASSWORD": "demo",

"OPERATON_SKIP_HEALTH_CHECK": "true"

      }

    }

  }

}
1 Like

Prompt for creation and deployment of a process with `operaton-mcp` and Claude Sonnet 4.6

Please create and deploy a BPMN 2.0 model for a Pizza Delivery collaboration. The model should consist of two distinct pools: the Customer and the Pizza Vendor.
The process begins in the Customer pool when a 'Hunger Noticed' start event occurs. The customer first performs a task to 'Select a Pizza' and then proceeds to a task to 'Order a Pizza.' At this point, a message flow should connect the customer's order task to the Vendor pool, specifically triggering a 'Pizza Order Received' message start event.
Inside the Vendor pool, organize the work into three lanes: Clerk, Chef, and Delivery Boy. The Clerk initiates the process, passing the order to the Chef, who performs the 'Bake Pizza' task. Once the pizza is ready, the flow moves to the Delivery Boy lane. The Delivery Boy performs a 'Deliver Pizza' task, which sends a message flow back to the Customer pool, and then performs a 'Receive Payment' task before the vendor process ends at an 'Order Fulfilled' event.
Back in the Customer pool, after ordering, the customer stays in a waiting state until a 'Pizza Received' intermediate message catch event is triggered by the vendor's delivery. Upon receipt, the customer performs the 'Eat Pizza' task and finishes the process at a 'Hunger Satisfied' end event.


Finally, incorporate an exception path: attach an intermediate Timer Event to the customer's waiting period set for '60 minutes.' If this timer fires before the pizza arrives, the flow should lead to a task for 'Call to Complain' which terminates in an 'Order Cancelled' end event.
βœ… Pizza Delivery Collaboration BPMN model successfully created and deployed!

  Deployment Details:
  - Deployment ID: a2bbffb3-224a-11f1-ba79-feb948cfc98c
  - Deployment Time: 2026-03-17 21:45:37

  Deployed Process Definitions:

  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚     Process      β”‚       Key       β”‚ Version β”‚ Status β”‚ Startable β”‚ History TTL β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  β”‚ Customer Process β”‚ CustomerProcess β”‚ 1       β”‚ Active β”‚ Yes       β”‚ 30 days     β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  β”‚ Vendor Process   β”‚ VendorProcess   β”‚ 1       β”‚ Active β”‚ Yes       β”‚ 30 days     β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

  Model Features Implemented:

  βœ… Customer Pool:
  - "Hunger Noticed" start event
  - "Select a Pizza" task
  - "Order a Pizza" task β†’ triggers message to Vendor
  - "Pizza Received" intermediate message catch event
  - "Eat Pizza" task
  - "Hunger Satisfied" end event
  - Exception handling:
    - 60-minute timeout timer
    - "Call to Complain" task
    - "Order Cancelled" end event

  βœ… Vendor Pool (3 Lanes):
  - Clerk Lane: Receives "Pizza Order Received" message event
  - Chef Lane: "Bake Pizza" task
  - Delivery Boy Lane:
    - "Deliver Pizza" task β†’ sends message back to Customer
    - "Receive Payment" task
    - "Order Fulfilled" end event

  βœ… Message Flows:
  - Customer β†’ Vendor (Order)
  - Vendor β†’ Customer (Delivery)

  You can now start instances of either "CustomerProcess" or "VendorProcess" from the Operaton Tasklist. Would you like to
  start a new pizza order process?



And here is what has been deployed to my Operaton instance:

Haha, people who now the Camunda Training content will recognize that diagram, interesting that the LLM reproduced it almost 1:1 :grinning_face:

I took the original diagram to create the prompt for the process …

1 Like

Example integration of operaton-mcp in a streaming chat interface embedded in the caseworker dashboard we’re building for civil servants of the Province Flevoland in the Netherlands: Operaton MCP AI Assistant - IOU Architecture Documentation

Another integration example of operaton-mcp using the RONL Business API routes to interact with Operaton is described here Operaton MCP Client - IOU Architecture Documentation

This is my first introduction to MCP on the one hand, and programming these integrations on the other. The next feature is an MCP server for TriplyDB and PostgreSQL. That first. And then the foundation for further exploration of MCP/LLM will be laid.

In our architecture, Operaton does not stand alone, but is part of the three. Rules (including non-executable ones) in TriplyDB. Deterministics (DMNs) deployed in bundled BPMNs, FORMs, and Documents. The design of those in PostgreSQL.

1 Like