loading…
Search for a command to run...
loading…
Enables investigation and diagnosis of CIB Seven BPM process instances through the CIB Seven REST API. Supports querying process instances, incidents, activity
Enables investigation and diagnosis of CIB Seven BPM process instances through the CIB Seven REST API. Supports querying process instances, incidents, activity history, and BPMN definitions with Keycloak authentication and configurable variable redaction.
MCP tool for investigating CIB Seven process instances. Gives Claude comprehensive knowledge of CIB Seven REST APIs with live execution and Keycloak authentication.
diagnose_stuck_process and incident_report workflowsAdd to your claude_desktop_config.json:
{
"mcpServers": {
"cib7": {
"command": "npx",
"args": ["cib7-mcp"],
"env": {
"CIB7_URL": "http://localhost:6009/rest"
}
}
}
}
claude mcp add cib7-mcp -- npx cib7-mcp
Then set the environment variable CIB7_URL to your CIB Seven instance.
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.
{
"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.*"
}
}
}
}
| 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 |
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).
| 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 |
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:
[start, nextStart), so no bucket double-counts the boundary instant.from. They are not aligned to Monday unless from is itself a Monday — pick your from accordingly if you want ISO weeks.maxBuckets if you genuinely need a longer range, or use a coarser periodUnit.Ask Claude:
abc-123 stuck?"orderProcess:1:456?"orderProcess are running right now?"orderProcess instances finished with incidents last week?"orderProcess over the last 30 days — which day was busiest?"npm install
npm run build
npm test
Requires Node.js 18+.
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"cib-seven-mcp-server": {
"command": "npx",
"args": []
}
}
}