Skip to main content
Glama
CIB Seven MCP Server

CIB Seven MCP Server

by krixerx

cib7-mcp

MCP tool for investigating CIB Seven process instances. Gives Claude comprehensive knowledge of CIB Seven REST APIs with live execution and Keycloak authentication.

Features

  • Investigation tools — process instances, counts, daily/weekly/monthly stats, incidents, activity history, variables, BPMN XML, jobs

  • Semantic descriptions — Claude understands what each field means operationally, not just raw endpoint data

  • BPMN introspection — fetch process definition XML, Claude reasons about expected vs actual execution path

  • Keycloak auth — OIDC client credentials flow with automatic token refresh

  • Variable redaction — configurable regex patterns to hide sensitive data

  • Diagnostic prompts — diagnose_stuck_process and incident_report workflows

Related MCP server: Procesio MCP Server

Installation

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cib7": {
      "command": "npx",
      "args": ["cib7-mcp"],
      "env": {
        "CIB7_URL": "http://localhost:6009/rest"
      }
    }
  }
}

Claude Code

claude mcp add cib7-mcp -- npx cib7-mcp

Then set the environment variable CIB7_URL to your CIB Seven instance.

Configuration

All configuration is via environment variables.

Variable

Required

Description

CIB7_URL

Yes

CIB Seven REST API URL (e.g., http://localhost:6009/rest)

KEYCLOAK_URL

No

Keycloak server URL (e.g., https://keycloak.example.com)

KEYCLOAK_REALM

No

Keycloak realm name

KEYCLOAK_CLIENT_ID

No

Keycloak client ID

KEYCLOAK_CLIENT_SECRET

No

Keycloak client secret

CIB7_REDACT_PATTERNS

No

Comma-delimited regex patterns for variable redaction (e.g., password.*,secret.*,token.*)

If any KEYCLOAK_* variable is set, all four must be provided. If none are set, the tool runs in unauthenticated mode.

With Keycloak

{
  "mcpServers": {
    "cib7": {
      "command": "npx",
      "args": ["cib7-mcp"],
      "env": {
        "CIB7_URL": "https://your-instance.com/rest",
        "KEYCLOAK_URL": "https://your-keycloak.com",
        "KEYCLOAK_REALM": "your-realm",
        "KEYCLOAK_CLIENT_ID": "mcp-client",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "CIB7_REDACT_PATTERNS": "password.*,secret.*,token.*,creditCard.*"
      }
    }
  }
}

Tools

Tool

Description

get_process_instance

Look up a process instance by ID — state, definition, business key

list_process_instances

Search process instances by definition, business key, state, start/end date, incident status, with sorting

count_process_instances

Count matching instances without fetching rows. Same filter surface as list_process_instances.

process_instance_stats

Daily / weekly / monthly histogram of started instances. Returns per-period counts + summary (total, average, max, min).

list_incidents

List open incidents, optionally filtered by process instance

get_activity_history

Execution trace — every activity that ran, in order

get_process_variables

All variables for a process instance (with redaction)

get_process_definition_xml

BPMN XML model (diagram elements stripped for readability)

get_job_details

Job execution details — retries, exception messages

Response views

Four of the list-shaped tools accept a view parameter to control which per-row fields are returned. The top-level response is always a bare array of rows — only the field set per row changes.

Tool

Summary fields (default)

list_process_instances

id, processDefinitionId, processDefinitionKey, businessKey, startTime, endTime, state

get_activity_history

activityId, activityName, activityType, startTime, endTime, durationInMillis, canceled

list_incidents

id, processInstanceId, incidentTimestamp, incidentType, activityId, incidentMessage

get_job_details

id, processInstanceId, exceptionMessage, retries, dueDate, suspended, createTime

view: "summary" is the default and typically drops 40–60% of the response size compared to the raw engine shape. Pass view: "full" when you need a field that isn't in the summary list above (e.g., processDefinitionName, startUserId, executionId, causeIncidentId, jobDefinitionId, tenant IDs).

Prompts

Prompt

Description

diagnose_stuck_process

Step-by-step diagnostic for a stuck process instance

incident_report

Comprehensive report of all open incidents with root cause analysis

Statistics & counting

Three tools work together for volume questions without pulling back rows:

  • list_process_instances — when you actually need the records. Supports filtering by definition key (single or multi), definition name, business key, startedBy, active/suspended/completed state, startedAfter/startedBefore, finishedAfter/finishedBefore, withIncidents, incidentStatus, plus sortBy/sortOrder and pagination via maxResults/firstResult.

  • count_process_instances — same filter surface, returns just { count: N }. Use this for "how many?" questions so the engine never has to serialize rows.

  • process_instance_stats — daily / weekly / monthly histogram of started instances over a date range. Takes from, to, and periodUnit (day, week, or month). Internally loops count_process_instances over date windows in parallel, so a 30-day daily histogram is 30 cheap count calls, not a row fetch.

process_instance_stats returns each bucket plus a summary with total, average-per-bucket, and the busiest/quietest bucket:

{
  "from": "2025-03-01T00:00:00.000Z",
  "to":   "2025-03-31T00:00:00.000Z",
  "periodUnit": "day",
  "bucketCount": 30,
  "summary": {
    "total": 4820,
    "average": 160.67,
    "max": { "period": "2025-03-17", "count": 412 },
    "min": { "period": "2025-03-09", "count": 3 }
  },
  "periods": [
    { "period": "2025-03-01", "start": "...", "end": "...", "count": 145 },
    { "period": "2025-03-02", "start": "...", "end": "...", "count": 160 }
  ]
}

A few things to know:

  • Windows are right-open [start, nextStart), so no bucket double-counts the boundary instant.

  • Week windows advance by 7 days from from. They are not aligned to Monday unless from is itself a Monday — pick your from accordingly if you want ISO weeks.

  • Month windows advance by calendar month (handles variable-length months correctly).

  • A safety cap of 500 buckets protects against runaway queries. Raise it with maxBuckets if you genuinely need a longer range, or use a coarser periodUnit.

Example Usage

Ask Claude:

  • "Is process abc-123 stuck?"

  • "Show me all open incidents"

  • "What's the BPMN definition for process definition orderProcess:1:456?"

  • "Generate an incident report"

  • "How many instances of orderProcess are running right now?"

  • "How many orderProcess instances finished with incidents last week?"

  • "Show me daily volume for orderProcess over the last 30 days — which day was busiest?"

  • "Give me a monthly histogram of all process starts this year."

Development

npm install
npm run build
npm test

Requires Node.js 18+.

License

MIT

Available Tools

7 tools
get_activity_historyA

Get the execution trace for a process instance — every activity that ran, in order.

This shows you exactly what happened: which tasks executed, in what order, and how long each took. Activities with a startTime but no endTime are currently executing or waiting.

Key fields:

  • activityType: startEvent, serviceTask, userTask, exclusiveGateway, etc.

  • activityName: human-readable name from the BPMN model

  • startTime/endTime: when the activity started and finished

  • durationInMillis: how long it took (null if still running)

  • canceled: true if the activity was interrupted

Inputs: processInstanceId (required).

get_job_detailsA

Get job execution details for a process instance. Jobs are units of work the engine executes — service tasks, timers, message events.

Key fields:

  • retries: how many retry attempts remain. 0 means the engine gave up and created an incident.

  • exceptionMessage: the error from the last failed execution attempt

  • dueDate: when the job is scheduled to execute (for timers)

  • suspended: true if the job is paused

Inputs: processInstanceId, maxResults, firstResult.

get_process_definition_xmlA

Fetch the BPMN XML model for a process definition. This is the blueprint — it shows the expected flow of the process.

Use the definitionId from get_process_instance to fetch the model. The XML includes all activities, gateways, sequence flows, and conditions. Diagram layout elements are stripped for readability.

Read the XML to understand:

  • The expected happy path (sequence of activities)

  • Gateway conditions (what determines which path is taken)

  • Error boundary events (what happens when activities fail)

  • Timer events (scheduled waits or timeouts)

Inputs: processDefinitionId (required).

get_process_instanceA

Look up a CIB Seven process instance by its ID. Returns the instance's current state, definition reference, business key, and suspension status.

Use this when you have a specific process instance ID and need to understand its current state. If you only have a business key or definition key, use list_process_instances instead.

Key response fields:

  • suspended: true means manually paused by an operator

  • ended: true means the process completed or was cancelled

  • businessKey: the domain identifier (e.g. order number, case ID)

  • definitionId: use this to fetch the BPMN XML via get_process_definition_xml

Inputs: processInstanceId (required).

get_process_variablesA

Get all variables for a process instance. Variables hold the data that drives process execution — form inputs, API responses, decision results.

Sensitive variable values may be redacted (shown as [REDACTED]) based on configured patterns.

Common variable patterns:

  • Error flags or status fields that indicate why a process is waiting

  • Retry counters that show how many times something was attempted

  • Input data from forms or API calls

Inputs: processInstanceId (required).

list_incidentsA

List open incidents in the process engine. Incidents record things that went wrong during execution.

Key incident types:

  • failedJob: a service task or timer threw an exception and the engine gave up retrying (retries=0)

  • failedExternalTask: an external task worker reported a failure

Use without filters to see all open incidents. Filter by processInstanceId to see incidents for a specific process.

Inputs: processInstanceId, incidentType, maxResults, firstResult.

list_process_instancesA

Search for process instances using filters. Uses the history API to find both running and completed instances.

Use this when you need to find process instances by business key, definition key, or state. Returns an array of historic process instances.

Filter options:

  • processDefinitionKey: the BPMN process ID (e.g., "orderProcess")

  • businessKey: domain identifier (e.g., "ORDER-12345")

  • state: ACTIVE, COMPLETED, SUSPENDED, or EXTERNALLY_TERMINATED

  • maxResults: limit results (default 25)

  • firstResult: offset for pagination

Inputs: processDefinitionKey, businessKey, active, suspended, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of process execution with clear boundaries: instances (list/get), execution trace (activity_history), data (variables), background work (job_details), blueprint (definition_xml), and errors (incidents). No ambiguous overlap exists between these concepts.

    Naming Consistency4/5

    Follows consistent snake_case verb_noun pattern (get_*, list_*), but applies the 'process_' prefix inconsistently (e.g., get_process_instance vs get_activity_history). Despite this, the naming remains readable and predictable.

    Tool Count5/5

    Seven tools provide a focused, well-scoped surface for process observability without bloat. Each tool earns its place by covering a specific inspection need, fitting appropriately within the typical 3-15 tool range for this domain.

    Completeness3/5

    Covers core read-only inspection workflows well, but has notable gaps for a general CIB Seven integration: missing list_process_definitions (required to browse definitions without an instance), missing task-specific operations, and lacks any write/modify capabilities (create instances, update variables, resolve incidents).

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      Not graded
      maintenance
      Enables AI assistants to interact with SAP Signavio Process Manager through its API, supporting operations like managing process models, folders, dictionary entries, and searching across business process content.
      23
      31 npm
      11
      ISC
    • A
      license
      B
      quality
      B
      maintenance
      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.
      105
      26 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for Camunda 7 that lets you inspect and manage process definitions, instances, variables, tasks, incidents, history, and evaluate DMN decisions. It supports read-only operations by default with optional write capabilities, and configurable authentication.
      10 npm
      MIT