loading…
Search for a command to run...
loading…
Exposes over 300 Operaton BPM REST operations as tools for AI agents to interact with the Operaton engine. It enables managing process deployments, instances, u
Exposes over 300 Operaton BPM REST operations as tools for AI agents to interact with the Operaton engine. It enables managing process deployments, instances, user tasks, and decision tables through natural language commands.
MCP server exposing the full Operaton BPMN/DMN REST API to AI assistants
npm version CI License: Apache 2.0 Node.js
Operaton is an open-source BPMN and DMN workflow engine. operaton-mcp is a Model Context Protocol (MCP) server that exposes 300+ Operaton REST API operations as MCP tools, enabling AI assistants like Claude to interact directly with your workflow engine — deploying processes, managing instances, handling tasks, and querying history.
npx operaton-mcpPrerequisites: Node.js ≥ 22, a running Operaton instance.
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"operaton": {
"command": "npx",
"args": ["-y", "operaton-mcp"],
"env": {
"OPERATON_BASE_URL": "http://localhost:8080/engine-rest",
"OPERATON_USERNAME": "demo",
"OPERATON_PASSWORD": "demo"
}
}
}
}
Restart Claude Desktop — you're ready to use natural-language commands against your Operaton instance.
| Variable | Required | Description |
|---|---|---|
OPERATON_BASE_URL |
Yes | Operaton REST API URL, e.g. http://localhost:8080/engine-rest |
OPERATON_USERNAME |
Yes | Basic Auth username |
OPERATON_PASSWORD |
Yes | Basic Auth password |
OPERATON_ENGINE |
No | Operaton engine name (default: default) |
OPERATON_SKIP_HEALTH_CHECK |
No | Set true to skip startup connectivity check |
| Variable | Required | Description |
|---|---|---|
OPERATON_BASE_URL |
Yes | Operaton REST API URL |
OPERATON_CLIENT_ID |
Yes | OAuth2 client ID |
OPERATON_CLIENT_SECRET |
Yes | OAuth2 client secret |
OPERATON_TOKEN_URL |
Yes | Token endpoint URL |
{
"mcpServers": {
"operaton": {
"command": "npx",
"args": ["-y", "operaton-mcp"],
"env": {
"OPERATON_BASE_URL": "https://operaton.example.com/engine-rest",
"OPERATON_CLIENT_ID": "mcp-client",
"OPERATON_CLIENT_SECRET": "your-secret",
"OPERATON_TOKEN_URL": "https://keycloak.example.com/realms/myapp/protocol/openid-connect/token"
}
}
}
}
For multi-engine deployments, see the Configuration Guide.
processDefinitionManage deployed process definitions — browse, inspect, suspend, and delete BPMN definitions.
deploymentDeploy, inspect, and manage Operaton deployments (BPMN, DMN, CMMN, and form files).
processInstanceStart and manage the lifecycle of running process instances.
taskQuery and manage the full lifecycle of user tasks.
jobInspect and control asynchronous jobs (timers, async continuations, retries).
jobDefinitionManage job definitions — the templates from which individual jobs are created.
incidentQuery and resolve process incidents (failed jobs, failed external tasks, etc.).
userManage Operaton users and their credentials.
groupManage Operaton groups and their memberships.
historyQuery the audit trail of completed and historic process data.
decisionDeploy and evaluate DMN decision tables.
migrationDiscover, plan, execute, monitor, and audit process instance migrations between definition versions.
processInstance_listMigratable) — list active instances eligible for migration with per-instance eligibility and call-activity blocking conditionsprocessDefinition_getMigrationCandidates) — compare source and target definition activities; returns auto-mappable pairs, unmapped source activities, and new target activitiesmigration_generatePlan) — generate a migration plan with auto-mapped instructions and a list of unmapped activities requiring explicit mappingmigration_validatePlan) — validate a migration plan against a set of instances; returns typed errors, sampled-validation flag, and consequence disclosuremigration_executeBatch) — execute a migration plan asynchronously with auto-chunking; supports dry-run modemigration_suspendBatch) — suspend one or more active migration batchesmigration_resumeBatch) — resume one or more suspended migration batchesmigration_deleteBatch) — cancel (delete) one or more migration batchesmigration_listBatches) — list active migration batches, optionally filtered by suspended statemigration_awaitBatch) — poll migration batches until completion or timeout; returns aggregated progressmigration_getBatchStatus) — get current job counts and suspension state for a single batchmigration_getBatchFailures) — retrieve per-instance failure details including error messages and stack tracesmigration_retryFailedJobs) — reset retries on all failed migration jobs in one or more batchesmigration_getBatchSummary) — aggregate post-migration summary across batch IDs: submitted, succeeded, failed, durationmigration_listAuditEntries) — query the user operation log for migration audit entries with operator, timestamp, and definition filtersmigration_listHistoricBatches) — query the history log for completed migration batches with date-range and completion-state filtersDeployments & Definitions
"Deploy this BPMN file to Operaton and name it
loan-approval-v3." "List all deployed versions of theinvoice-approvalprocess." "Show me the BPMN XML for the latest version of theonboardingprocess."
Process Instances
"Start a new
invoice-approvalprocess with business keyINV-2024-001and set theamountvariable to 15000." "List all active instances of theloan-approvalprocess." "What variables are currently set on process instanceabc-123?"
User Tasks
"Show me all unassigned tasks for the
approversgroup." "Claim tasktask-456for userjohn.doe." "Complete the approval task for invoice INV-2024-001 and setapproved = true."
Operations & Incidents
"Are there any failed jobs with no retries left?" "Reset the retry count to 3 for job
job-789and trigger immediate execution." "List all open incidents for thepayment-processingprocess."
History & Audit
"Show me all completed
invoice-approvalinstances from last week." "Who completed the approval task for business keyINV-2024-001, and when?"
Decisions
"Deploy this DMN decision table for loan eligibility checking." "Evaluate the
credit-checkdecision withincome = 50000andcreditScore = 720."
# Install dependencies (triggers code generation automatically)
npm install
# Run code generation manually
npm run generate
# Build (generate + compile + alias rewrite)
npm run build
# Watch mode for local development
npm run dev
# Run all tests (unit + smoke)
npm test
# Run integration tests (requires live Operaton instance)
OPERATON_BASE_URL=http://localhost:8080/engine-rest \
OPERATON_USERNAME=demo \
OPERATON_PASSWORD=demo \
npm run test:integration
src/
index.ts — MCP server entry point
config.ts — Configuration loading (env vars + config file)
auth/
token-manager.ts — OIDC client credentials token manager
http/
client.ts — Operaton HTTP client (Basic + OIDC auth)
errors.ts — Error normalization with BPM-domain hints
generated/ — Build artifact (gitignored); produced by npm run generate
tools/ — Curated tool wrappers (hand-written)
config/
tool-manifest.json — Full curation manifest (name, description, frMapping per operationId)
tool-manifest.fixture.json — Fixture for development/testing
resources/
operaton-rest-api.json — Authoritative OpenAPI 3.0.2 spec (never modify)
scripts/
generate.ts — Code generation pipeline
docs/
configuration.md — Full configuration reference
The following capabilities are not available in the current release:
Contributions are welcome! Please see CONTRIBUTING.md for guidelines on how to contribute, commit conventions, and the PR process.
Apache 2.0 — see LICENSE for details.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"operaton-mcp": {
"command": "npx",
"args": []
}
}
}